[libvirt] [PATCH 08/14] qemu: domain: Forbid VIR_STORAGE_FILE_ISO as a disk format

Peter Krempa pkrempa at redhat.com
Thu Mar 29 11:51:05 UTC 2018


This format is used by the storage driver and other hypervisors but qemu
does not have nothion of the 'iso' format and libvirt does not translate
it to anything useful, so it would not work anyways. Users should use
'raw' instead.

Signed-off-by: Peter Krempa <pkrempa at redhat.com>
---
 src/qemu/qemu_domain.c                        |  7 +++++++
 tests/qemuxml2argvdata/disk-drive-fmt-iso.xml | 27 +++++++++++++++++++++++++++
 tests/qemuxml2argvtest.c                      |  1 +
 3 files changed, 35 insertions(+)
 create mode 100644 tests/qemuxml2argvdata/disk-drive-fmt-iso.xml

diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c
index 88b4653da5..e02da9e608 100644
--- a/src/qemu/qemu_domain.c
+++ b/src/qemu/qemu_domain.c
@@ -4124,6 +4124,13 @@ qemuDomainValidateStorageSource(virStorageSourcePtr src)
         return -1;
     }

+    if (src->format == VIR_STORAGE_FILE_ISO) {
+        virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s",
+                       _("storage format 'iso' is not directly suppored by qemu, "
+                         "use 'raw' instead"));
+        return -1;
+    }
+
     return 0;
 }

diff --git a/tests/qemuxml2argvdata/disk-drive-fmt-iso.xml b/tests/qemuxml2argvdata/disk-drive-fmt-iso.xml
new file mode 100644
index 0000000000..ad2825bfb2
--- /dev/null
+++ b/tests/qemuxml2argvdata/disk-drive-fmt-iso.xml
@@ -0,0 +1,27 @@
+<domain type='qemu'>
+  <name>QEMUGuest1</name>
+  <uuid>c7a5fdbd-edaf-9455-926a-d65c16db1809</uuid>
+  <memory unit='KiB'>219136</memory>
+  <currentMemory unit='KiB'>219136</currentMemory>
+  <vcpu placement='static'>1</vcpu>
+  <os>
+    <type arch='i686' machine='pc'>hvm</type>
+    <boot dev='hd'/>
+  </os>
+  <clock offset='utc'/>
+  <devices>
+    <emulator>/usr/bin/qemu-system-i686</emulator>
+    <disk type='file' device='disk'>
+      <driver name='qemu' type='iso'/>
+      <source file='/dev/HostVG/QEMUGuest1'/>
+      <target dev='hda' bus='ide'/>
+      <address type='drive' controller='0' bus='0' target='0' unit='0'/>
+    </disk>
+    <controller type='usb' index='0'/>
+    <controller type='ide' index='0'/>
+    <controller type='pci' index='0' model='pci-root'/>
+    <input type='mouse' bus='ps2'/>
+    <input type='keyboard' bus='ps2'/>
+    <memballoon model='none'/>
+  </devices>
+</domain>
diff --git a/tests/qemuxml2argvtest.c b/tests/qemuxml2argvtest.c
index 711bd1b661..3d278c4bc2 100644
--- a/tests/qemuxml2argvtest.c
+++ b/tests/qemuxml2argvtest.c
@@ -914,6 +914,7 @@ mymain(void)
             QEMU_CAPS_DRIVE_BOOT);
     DO_TEST_PARSE_ERROR("disk-drive-fmt-cow", QEMU_CAPS_DRIVE_BOOT);
     DO_TEST_PARSE_ERROR("disk-drive-fmt-dir", QEMU_CAPS_DRIVE_BOOT);
+    DO_TEST_PARSE_ERROR("disk-drive-fmt-iso", QEMU_CAPS_DRIVE_BOOT);
     DO_TEST("disk-drive-shared",
             QEMU_CAPS_DRIVE_SERIAL);
     DO_TEST_PARSE_ERROR("disk-drive-shared-qcow", NONE);
-- 
2.16.2




More information about the libvir-list mailing list