From 832a9256b25504ec79cebe9db2784d7f05342f03 Mon Sep 17 00:00:00 2001 From: John Ferlan Date: Thu, 26 Feb 2015 19:39:36 -0500 Subject: [PATCH] disk: Provide a default storage source format type. https://bugzilla.redhat.com/show_bug.cgi?id=1181062 According to the formatstorage.html description for element and "format" attribute: "All drivers are required to have a default value for this, so it is optional." As it turns out the disk backend did not choose a default value, so I added a default of "msdos" if the source type is "unknown" as well as updating the storage.html backend disk volume driver documentation to indicate the default format is dos. --- docs/storage.html.in | 1 + src/storage/storage_backend_disk.c | 13 ++++++++++--- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/docs/storage.html.in b/docs/storage.html.in index f920dae00f..b9b503de82 100644 --- a/docs/storage.html.in +++ b/docs/storage.html.in @@ -346,6 +346,7 @@ on the size and placement of volumes. The 'free extents' information will detail the regions which are available for creating new volumes. A volume cannot span across 2 different free extents. + It will default to using msdos as the pool source format.

Example pool input

diff --git a/src/storage/storage_backend_disk.c b/src/storage/storage_backend_disk.c index 3309a936c4..ba928d84e7 100644 --- a/src/storage/storage_backend_disk.c +++ b/src/storage/storage_backend_disk.c @@ -468,13 +468,20 @@ virStorageBackendDiskBuildPool(virConnectPtr conn ATTRIBUTE_UNUSED, } if (ok_to_mklabel) { - /* eg parted /dev/sda mklabel msdos */ + /* eg parted /dev/sda mklabel --script msdos */ + int format = pool->def->source.format; + const char *fmt; + if (format == VIR_STORAGE_POOL_DISK_UNKNOWN || + format == VIR_STORAGE_POOL_DISK_DOS) + fmt = "msdos"; + else + fmt = virStoragePoolFormatDiskTypeToString(format); + cmd = virCommandNewArgList(PARTED, pool->def->source.devices[0].path, "mklabel", "--script", - ((pool->def->source.format == VIR_STORAGE_POOL_DISK_DOS) ? "msdos" : - virStoragePoolFormatDiskTypeToString(pool->def->source.format)), + fmt, NULL); ret = virCommandRun(cmd, NULL); } -- 2.39.5