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

Peter Krempa posted 14 patches 7 years, 8 months ago
[libvirt] [PATCH 08/14] qemu: domain: Forbid VIR_STORAGE_FILE_ISO as a disk format
Posted by Peter Krempa 7 years, 8 months ago
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@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

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list
Re: [libvirt] [PATCH 08/14] qemu: domain: Forbid VIR_STORAGE_FILE_ISO as a disk format
Posted by Ján Tomko 7 years, 8 months ago
On Thu, Mar 29, 2018 at 01:51:05PM +0200, Peter Krempa wrote:
>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

s/nothion/notion/

>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                        |  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, "

s/suppored/supported/

>+                         "use 'raw' instead"));
>+        return -1;

ACK

Jano
--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list