]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: domain: Forbid VIR_STORAGE_FILE_ISO as a disk format
authorPeter Krempa <pkrempa@redhat.com>
Thu, 29 Mar 2018 06:49:08 +0000 (08:49 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Tue, 3 Apr 2018 13:48:38 +0000 (15:48 +0200)
This format is used by the storage driver and other hypervisors but qemu
does not have notion 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@redhat.com>
src/qemu/qemu_domain.c
tests/qemuxml2argvdata/disk-drive-fmt-iso.xml [new file with mode: 0644]
tests/qemuxml2argvtest.c

index cd097527f46351cf4de66008222500c9992f0d4c..68c1e28ec40e54591ce483eb4aef1dd6b590d7d5 100644 (file)
@@ -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 supported 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 (file)
index 0000000..ad2825b
--- /dev/null
@@ -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>
index 711bd1b6616d62896cdd553102b3d03abe1386aa..3d278c4bc269e78c601393d6d5411c798a5a7bac 100644 (file)
@@ -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);