[libvirt] [PATCH 0/3] qemu: Improve handling of format for 'network' and 'volume' disks (blockdev-add saga)

Peter Krempa (3): tests: qemu: Test network disks without format specified explicitly qemu: domain: Assume 'raw' default storage format also for network storage qemu: domain: Treat 'volume' disks as 'raw' if neiter user nor pool provided format src/qemu/qemu_domain.c | 8 ++++++-- tests/qemuxml2argvdata/disk-network-gluster.xml | 2 +- tests/qemuxml2argvdata/disk-network-iscsi.xml | 2 +- tests/qemuxml2argvdata/disk-network-nbd.xml | 2 +- tests/qemuxml2argvdata/disk-source-pool-mode.args | 6 +++--- tests/qemuxml2argvdata/disk-source-pool.args | 4 ++-- 6 files changed, 14 insertions(+), 10 deletions(-) -- 2.20.1

Modify some existing tests of network-based disks to omit the storage format specification. Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- tests/qemuxml2argvdata/disk-network-gluster.args | 2 +- tests/qemuxml2argvdata/disk-network-gluster.x86_64-2.12.0.args | 2 +- tests/qemuxml2argvdata/disk-network-gluster.x86_64-latest.args | 2 +- tests/qemuxml2argvdata/disk-network-gluster.xml | 2 +- tests/qemuxml2argvdata/disk-network-iscsi.args | 3 +-- tests/qemuxml2argvdata/disk-network-iscsi.x86_64-2.12.0.args | 2 +- tests/qemuxml2argvdata/disk-network-iscsi.x86_64-latest.args | 2 +- tests/qemuxml2argvdata/disk-network-iscsi.xml | 2 +- tests/qemuxml2argvdata/disk-network-nbd.args | 3 +-- tests/qemuxml2argvdata/disk-network-nbd.x86_64-2.12.0.args | 3 +-- tests/qemuxml2argvdata/disk-network-nbd.x86_64-latest.args | 3 +-- tests/qemuxml2argvdata/disk-network-nbd.xml | 2 +- tests/qemuxml2xmloutdata/disk-network-gluster.xml | 2 +- tests/qemuxml2xmloutdata/disk-network-iscsi.xml | 2 +- tests/qemuxml2xmloutdata/disk-network-nbd.xml | 2 +- 15 files changed, 15 insertions(+), 19 deletions(-) diff --git a/tests/qemuxml2argvdata/disk-network-gluster.args b/tests/qemuxml2argvdata/disk-network-gluster.args index 1538df9068..9952402d92 100644 --- a/tests/qemuxml2argvdata/disk-network-gluster.args +++ b/tests/qemuxml2argvdata/disk-network-gluster.args @@ -26,7 +26,7 @@ if=none,id=drive-virtio-disk0 \ -device virtio-blk-pci,bus=pci.0,addr=0x3,drive=drive-virtio-disk0,\ id=virtio-disk0,bootindex=1 \ -drive 'file=gluster+unix:///Volume2/Image?socket=/path/to/sock,file.debug=4,\ -format=raw,if=none,id=drive-virtio-disk1' \ +if=none,id=drive-virtio-disk1' \ -device virtio-blk-pci,bus=pci.0,addr=0x4,drive=drive-virtio-disk1,\ id=virtio-disk1 \ -drive file.driver=gluster,file.volume=Volume3,file.path=Image.qcow2,\ diff --git a/tests/qemuxml2argvdata/disk-network-gluster.x86_64-2.12.0.args b/tests/qemuxml2argvdata/disk-network-gluster.x86_64-2.12.0.args index c463db0ed5..a904ff5c70 100644 --- a/tests/qemuxml2argvdata/disk-network-gluster.x86_64-2.12.0.args +++ b/tests/qemuxml2argvdata/disk-network-gluster.x86_64-2.12.0.args @@ -29,7 +29,7 @@ if=none,id=drive-virtio-disk0 \ -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x2,drive=drive-virtio-disk0,\ id=virtio-disk0,bootindex=1 \ -drive 'file=gluster+unix:///Volume2/Image?socket=/path/to/sock,file.debug=4,\ -format=raw,if=none,id=drive-virtio-disk1' \ +if=none,id=drive-virtio-disk1' \ -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x3,drive=drive-virtio-disk1,\ id=virtio-disk1 \ -drive file.driver=gluster,file.volume=Volume3,file.path=Image.qcow2,\ diff --git a/tests/qemuxml2argvdata/disk-network-gluster.x86_64-latest.args b/tests/qemuxml2argvdata/disk-network-gluster.x86_64-latest.args index 9b99db8715..a4e968b917 100644 --- a/tests/qemuxml2argvdata/disk-network-gluster.x86_64-latest.args +++ b/tests/qemuxml2argvdata/disk-network-gluster.x86_64-latest.args @@ -29,7 +29,7 @@ if=none,id=drive-virtio-disk0 \ -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x2,drive=drive-virtio-disk0,\ id=virtio-disk0,bootindex=1 \ -drive 'file=gluster+unix:///Volume2/Image?socket=/path/to/sock,file.debug=4,\ -format=raw,if=none,id=drive-virtio-disk1' \ +if=none,id=drive-virtio-disk1' \ -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x3,drive=drive-virtio-disk1,\ id=virtio-disk1 \ -drive file.driver=gluster,file.volume=Volume3,file.path=Image.qcow2,\ diff --git a/tests/qemuxml2argvdata/disk-network-gluster.xml b/tests/qemuxml2argvdata/disk-network-gluster.xml index db40e661f7..8ba4e50b36 100644 --- a/tests/qemuxml2argvdata/disk-network-gluster.xml +++ b/tests/qemuxml2argvdata/disk-network-gluster.xml @@ -22,7 +22,7 @@ <target dev='vda' bus='virtio'/> </disk> <disk type='network' device='disk'> - <driver name='qemu' type='raw'/> + <driver name='qemu'/> <source protocol='gluster' name='Volume2/Image'> <host transport='unix' socket='/path/to/sock'/> </source> diff --git a/tests/qemuxml2argvdata/disk-network-iscsi.args b/tests/qemuxml2argvdata/disk-network-iscsi.args index 3cd3b5e03e..45da3a9de9 100644 --- a/tests/qemuxml2argvdata/disk-network-iscsi.args +++ b/tests/qemuxml2argvdata/disk-network-iscsi.args @@ -31,8 +31,7 @@ if=none,id=drive-virtio-disk1 \ -device virtio-blk-pci,bus=pci.0,addr=0x5,drive=drive-virtio-disk1,\ id=virtio-disk1 \ -drive file=iscsi://myname:AQCVn5hO6HzFAhAAq0NCv8jtJcIcE+HOBlMQ1A@example.org:\ -6000/iqn.1992-01.com.example%3Astorage/1,format=raw,if=none,\ -id=drive-virtio-disk2 \ +6000/iqn.1992-01.com.example%3Astorage/1,if=none,id=drive-virtio-disk2 \ -device virtio-blk-pci,bus=pci.0,addr=0x6,drive=drive-virtio-disk2,\ id=virtio-disk2 \ -drive file=iscsi://myname:AQCVn5hO6HzFAhAAq0NCv8jtJcIcE+HOBlMQ1A@example.org:\ diff --git a/tests/qemuxml2argvdata/disk-network-iscsi.x86_64-2.12.0.args b/tests/qemuxml2argvdata/disk-network-iscsi.x86_64-2.12.0.args index 4b648a985d..e298220e09 100644 --- a/tests/qemuxml2argvdata/disk-network-iscsi.x86_64-2.12.0.args +++ b/tests/qemuxml2argvdata/disk-network-iscsi.x86_64-2.12.0.args @@ -40,7 +40,7 @@ data=9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\ keyid=masterKey0,iv=AAECAwQFBgcICQoLDA0ODw==,format=base64 \ -drive file.driver=iscsi,file.portal=example.org:6000,\ file.target=iqn.1992-01.com.example:storage,file.lun=1,file.transport=tcp,\ -file.user=myname,file.password-secret=virtio-disk2-secret0,format=raw,if=none,\ +file.user=myname,file.password-secret=virtio-disk2-secret0,if=none,\ id=drive-virtio-disk2 \ -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x5,drive=drive-virtio-disk2,\ id=virtio-disk2 \ diff --git a/tests/qemuxml2argvdata/disk-network-iscsi.x86_64-latest.args b/tests/qemuxml2argvdata/disk-network-iscsi.x86_64-latest.args index be9ab18314..e7cc4cd1fd 100644 --- a/tests/qemuxml2argvdata/disk-network-iscsi.x86_64-latest.args +++ b/tests/qemuxml2argvdata/disk-network-iscsi.x86_64-latest.args @@ -40,7 +40,7 @@ data=9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\ keyid=masterKey0,iv=AAECAwQFBgcICQoLDA0ODw==,format=base64 \ -drive file.driver=iscsi,file.portal=example.org:6000,\ file.target=iqn.1992-01.com.example:storage,file.lun=1,file.transport=tcp,\ -file.user=myname,file.password-secret=virtio-disk2-secret0,format=raw,if=none,\ +file.user=myname,file.password-secret=virtio-disk2-secret0,if=none,\ id=drive-virtio-disk2 \ -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x5,drive=drive-virtio-disk2,\ id=virtio-disk2 \ diff --git a/tests/qemuxml2argvdata/disk-network-iscsi.xml b/tests/qemuxml2argvdata/disk-network-iscsi.xml index fa2a889b54..ecc8ead3cc 100644 --- a/tests/qemuxml2argvdata/disk-network-iscsi.xml +++ b/tests/qemuxml2argvdata/disk-network-iscsi.xml @@ -29,7 +29,7 @@ <target dev='vdb' bus='virtio'/> </disk> <disk type='network' device='disk'> - <driver name='qemu' type='raw'/> + <driver name='qemu'/> <auth username='myname'> <secret type='iscsi' usage='mycluster_myname'/> </auth> diff --git a/tests/qemuxml2argvdata/disk-network-nbd.args b/tests/qemuxml2argvdata/disk-network-nbd.args index 4abff25a0e..df4436b027 100644 --- a/tests/qemuxml2argvdata/disk-network-nbd.args +++ b/tests/qemuxml2argvdata/disk-network-nbd.args @@ -24,8 +24,7 @@ server,nowait \ -drive file=nbd:example.org:6000,format=raw,if=none,id=drive-virtio-disk0 \ -device virtio-blk-pci,bus=pci.0,addr=0x3,drive=drive-virtio-disk0,\ id=virtio-disk0,bootindex=1 \ --drive file=nbd:example.org:6000:exportname=bar,format=raw,if=none,\ -id=drive-virtio-disk1 \ +-drive file=nbd:example.org:6000:exportname=bar,if=none,id=drive-virtio-disk1 \ -device virtio-blk-pci,bus=pci.0,addr=0x4,drive=drive-virtio-disk1,\ id=virtio-disk1 \ -drive 'file=nbd://[::1]:6000,format=raw,if=none,id=drive-virtio-disk2' \ diff --git a/tests/qemuxml2argvdata/disk-network-nbd.x86_64-2.12.0.args b/tests/qemuxml2argvdata/disk-network-nbd.x86_64-2.12.0.args index 86bde153ee..330aadea4b 100644 --- a/tests/qemuxml2argvdata/disk-network-nbd.x86_64-2.12.0.args +++ b/tests/qemuxml2argvdata/disk-network-nbd.x86_64-2.12.0.args @@ -27,8 +27,7 @@ file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \ -drive file=nbd:example.org:6000,format=raw,if=none,id=drive-virtio-disk0 \ -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x2,drive=drive-virtio-disk0,\ id=virtio-disk0,bootindex=1 \ --drive file=nbd:example.org:6000:exportname=bar,format=raw,if=none,\ -id=drive-virtio-disk1 \ +-drive file=nbd:example.org:6000:exportname=bar,if=none,id=drive-virtio-disk1 \ -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x3,drive=drive-virtio-disk1,\ id=virtio-disk1 \ -drive 'file=nbd://[::1]:6000,format=raw,if=none,id=drive-virtio-disk2' \ diff --git a/tests/qemuxml2argvdata/disk-network-nbd.x86_64-latest.args b/tests/qemuxml2argvdata/disk-network-nbd.x86_64-latest.args index 85452e715a..f7e8502385 100644 --- a/tests/qemuxml2argvdata/disk-network-nbd.x86_64-latest.args +++ b/tests/qemuxml2argvdata/disk-network-nbd.x86_64-latest.args @@ -27,8 +27,7 @@ file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \ -drive file=nbd:example.org:6000,format=raw,if=none,id=drive-virtio-disk0 \ -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x2,drive=drive-virtio-disk0,\ id=virtio-disk0,bootindex=1 \ --drive file=nbd:example.org:6000:exportname=bar,format=raw,if=none,\ -id=drive-virtio-disk1 \ +-drive file=nbd:example.org:6000:exportname=bar,if=none,id=drive-virtio-disk1 \ -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x3,drive=drive-virtio-disk1,\ id=virtio-disk1 \ -drive 'file=nbd://[::1]:6000,format=raw,if=none,id=drive-virtio-disk2' \ diff --git a/tests/qemuxml2argvdata/disk-network-nbd.xml b/tests/qemuxml2argvdata/disk-network-nbd.xml index 2d5762f1b7..f9630d6655 100644 --- a/tests/qemuxml2argvdata/disk-network-nbd.xml +++ b/tests/qemuxml2argvdata/disk-network-nbd.xml @@ -22,7 +22,7 @@ <target dev='vda' bus='virtio'/> </disk> <disk type='network' device='disk'> - <driver name='qemu' type='raw'/> + <driver name='qemu'/> <source protocol='nbd' name='bar'> <host name='example.org' port='6000'/> </source> diff --git a/tests/qemuxml2xmloutdata/disk-network-gluster.xml b/tests/qemuxml2xmloutdata/disk-network-gluster.xml index 2c7c46b013..ae2899040f 100644 --- a/tests/qemuxml2xmloutdata/disk-network-gluster.xml +++ b/tests/qemuxml2xmloutdata/disk-network-gluster.xml @@ -23,7 +23,7 @@ <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </disk> <disk type='network' device='disk'> - <driver name='qemu' type='raw'/> + <driver name='qemu'/> <source protocol='gluster' name='Volume2/Image'> <host transport='unix' socket='/path/to/sock'/> </source> diff --git a/tests/qemuxml2xmloutdata/disk-network-iscsi.xml b/tests/qemuxml2xmloutdata/disk-network-iscsi.xml index f1348d583e..b089b2950d 100644 --- a/tests/qemuxml2xmloutdata/disk-network-iscsi.xml +++ b/tests/qemuxml2xmloutdata/disk-network-iscsi.xml @@ -31,7 +31,7 @@ <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/> </disk> <disk type='network' device='disk'> - <driver name='qemu' type='raw'/> + <driver name='qemu'/> <auth username='myname'> <secret type='iscsi' usage='mycluster_myname'/> </auth> diff --git a/tests/qemuxml2xmloutdata/disk-network-nbd.xml b/tests/qemuxml2xmloutdata/disk-network-nbd.xml index 818e8d7d7c..bb4223a3f0 100644 --- a/tests/qemuxml2xmloutdata/disk-network-nbd.xml +++ b/tests/qemuxml2xmloutdata/disk-network-nbd.xml @@ -23,7 +23,7 @@ <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </disk> <disk type='network' device='disk'> - <driver name='qemu' type='raw'/> + <driver name='qemu'/> <source protocol='nbd' name='bar'> <host name='example.org' port='6000'/> </source> -- 2.20.1

Post parse callback adds the 'raw' type only for local files. Remote files can also have backing store (even local) so we should do this also for network backed storage. Note that virStorageFileGetMetadata always considers files with no type as raw so we will not accidentally traverse the backing chain and allow unexpected files being labelled with svirt labels. Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- src/qemu/qemu_domain.c | 3 +-- tests/qemuxml2argvdata/disk-network-gluster.args | 2 +- tests/qemuxml2argvdata/disk-network-gluster.x86_64-2.12.0.args | 2 +- tests/qemuxml2argvdata/disk-network-gluster.x86_64-latest.args | 2 +- tests/qemuxml2argvdata/disk-network-iscsi.args | 3 ++- tests/qemuxml2argvdata/disk-network-iscsi.x86_64-2.12.0.args | 2 +- tests/qemuxml2argvdata/disk-network-iscsi.x86_64-latest.args | 2 +- tests/qemuxml2argvdata/disk-network-nbd.args | 3 ++- tests/qemuxml2argvdata/disk-network-nbd.x86_64-2.12.0.args | 3 ++- tests/qemuxml2argvdata/disk-network-nbd.x86_64-latest.args | 3 ++- tests/qemuxml2xmloutdata/disk-network-gluster.xml | 2 +- tests/qemuxml2xmloutdata/disk-network-iscsi.xml | 2 +- tests/qemuxml2xmloutdata/disk-network-nbd.xml | 2 +- 13 files changed, 17 insertions(+), 14 deletions(-) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 5bfe4fe14e..20ce9330e5 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -6639,8 +6639,7 @@ qemuDomainDeviceDiskDefPostParse(virDomainDiskDefPtr disk, /* default disk format for drives */ if (virDomainDiskGetFormat(disk) == VIR_STORAGE_FILE_NONE && - (virDomainDiskGetType(disk) == VIR_STORAGE_TYPE_FILE || - virDomainDiskGetType(disk) == VIR_STORAGE_TYPE_BLOCK)) + virDomainDiskGetType(disk) != VIR_STORAGE_TYPE_VOLUME) virDomainDiskSetFormat(disk, VIR_STORAGE_FILE_RAW); /* default disk format for mirrored drive */ diff --git a/tests/qemuxml2argvdata/disk-network-gluster.args b/tests/qemuxml2argvdata/disk-network-gluster.args index 9952402d92..1538df9068 100644 --- a/tests/qemuxml2argvdata/disk-network-gluster.args +++ b/tests/qemuxml2argvdata/disk-network-gluster.args @@ -26,7 +26,7 @@ if=none,id=drive-virtio-disk0 \ -device virtio-blk-pci,bus=pci.0,addr=0x3,drive=drive-virtio-disk0,\ id=virtio-disk0,bootindex=1 \ -drive 'file=gluster+unix:///Volume2/Image?socket=/path/to/sock,file.debug=4,\ -if=none,id=drive-virtio-disk1' \ +format=raw,if=none,id=drive-virtio-disk1' \ -device virtio-blk-pci,bus=pci.0,addr=0x4,drive=drive-virtio-disk1,\ id=virtio-disk1 \ -drive file.driver=gluster,file.volume=Volume3,file.path=Image.qcow2,\ diff --git a/tests/qemuxml2argvdata/disk-network-gluster.x86_64-2.12.0.args b/tests/qemuxml2argvdata/disk-network-gluster.x86_64-2.12.0.args index a904ff5c70..c463db0ed5 100644 --- a/tests/qemuxml2argvdata/disk-network-gluster.x86_64-2.12.0.args +++ b/tests/qemuxml2argvdata/disk-network-gluster.x86_64-2.12.0.args @@ -29,7 +29,7 @@ if=none,id=drive-virtio-disk0 \ -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x2,drive=drive-virtio-disk0,\ id=virtio-disk0,bootindex=1 \ -drive 'file=gluster+unix:///Volume2/Image?socket=/path/to/sock,file.debug=4,\ -if=none,id=drive-virtio-disk1' \ +format=raw,if=none,id=drive-virtio-disk1' \ -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x3,drive=drive-virtio-disk1,\ id=virtio-disk1 \ -drive file.driver=gluster,file.volume=Volume3,file.path=Image.qcow2,\ diff --git a/tests/qemuxml2argvdata/disk-network-gluster.x86_64-latest.args b/tests/qemuxml2argvdata/disk-network-gluster.x86_64-latest.args index a4e968b917..9b99db8715 100644 --- a/tests/qemuxml2argvdata/disk-network-gluster.x86_64-latest.args +++ b/tests/qemuxml2argvdata/disk-network-gluster.x86_64-latest.args @@ -29,7 +29,7 @@ if=none,id=drive-virtio-disk0 \ -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x2,drive=drive-virtio-disk0,\ id=virtio-disk0,bootindex=1 \ -drive 'file=gluster+unix:///Volume2/Image?socket=/path/to/sock,file.debug=4,\ -if=none,id=drive-virtio-disk1' \ +format=raw,if=none,id=drive-virtio-disk1' \ -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x3,drive=drive-virtio-disk1,\ id=virtio-disk1 \ -drive file.driver=gluster,file.volume=Volume3,file.path=Image.qcow2,\ diff --git a/tests/qemuxml2argvdata/disk-network-iscsi.args b/tests/qemuxml2argvdata/disk-network-iscsi.args index 45da3a9de9..3cd3b5e03e 100644 --- a/tests/qemuxml2argvdata/disk-network-iscsi.args +++ b/tests/qemuxml2argvdata/disk-network-iscsi.args @@ -31,7 +31,8 @@ if=none,id=drive-virtio-disk1 \ -device virtio-blk-pci,bus=pci.0,addr=0x5,drive=drive-virtio-disk1,\ id=virtio-disk1 \ -drive file=iscsi://myname:AQCVn5hO6HzFAhAAq0NCv8jtJcIcE+HOBlMQ1A@example.org:\ -6000/iqn.1992-01.com.example%3Astorage/1,if=none,id=drive-virtio-disk2 \ +6000/iqn.1992-01.com.example%3Astorage/1,format=raw,if=none,\ +id=drive-virtio-disk2 \ -device virtio-blk-pci,bus=pci.0,addr=0x6,drive=drive-virtio-disk2,\ id=virtio-disk2 \ -drive file=iscsi://myname:AQCVn5hO6HzFAhAAq0NCv8jtJcIcE+HOBlMQ1A@example.org:\ diff --git a/tests/qemuxml2argvdata/disk-network-iscsi.x86_64-2.12.0.args b/tests/qemuxml2argvdata/disk-network-iscsi.x86_64-2.12.0.args index e298220e09..4b648a985d 100644 --- a/tests/qemuxml2argvdata/disk-network-iscsi.x86_64-2.12.0.args +++ b/tests/qemuxml2argvdata/disk-network-iscsi.x86_64-2.12.0.args @@ -40,7 +40,7 @@ data=9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\ keyid=masterKey0,iv=AAECAwQFBgcICQoLDA0ODw==,format=base64 \ -drive file.driver=iscsi,file.portal=example.org:6000,\ file.target=iqn.1992-01.com.example:storage,file.lun=1,file.transport=tcp,\ -file.user=myname,file.password-secret=virtio-disk2-secret0,if=none,\ +file.user=myname,file.password-secret=virtio-disk2-secret0,format=raw,if=none,\ id=drive-virtio-disk2 \ -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x5,drive=drive-virtio-disk2,\ id=virtio-disk2 \ diff --git a/tests/qemuxml2argvdata/disk-network-iscsi.x86_64-latest.args b/tests/qemuxml2argvdata/disk-network-iscsi.x86_64-latest.args index e7cc4cd1fd..be9ab18314 100644 --- a/tests/qemuxml2argvdata/disk-network-iscsi.x86_64-latest.args +++ b/tests/qemuxml2argvdata/disk-network-iscsi.x86_64-latest.args @@ -40,7 +40,7 @@ data=9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\ keyid=masterKey0,iv=AAECAwQFBgcICQoLDA0ODw==,format=base64 \ -drive file.driver=iscsi,file.portal=example.org:6000,\ file.target=iqn.1992-01.com.example:storage,file.lun=1,file.transport=tcp,\ -file.user=myname,file.password-secret=virtio-disk2-secret0,if=none,\ +file.user=myname,file.password-secret=virtio-disk2-secret0,format=raw,if=none,\ id=drive-virtio-disk2 \ -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x5,drive=drive-virtio-disk2,\ id=virtio-disk2 \ diff --git a/tests/qemuxml2argvdata/disk-network-nbd.args b/tests/qemuxml2argvdata/disk-network-nbd.args index df4436b027..4abff25a0e 100644 --- a/tests/qemuxml2argvdata/disk-network-nbd.args +++ b/tests/qemuxml2argvdata/disk-network-nbd.args @@ -24,7 +24,8 @@ server,nowait \ -drive file=nbd:example.org:6000,format=raw,if=none,id=drive-virtio-disk0 \ -device virtio-blk-pci,bus=pci.0,addr=0x3,drive=drive-virtio-disk0,\ id=virtio-disk0,bootindex=1 \ --drive file=nbd:example.org:6000:exportname=bar,if=none,id=drive-virtio-disk1 \ +-drive file=nbd:example.org:6000:exportname=bar,format=raw,if=none,\ +id=drive-virtio-disk1 \ -device virtio-blk-pci,bus=pci.0,addr=0x4,drive=drive-virtio-disk1,\ id=virtio-disk1 \ -drive 'file=nbd://[::1]:6000,format=raw,if=none,id=drive-virtio-disk2' \ diff --git a/tests/qemuxml2argvdata/disk-network-nbd.x86_64-2.12.0.args b/tests/qemuxml2argvdata/disk-network-nbd.x86_64-2.12.0.args index 330aadea4b..86bde153ee 100644 --- a/tests/qemuxml2argvdata/disk-network-nbd.x86_64-2.12.0.args +++ b/tests/qemuxml2argvdata/disk-network-nbd.x86_64-2.12.0.args @@ -27,7 +27,8 @@ file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \ -drive file=nbd:example.org:6000,format=raw,if=none,id=drive-virtio-disk0 \ -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x2,drive=drive-virtio-disk0,\ id=virtio-disk0,bootindex=1 \ --drive file=nbd:example.org:6000:exportname=bar,if=none,id=drive-virtio-disk1 \ +-drive file=nbd:example.org:6000:exportname=bar,format=raw,if=none,\ +id=drive-virtio-disk1 \ -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x3,drive=drive-virtio-disk1,\ id=virtio-disk1 \ -drive 'file=nbd://[::1]:6000,format=raw,if=none,id=drive-virtio-disk2' \ diff --git a/tests/qemuxml2argvdata/disk-network-nbd.x86_64-latest.args b/tests/qemuxml2argvdata/disk-network-nbd.x86_64-latest.args index f7e8502385..85452e715a 100644 --- a/tests/qemuxml2argvdata/disk-network-nbd.x86_64-latest.args +++ b/tests/qemuxml2argvdata/disk-network-nbd.x86_64-latest.args @@ -27,7 +27,8 @@ file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \ -drive file=nbd:example.org:6000,format=raw,if=none,id=drive-virtio-disk0 \ -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x2,drive=drive-virtio-disk0,\ id=virtio-disk0,bootindex=1 \ --drive file=nbd:example.org:6000:exportname=bar,if=none,id=drive-virtio-disk1 \ +-drive file=nbd:example.org:6000:exportname=bar,format=raw,if=none,\ +id=drive-virtio-disk1 \ -device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x3,drive=drive-virtio-disk1,\ id=virtio-disk1 \ -drive 'file=nbd://[::1]:6000,format=raw,if=none,id=drive-virtio-disk2' \ diff --git a/tests/qemuxml2xmloutdata/disk-network-gluster.xml b/tests/qemuxml2xmloutdata/disk-network-gluster.xml index ae2899040f..2c7c46b013 100644 --- a/tests/qemuxml2xmloutdata/disk-network-gluster.xml +++ b/tests/qemuxml2xmloutdata/disk-network-gluster.xml @@ -23,7 +23,7 @@ <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </disk> <disk type='network' device='disk'> - <driver name='qemu'/> + <driver name='qemu' type='raw'/> <source protocol='gluster' name='Volume2/Image'> <host transport='unix' socket='/path/to/sock'/> </source> diff --git a/tests/qemuxml2xmloutdata/disk-network-iscsi.xml b/tests/qemuxml2xmloutdata/disk-network-iscsi.xml index b089b2950d..f1348d583e 100644 --- a/tests/qemuxml2xmloutdata/disk-network-iscsi.xml +++ b/tests/qemuxml2xmloutdata/disk-network-iscsi.xml @@ -31,7 +31,7 @@ <address type='pci' domain='0x0000' bus='0x00' slot='0x05' function='0x0'/> </disk> <disk type='network' device='disk'> - <driver name='qemu'/> + <driver name='qemu' type='raw'/> <auth username='myname'> <secret type='iscsi' usage='mycluster_myname'/> </auth> diff --git a/tests/qemuxml2xmloutdata/disk-network-nbd.xml b/tests/qemuxml2xmloutdata/disk-network-nbd.xml index bb4223a3f0..818e8d7d7c 100644 --- a/tests/qemuxml2xmloutdata/disk-network-nbd.xml +++ b/tests/qemuxml2xmloutdata/disk-network-nbd.xml @@ -23,7 +23,7 @@ <address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/> </disk> <disk type='network' device='disk'> - <driver name='qemu'/> + <driver name='qemu' type='raw'/> <source protocol='nbd' name='bar'> <host name='example.org' port='6000'/> </source> -- 2.20.1

Storage pools might want to specify format of the image when translating the volume thus we can't add any default format when parsing the XML. Add a explicit format when starting the VM and format is not present neither by user specifying it nor by the storage pool translation function. Signed-off-by: Peter Krempa <pkrempa@redhat.com> --- src/qemu/qemu_domain.c | 5 +++++ tests/qemuxml2argvdata/disk-source-pool-mode.args | 6 +++--- tests/qemuxml2argvdata/disk-source-pool.args | 4 ++-- 3 files changed, 10 insertions(+), 5 deletions(-) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 20ce9330e5..7677b2d3c0 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -13688,6 +13688,11 @@ qemuDomainPrepareDiskSource(virDomainDiskDefPtr disk, { qemuDomainPrepareDiskCachemode(disk); + /* add raw file format if the storage pool did not fill it in */ + if (disk->src->type == VIR_STORAGE_TYPE_VOLUME && + disk->src->format <= VIR_STORAGE_FILE_NONE) + disk->src->format = VIR_STORAGE_FILE_RAW; + if (virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_BLOCKDEV)) { if (qemuDomainPrepareDiskSourceBlockdev(disk, priv, cfg) < 0) return -1; diff --git a/tests/qemuxml2argvdata/disk-source-pool-mode.args b/tests/qemuxml2argvdata/disk-source-pool-mode.args index e8d9aacd77..930d360d16 100644 --- a/tests/qemuxml2argvdata/disk-source-pool-mode.args +++ b/tests/qemuxml2argvdata/disk-source-pool-mode.args @@ -21,16 +21,16 @@ server,nowait \ -no-shutdown \ -no-acpi \ -usb \ --drive file=/some/block/device/unit:0:0:1,if=none,id=drive-ide0-0-1,\ +-drive file=/some/block/device/unit:0:0:1,format=raw,if=none,id=drive-ide0-0-1,\ media=cdrom,readonly=on \ -device ide-drive,bus=ide.0,unit=1,drive=drive-ide0-0-1,id=ide0-0-1 \ --drive file=iscsi://iscsi.example.com:3260/demo-target/2,if=none,\ +-drive file=iscsi://iscsi.example.com:3260/demo-target/2,format=raw,if=none,\ id=drive-ide0-0-2,media=cdrom,readonly=on \ -device ide-drive,bus=ide.0,unit=2,drive=drive-ide0-0-2,id=ide0-0-2 \ -drive file=/tmp/idedisk.img,format=raw,if=none,id=drive-ide0-0-3 \ -device ide-drive,bus=ide.0,unit=3,drive=drive-ide0-0-3,id=ide0-0-3,\ bootindex=1 \ --drive file=iscsi://iscsi.example.com:3260/demo-target/3,if=none,\ +-drive file=iscsi://iscsi.example.com:3260/demo-target/3,format=raw,if=none,\ id=drive-ide0-0-4,media=cdrom,readonly=on \ -device ide-drive,bus=ide.0,unit=4,drive=drive-ide0-0-4,id=ide0-0-4 \ -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 diff --git a/tests/qemuxml2argvdata/disk-source-pool.args b/tests/qemuxml2argvdata/disk-source-pool.args index 49dc853bcd..fe95aa2250 100644 --- a/tests/qemuxml2argvdata/disk-source-pool.args +++ b/tests/qemuxml2argvdata/disk-source-pool.args @@ -21,8 +21,8 @@ server,nowait \ -no-shutdown \ -no-acpi \ -usb \ --drive file=/some/block/device/cdrom,if=none,id=drive-ide0-0-1,media=cdrom,\ -readonly=on \ +-drive file=/some/block/device/cdrom,format=raw,if=none,id=drive-ide0-0-1,\ +media=cdrom,readonly=on \ -device ide-drive,bus=ide.0,unit=1,drive=drive-ide0-0-1,id=ide0-0-1 \ -drive if=none,id=drive-ide0-1-0,media=cdrom,readonly=on \ -device ide-drive,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 \ -- 2.20.1

On 1/31/19 8:42 AM, Peter Krempa wrote: Subject: s/neiter/neither/ Long line; maybe: qemu: domain: Use 'raw' for 'volume' disks without format
Storage pools might want to specify format of the image when translating the volume thus we can't add any default format when parsing the XML.
Add a explicit format when starting the VM and format is not present neither by user specifying it nor by the storage pool translation function.
Signed-off-by: Peter Krempa <pkrempa@redhat.com> ---
-- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3226 Virtualization: qemu.org | libvirt.org

On Thu, Jan 31, 2019 at 03:42:53PM +0100, Peter Krempa wrote:
Peter Krempa (3): tests: qemu: Test network disks without format specified explicitly qemu: domain: Assume 'raw' default storage format also for network storage qemu: domain: Treat 'volume' disks as 'raw' if neiter user nor pool provided format
src/qemu/qemu_domain.c | 8 ++++++-- tests/qemuxml2argvdata/disk-network-gluster.xml | 2 +- tests/qemuxml2argvdata/disk-network-iscsi.xml | 2 +- tests/qemuxml2argvdata/disk-network-nbd.xml | 2 +- tests/qemuxml2argvdata/disk-source-pool-mode.args | 6 +++--- tests/qemuxml2argvdata/disk-source-pool.args | 4 ++-- 6 files changed, 14 insertions(+), 10 deletions(-)
Reviewed-by: Ján Tomko <jtomko@redhat.com> Jano
participants (3)
-
Eric Blake
-
Ján Tomko
-
Peter Krempa