[libvirt] [PATCH RFC 39/39] DO NOT APPLY: Enable QEMU_CAPS_BLOCKDEV if 'copy-on-read' is supported

Peter Krempa pkrempa at redhat.com
Wed Jul 25 15:58:10 UTC 2018


Use the 'copy-on-read' block drive in qemu as a witness to enable the
blockdev functionality and adapt the test files for the new output.

Note that the blockjobs were NOT adapted yet so any blockjob will desync
the state of qemu. This patch needs to wait until blockjobs are fixed.
---
 src/qemu/qemu_capabilities.c                       |   1 +
 tests/qemucapabilitiesdata/caps_3.0.0.ppc64.xml    |   1 +
 tests/qemucapabilitiesdata/caps_3.0.0.x86_64.xml   |   1 +
 tests/qemuxml2argvdata/disk-aio.x86_64-latest.args |  19 ++-
 .../disk-backing-chains-noindex.x86_64-latest.args | 145 ++++++++++++++++++---
 .../qemuxml2argvdata/disk-cache.x86_64-latest.args |  50 ++++---
 .../disk-cdrom-network.x86_64-latest.args          |  32 +++--
 .../disk-cdrom-tray.x86_64-latest.args             |  24 ++--
 .../qemuxml2argvdata/disk-cdrom.x86_64-latest.args |  17 ++-
 .../disk-copy_on_read.x86_64-latest.args           |  19 ++-
 .../disk-detect-zeroes.x86_64-latest.args          |  17 ++-
 .../disk-error-policy.x86_64-latest.args           |  30 +++--
 .../disk-network-gluster.x86_64-latest.args        |  32 +++--
 .../disk-network-iscsi.x86_64-latest.args          |  58 +++++----
 .../disk-network-nbd.x86_64-latest.args            |  41 ++++--
 .../disk-network-rbd.x86_64-latest.args            |  67 ++++++----
 .../disk-network-sheepdog.x86_64-latest.args       |  16 ++-
 .../disk-network-source-auth.x86_64-latest.args    |  30 +++--
 .../disk-network-tlsx509.x86_64-latest.args        |  61 +++++----
 .../disk-readonly-disk.x86_64-latest.args          |  14 +-
 .../disk-shared.x86_64-latest.args                 |  18 ++-
 ...isk-virtio-scsi-reservations.x86_64-latest.args |  20 ++-
 22 files changed, 495 insertions(+), 218 deletions(-)

diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index 6b4c14ac50..f439271ac6 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -1309,6 +1309,7 @@ static struct virQEMUCapsStringFlags virQEMUCapsQMPSchemaQueries[] = {
     { "blockdev-add/arg-type/+qcow2/encrypt/+luks/key-secret", QEMU_CAPS_QCOW2_LUKS },
     { "nbd-server-start/arg-type/tls-creds", QEMU_CAPS_NBD_TLS },
     { "screendump/arg-type/device", QEMU_CAPS_SCREENDUMP_DEVICE },
+    { "blockdev-add/arg-type/+copy-on-read/file", QEMU_CAPS_BLOCKDEV },
 };

 typedef struct _virQEMUCapsObjectTypeProps virQEMUCapsObjectTypeProps;
diff --git a/tests/qemucapabilitiesdata/caps_3.0.0.ppc64.xml b/tests/qemucapabilitiesdata/caps_3.0.0.ppc64.xml
index 01bb968938..01d9b684db 100644
--- a/tests/qemucapabilitiesdata/caps_3.0.0.ppc64.xml
+++ b/tests/qemucapabilitiesdata/caps_3.0.0.ppc64.xml
@@ -169,6 +169,7 @@
   <flag name='machine.pseries.cap-htm'/>
   <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
+  <flag name='blockdev'/>
   <version>2012050</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>446771</microcodeVersion>
diff --git a/tests/qemucapabilitiesdata/caps_3.0.0.x86_64.xml b/tests/qemucapabilitiesdata/caps_3.0.0.x86_64.xml
index 4bc7cfeebc..f5d55dde4b 100644
--- a/tests/qemucapabilitiesdata/caps_3.0.0.x86_64.xml
+++ b/tests/qemucapabilitiesdata/caps_3.0.0.x86_64.xml
@@ -216,6 +216,7 @@
   <flag name='usb-storage.werror'/>
   <flag name='egl-headless'/>
   <flag name='vfio-pci.display'/>
+  <flag name='blockdev'/>
   <version>2012090</version>
   <kvmVersion>0</kvmVersion>
   <microcodeVersion>438109</microcodeVersion>
diff --git a/tests/qemuxml2argvdata/disk-aio.x86_64-latest.args b/tests/qemuxml2argvdata/disk-aio.x86_64-latest.args
index 3894ed2502..ae82ba52bd 100644
--- a/tests/qemuxml2argvdata/disk-aio.x86_64-latest.args
+++ b/tests/qemuxml2argvdata/disk-aio.x86_64-latest.args
@@ -24,13 +24,20 @@ file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
 -no-acpi \
 -boot strict=on \
 -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 \
--drive file=/dev/HostVG/QEMUGuest1,format=qcow2,if=none,id=drive-ide0-0-0,\
-cache=none,aio=native \
--device ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1,\
+-blockdev '{"driver":"host_device","filename":"/dev/HostVG/QEMUGuest1",\
+"aio":"native","node-name":"libvirt-2-storage","cache":{"direct":true,\
+"no-flush":false},"read-only":false,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-2-format","read-only":false,\
+"cache":{"direct":true,"no-flush":false},"driver":"qcow2",\
+"file":"libvirt-2-storage"}' \
+-device ide-hd,bus=ide.0,unit=0,drive=libvirt-2-format,id=ide0-0-0,bootindex=1,\
 write-cache=on \
--drive file=/dev/HostVG/QEMUGuest2,format=raw,if=none,id=drive-ide0-1-0,\
-readonly=on,aio=threads \
--device ide-cd,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 \
+-blockdev '{"driver":"host_device","filename":"/dev/HostVG/QEMUGuest2",\
+"aio":"threads","node-name":"libvirt-1-storage","read-only":true,\
+"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-1-format","read-only":true,"driver":"raw",\
+"file":"libvirt-1-storage"}' \
+-device ide-cd,bus=ide.1,unit=0,drive=libvirt-1-format,id=ide0-1-0 \
 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x2 \
 -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,\
 resourcecontrol=deny \
diff --git a/tests/qemuxml2argvdata/disk-backing-chains-noindex.x86_64-latest.args b/tests/qemuxml2argvdata/disk-backing-chains-noindex.x86_64-latest.args
index afe078adcc..11d805f3d8 100644
--- a/tests/qemuxml2argvdata/disk-backing-chains-noindex.x86_64-latest.args
+++ b/tests/qemuxml2argvdata/disk-backing-chains-noindex.x86_64-latest.args
@@ -24,33 +24,138 @@ file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
 -no-acpi \
 -boot strict=on \
 -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 \
--drive 'file=gluster+unix:///Volume2/Image?socket=/path/to/sock,file.debug=4,\
-format=qcow2,if=none,id=drive-virtio-disk0' \
--device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x2,drive=drive-virtio-disk0,\
+-blockdev '{"driver":"file","filename":"/tmp/missing-backing-store.qcow",\
+"node-name":"libvirt-25-storage","read-only":true,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-25-format","read-only":true,"driver":"qcow2",\
+"file":"libvirt-25-storage"}' \
+-blockdev '{"driver":"gluster","volume":"Volume2","path":"Image",\
+"server":[{"type":"unix","path":"/path/to/sock"}],"debug":4,\
+"node-name":"libvirt-24-storage","read-only":false,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-24-format","read-only":false,"driver":"qcow2",\
+"file":"libvirt-24-storage","backing":"libvirt-25-format"}' \
+-device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x2,drive=libvirt-24-format,\
 id=virtio-disk0,bootindex=1 \
--drive file=nbd:unix:/var/run/nbdsock:exportname=bar,format=qcow2,if=none,\
-id=drive-virtio-disk1 \
--device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x3,drive=drive-virtio-disk1,\
+-blockdev '{"driver":"file","filename":"/tmp/Fedora-17-x86_64-Live-KDE.iso",\
+"node-name":"libvirt-23-storage","read-only":true,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-23-format","read-only":true,"driver":"raw",\
+"file":"libvirt-23-storage"}' \
+-blockdev '{"driver":"file","filename":"/tmp/image5.qcow",\
+"node-name":"libvirt-22-storage","read-only":true,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-22-format","read-only":true,"driver":"qcow2",\
+"file":"libvirt-22-storage","backing":"libvirt-23-format"}' \
+-blockdev '{"driver":"file","filename":"/tmp/image4.qcow",\
+"node-name":"libvirt-21-storage","read-only":true,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-21-format","read-only":true,"driver":"qcow2",\
+"file":"libvirt-21-storage","backing":"libvirt-22-format"}' \
+-blockdev '{"driver":"file","filename":"/tmp/image3.qcow",\
+"node-name":"libvirt-20-storage","read-only":true,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-20-format","read-only":true,"driver":"qcow2",\
+"file":"libvirt-20-storage","backing":"libvirt-21-format"}' \
+-blockdev '{"driver":"file","filename":"/tmp/image2",\
+"node-name":"libvirt-19-storage","read-only":true,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-19-format","read-only":true,"driver":"vmdk",\
+"file":"libvirt-19-storage","backing":"libvirt-20-format"}' \
+-blockdev '{"driver":"host_device","filename":"/dev/HostVG/QEMUGuest1",\
+"node-name":"libvirt-18-storage","read-only":true,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-18-format","read-only":true,"driver":"qcow2",\
+"file":"libvirt-18-storage","backing":"libvirt-19-format"}' \
+-blockdev '{"driver":"nbd","server":{"type":"unix","path":"/var/run/nbdsock"},\
+"export":"bar","node-name":"libvirt-17-storage","read-only":false,\
+"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-17-format","read-only":false,"driver":"qcow2",\
+"file":"libvirt-17-storage","backing":"libvirt-18-format"}' \
+-device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x3,drive=libvirt-17-format,\
 id=virtio-disk1 \
--drive file=gluster://example.org:6000/Volume1/Image,file.debug=4,format=raw,\
-if=none,id=drive-virtio-disk2 \
--device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=drive-virtio-disk2,\
+-blockdev '{"driver":"gluster","volume":"Volume1","path":"Image",\
+"server":[{"type":"inet","host":"example.org","port":"6000"}],"debug":4,\
+"node-name":"libvirt-16-storage","read-only":false,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-16-format","read-only":false,"driver":"raw",\
+"file":"libvirt-16-storage"}' \
+-device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=libvirt-16-format,\
 id=virtio-disk2 \
--object secret,id=virtio-disk3-secret0,\
+-blockdev '{"driver":"file","filename":"/tmp/image.qcow",\
+"node-name":"libvirt-15-storage","read-only":true,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-15-format","read-only":true,"driver":"qcow2",\
+"file":"libvirt-15-storage","backing":null}' \
+-object secret,id=libvirt-14-storage-secret0,\
 data=9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\
 keyid=masterKey0,iv=AAECAwQFBgcICQoLDA0ODw==,format=base64 \
--drive 'file=rbd:pool/image:id=myname:auth_supported=cephx\;none:\
-mon_host=mon1.example.org\:6321\;mon2.example.org\:6322\;mon3.example.org\:\
-6322,file.password-secret=virtio-disk3-secret0,format=qcow2,if=none,\
-id=drive-virtio-disk3' \
--device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x5,drive=drive-virtio-disk3,\
+-blockdev '{"driver":"rbd","pool":"pool","image":"image",\
+"server":[{"host":"mon1.example.org","port":"6321"},{"host":"mon2.example.org",\
+"port":"6322"},{"host":"mon3.example.org","port":"6322"}],"user":"myname",\
+"auth-client-required":["cephx","none"],\
+"key-secret":"libvirt-14-storage-secret0","node-name":"libvirt-14-storage",\
+"read-only":false,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-14-format","read-only":false,"driver":"qcow2",\
+"file":"libvirt-14-storage","backing":"libvirt-15-format"}' \
+-device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x5,drive=libvirt-14-format,\
 id=virtio-disk3 \
--drive file=/dev/HostVG/QEMUGuest11,format=qcow2,if=none,id=drive-virtio-disk4 \
--device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x6,drive=drive-virtio-disk4,\
+-blockdev '{"driver":"host_device","filename":"/dev/HostVG/QEMUGuest11",\
+"node-name":"libvirt-13-storage","read-only":false,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-13-format","read-only":false,"driver":"qcow2",\
+"file":"libvirt-13-storage"}' \
+-device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x6,drive=libvirt-13-format,\
 id=virtio-disk4 \
--drive file=/var/lib/libvirt/images/rhel7.1484071880,format=qcow2,if=none,\
-id=drive-virtio-disk5 \
--device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x7,drive=drive-virtio-disk5,\
+-blockdev '{"driver":"file","filename":"/var/lib/libvirt/images/rhel7.qcow2",\
+"node-name":"libvirt-12-storage","read-only":true,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-12-format","read-only":true,"driver":"qcow2",\
+"file":"libvirt-12-storage","backing":null}' \
+-blockdev '{"driver":"file",\
+"filename":"/var/lib/libvirt/images/rhel7.1483536402",\
+"node-name":"libvirt-11-storage","read-only":true,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-11-format","read-only":true,"driver":"qcow2",\
+"file":"libvirt-11-storage","backing":"libvirt-12-format"}' \
+-blockdev '{"driver":"file",\
+"filename":"/var/lib/libvirt/images/rhel7.1483545313",\
+"node-name":"libvirt-10-storage","read-only":true,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-10-format","read-only":true,"driver":"qcow2",\
+"file":"libvirt-10-storage","backing":"libvirt-11-format"}' \
+-blockdev '{"driver":"file",\
+"filename":"/var/lib/libvirt/images/rhel7.1483545901",\
+"node-name":"libvirt-9-storage","read-only":true,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-9-format","read-only":true,"driver":"qcow2",\
+"file":"libvirt-9-storage","backing":"libvirt-10-format"}' \
+-blockdev '{"driver":"file",\
+"filename":"/var/lib/libvirt/images/rhel7.1483546244",\
+"node-name":"libvirt-8-storage","read-only":true,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-8-format","read-only":true,"driver":"qcow2",\
+"file":"libvirt-8-storage","backing":"libvirt-9-format"}' \
+-blockdev '{"driver":"file",\
+"filename":"/var/lib/libvirt/images/rhel7.1483605920",\
+"node-name":"libvirt-7-storage","read-only":true,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-7-format","read-only":true,"driver":"qcow2",\
+"file":"libvirt-7-storage","backing":"libvirt-8-format"}' \
+-blockdev '{"driver":"file",\
+"filename":"/var/lib/libvirt/images/rhel7.1483605924",\
+"node-name":"libvirt-6-storage","read-only":true,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-6-format","read-only":true,"driver":"qcow2",\
+"file":"libvirt-6-storage","backing":"libvirt-7-format"}' \
+-blockdev '{"driver":"file",\
+"filename":"/var/lib/libvirt/images/rhel7.1483615252",\
+"node-name":"libvirt-5-storage","read-only":true,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-5-format","read-only":true,"driver":"qcow2",\
+"file":"libvirt-5-storage","backing":"libvirt-6-format"}' \
+-blockdev '{"driver":"file",\
+"filename":"/var/lib/libvirt/images/rhel7.1484071872",\
+"node-name":"libvirt-4-storage","read-only":true,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-4-format","read-only":true,"driver":"qcow2",\
+"file":"libvirt-4-storage","backing":"libvirt-5-format"}' \
+-blockdev '{"driver":"file",\
+"filename":"/var/lib/libvirt/images/rhel7.1484071876",\
+"node-name":"libvirt-3-storage","read-only":true,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-3-format","read-only":true,"driver":"qcow2",\
+"file":"libvirt-3-storage","backing":"libvirt-4-format"}' \
+-blockdev '{"driver":"file",\
+"filename":"/var/lib/libvirt/images/rhel7.1484071877",\
+"node-name":"libvirt-2-storage","read-only":true,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-2-format","read-only":true,"driver":"qcow2",\
+"file":"libvirt-2-storage","backing":"libvirt-3-format"}' \
+-blockdev '{"driver":"file",\
+"filename":"/var/lib/libvirt/images/rhel7.1484071880",\
+"node-name":"libvirt-1-storage","read-only":false,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"qcow2",\
+"file":"libvirt-1-storage","backing":"libvirt-2-format"}' \
+-device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x7,drive=libvirt-1-format,\
 id=virtio-disk5 \
 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x8 \
 -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,\
diff --git a/tests/qemuxml2argvdata/disk-cache.x86_64-latest.args b/tests/qemuxml2argvdata/disk-cache.x86_64-latest.args
index 9220e6bee9..95824b50a0 100644
--- a/tests/qemuxml2argvdata/disk-cache.x86_64-latest.args
+++ b/tests/qemuxml2argvdata/disk-cache.x86_64-latest.args
@@ -25,25 +25,45 @@ file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
 -boot strict=on \
 -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 \
 -device lsi,id=scsi0,bus=pci.0,addr=0x2 \
--drive file=/dev/HostVG/QEMUGuest1,format=qcow2,if=none,id=drive-ide0-0-0,\
-cache=writeback \
--device ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1,\
+-blockdev '{"driver":"host_device","filename":"/dev/HostVG/QEMUGuest1",\
+"node-name":"libvirt-5-storage","cache":{"direct":false,"no-flush":false},\
+"read-only":false,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-5-format","read-only":false,\
+"cache":{"direct":false,"no-flush":false},"driver":"qcow2",\
+"file":"libvirt-5-storage"}' \
+-device ide-hd,bus=ide.0,unit=0,drive=libvirt-5-format,id=ide0-0-0,bootindex=1,\
 write-cache=on \
--drive file=/dev/HostVG/QEMUGuest1,format=qcow2,if=none,id=drive-ide0-0-1,\
-cache=unsafe \
--device ide-hd,bus=ide.0,unit=1,drive=drive-ide0-0-1,id=ide0-0-1,\
+-blockdev '{"driver":"host_device","filename":"/dev/HostVG/QEMUGuest1",\
+"node-name":"libvirt-4-storage","cache":{"direct":false,"no-flush":true},\
+"read-only":false,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-4-format","read-only":false,\
+"cache":{"direct":false,"no-flush":true},"driver":"qcow2",\
+"file":"libvirt-4-storage"}' \
+-device ide-hd,bus=ide.0,unit=1,drive=libvirt-4-format,id=ide0-0-1,\
 write-cache=on \
--drive file=/dev/HostVG/QEMUGuest1,format=qcow2,if=none,id=drive-scsi0-0-0,\
-cache=none \
--device scsi-hd,bus=scsi0.0,scsi-id=0,drive=drive-scsi0-0-0,id=scsi0-0-0,\
+-blockdev '{"driver":"host_device","filename":"/dev/HostVG/QEMUGuest1",\
+"node-name":"libvirt-3-storage","cache":{"direct":true,"no-flush":false},\
+"read-only":false,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-3-format","read-only":false,\
+"cache":{"direct":true,"no-flush":false},"driver":"qcow2",\
+"file":"libvirt-3-storage"}' \
+-device scsi-hd,bus=scsi0.0,scsi-id=0,drive=libvirt-3-format,id=scsi0-0-0,\
 write-cache=on \
--drive file=/dev/HostVG/QEMUGuest1,format=qcow2,if=none,id=drive-virtio-disk0,\
-cache=writethrough \
--device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x3,drive=drive-virtio-disk0,\
+-blockdev '{"driver":"host_device","filename":"/dev/HostVG/QEMUGuest1",\
+"node-name":"libvirt-2-storage","cache":{"direct":false,"no-flush":false},\
+"read-only":false,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-2-format","read-only":false,\
+"cache":{"direct":false,"no-flush":false},"driver":"qcow2",\
+"file":"libvirt-2-storage"}' \
+-device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x3,drive=libvirt-2-format,\
 id=virtio-disk0,write-cache=off \
--drive file=/dev/HostVG/QEMUGuest1,format=qcow2,if=none,id=drive-usb-disk1,\
-cache=directsync \
--device usb-storage,bus=usb.0,port=1,drive=drive-usb-disk1,id=usb-disk1,\
+-blockdev '{"driver":"host_device","filename":"/dev/HostVG/QEMUGuest1",\
+"node-name":"libvirt-1-storage","cache":{"direct":true,"no-flush":false},\
+"read-only":false,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-1-format","read-only":false,\
+"cache":{"direct":true,"no-flush":false},"driver":"qcow2",\
+"file":"libvirt-1-storage"}' \
+-device usb-storage,bus=usb.0,port=1,drive=libvirt-1-format,id=usb-disk1,\
 removable=off,write-cache=off \
 -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,\
 resourcecontrol=deny \
diff --git a/tests/qemuxml2argvdata/disk-cdrom-network.x86_64-latest.args b/tests/qemuxml2argvdata/disk-cdrom-network.x86_64-latest.args
index 0ce8497840..493ab91188 100644
--- a/tests/qemuxml2argvdata/disk-cdrom-network.x86_64-latest.args
+++ b/tests/qemuxml2argvdata/disk-cdrom-network.x86_64-latest.args
@@ -23,18 +23,26 @@ file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
 -no-shutdown \
 -boot strict=on \
 -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 \
--drive file=ftp://host.name:21/url/path/file.iso,format=raw,if=none,\
-id=drive-ide0-0-0,readonly=on \
--device ide-cd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 \
--drive file=ftps://host.name:990/url/path/file.iso,format=raw,if=none,\
-id=drive-ide0-0-1,readonly=on \
--device ide-cd,bus=ide.0,unit=1,drive=drive-ide0-0-1,id=ide0-0-1 \
--drive file=https://host.name:443/url/path/file.iso,format=raw,if=none,\
-id=drive-ide0-1-0,readonly=on \
--device ide-cd,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 \
--drive file=tftp://host.name:69/url/path/file.iso,format=raw,if=none,\
-id=drive-ide0-1-1,readonly=on \
--device ide-cd,bus=ide.1,unit=1,drive=drive-ide0-1-1,id=ide0-1-1 \
+-blockdev '{"driver":"ftp","url":"ftp://host.name:21/url/path/file.iso",\
+"node-name":"libvirt-4-storage","read-only":true,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-4-format","read-only":true,"driver":"raw",\
+"file":"libvirt-4-storage"}' \
+-device ide-cd,bus=ide.0,unit=0,drive=libvirt-4-format,id=ide0-0-0,bootindex=1 \
+-blockdev '{"driver":"ftps","url":"ftps://host.name:990/url/path/file.iso",\
+"node-name":"libvirt-3-storage","read-only":true,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-3-format","read-only":true,"driver":"raw",\
+"file":"libvirt-3-storage"}' \
+-device ide-cd,bus=ide.0,unit=1,drive=libvirt-3-format,id=ide0-0-1 \
+-blockdev '{"driver":"https","url":"https://host.name:443/url/path/file.iso",\
+"node-name":"libvirt-2-storage","read-only":true,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-2-format","read-only":true,"driver":"raw",\
+"file":"libvirt-2-storage"}' \
+-device ide-cd,bus=ide.1,unit=0,drive=libvirt-2-format,id=ide0-1-0 \
+-blockdev '{"driver":"tftp","url":"tftp://host.name:69/url/path/file.iso",\
+"node-name":"libvirt-1-storage","read-only":true,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-1-format","read-only":true,"driver":"raw",\
+"file":"libvirt-1-storage"}' \
+-device ide-cd,bus=ide.1,unit=1,drive=libvirt-1-format,id=ide0-1-1 \
 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x2 \
 -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,\
 resourcecontrol=deny \
diff --git a/tests/qemuxml2argvdata/disk-cdrom-tray.x86_64-latest.args b/tests/qemuxml2argvdata/disk-cdrom-tray.x86_64-latest.args
index 79863e456d..8f6df4d5d4 100644
--- a/tests/qemuxml2argvdata/disk-cdrom-tray.x86_64-latest.args
+++ b/tests/qemuxml2argvdata/disk-cdrom-tray.x86_64-latest.args
@@ -24,15 +24,23 @@ file=/tmp/lib/domain--1-test/master-key.aes \
 -no-acpi \
 -boot menu=on,strict=on \
 -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 \
--drive file=/var/lib/libvirt/images/f14.img,format=qcow2,if=none,\
-id=drive-virtio-disk0 \
--device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,\
+-blockdev '{"driver":"file","filename":"/var/lib/libvirt/images/f14.img",\
+"node-name":"libvirt-3-storage","read-only":false,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-3-format","read-only":false,"driver":"qcow2",\
+"file":"libvirt-3-storage"}' \
+-device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=libvirt-3-format,\
 id=virtio-disk0,bootindex=2 \
--drive file=/var/lib/libvirt/Fedora-14-x86_64-Live-KDE.iso,format=raw,if=none,\
-id=drive-ide0-1-0,readonly=on \
--device ide-cd,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0,bootindex=1 \
--drive if=none,id=drive-ide0-1-1,readonly=on \
--device ide-cd,bus=ide.1,unit=1,drive=drive-ide0-1-1,id=ide0-1-1 \
+-blockdev '{"driver":"file",\
+"filename":"/var/lib/libvirt/Fedora-14-x86_64-Live-KDE.iso",\
+"node-name":"libvirt-2-storage","read-only":true,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-2-format","read-only":true,"driver":"raw",\
+"file":"libvirt-2-storage"}' \
+-device ide-cd,bus=ide.1,unit=0,drive=libvirt-2-format,id=ide0-1-0,bootindex=1 \
+-blockdev '{"driver":"file","filename":"/tmp/cdrom.img",\
+"node-name":"libvirt-1-storage","read-only":true,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-1-format","read-only":true,"driver":"raw",\
+"file":"libvirt-1-storage"}' \
+-device ide-cd,bus=ide.1,unit=1,drive=libvirt-1-format,id=ide0-1-1 \
 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x2 \
 -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,\
 resourcecontrol=deny \
diff --git a/tests/qemuxml2argvdata/disk-cdrom.x86_64-latest.args b/tests/qemuxml2argvdata/disk-cdrom.x86_64-latest.args
index 4c5a599820..fbdc53a022 100644
--- a/tests/qemuxml2argvdata/disk-cdrom.x86_64-latest.args
+++ b/tests/qemuxml2argvdata/disk-cdrom.x86_64-latest.args
@@ -24,12 +24,17 @@ file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
 -no-acpi \
 -boot strict=on \
 -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 \
--drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \
--device ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 \
--drive file=/root/boot.iso,format=raw,if=none,id=drive-ide0-1-0,readonly=on \
--device ide-cd,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 \
--drive if=none,id=drive-ide0-1-1,readonly=on \
--device ide-cd,bus=ide.1,unit=1,drive=drive-ide0-1-1,id=ide0-1-1 \
+-blockdev '{"driver":"host_device","filename":"/dev/HostVG/QEMUGuest1",\
+"node-name":"libvirt-3-storage","read-only":false,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-3-format","read-only":false,"driver":"raw",\
+"file":"libvirt-3-storage"}' \
+-device ide-hd,bus=ide.0,unit=0,drive=libvirt-3-format,id=ide0-0-0,bootindex=1 \
+-blockdev '{"driver":"file","filename":"/root/boot.iso",\
+"node-name":"libvirt-2-storage","read-only":true,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-2-format","read-only":true,"driver":"raw",\
+"file":"libvirt-2-storage"}' \
+-device ide-cd,bus=ide.1,unit=0,drive=libvirt-2-format,id=ide0-1-0 \
+-device ide-cd,bus=ide.1,unit=1,id=ide0-1-1 \
 -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,\
 resourcecontrol=deny \
 -msg timestamp=on
diff --git a/tests/qemuxml2argvdata/disk-copy_on_read.x86_64-latest.args b/tests/qemuxml2argvdata/disk-copy_on_read.x86_64-latest.args
index f2b5dbe050..36dccbbb17 100644
--- a/tests/qemuxml2argvdata/disk-copy_on_read.x86_64-latest.args
+++ b/tests/qemuxml2argvdata/disk-copy_on_read.x86_64-latest.args
@@ -25,13 +25,20 @@ file=/tmp/lib/domain--1-test/master-key.aes \
 -boot menu=on,strict=on \
 -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 \
 -device virtio-serial-pci,id=virtio-serial0,bus=pci.0,addr=0x6 \
--drive file=/var/lib/libvirt/images/f14.img,format=qcow2,if=none,\
-id=drive-virtio-disk0,copy-on-read=on \
--device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,\
+-blockdev '{"driver":"file","filename":"/var/lib/libvirt/images/f14.img",\
+"node-name":"libvirt-2-storage","read-only":false,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-2-format","read-only":false,"driver":"qcow2",\
+"file":"libvirt-2-storage"}' \
+-blockdev '{"driver":"copy-on-read","node-name":"libvirt-CoR-vda",\
+"file":"libvirt-2-format"}' \
+-device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=libvirt-CoR-vda,\
 id=virtio-disk0,bootindex=2 \
--drive file=/var/lib/libvirt/Fedora-14-x86_64-Live-KDE.iso,format=raw,if=none,\
-id=drive-ide0-1-0,readonly=on \
--device ide-cd,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0,bootindex=1 \
+-blockdev '{"driver":"file",\
+"filename":"/var/lib/libvirt/Fedora-14-x86_64-Live-KDE.iso",\
+"node-name":"libvirt-1-storage","read-only":true,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-1-format","read-only":true,"driver":"raw",\
+"file":"libvirt-1-storage"}' \
+-device ide-cd,bus=ide.1,unit=0,drive=libvirt-1-format,id=ide0-1-0,bootindex=1 \
 -netdev user,id=hostnet0 \
 -device virtio-net-pci,tx=bh,netdev=hostnet0,id=net0,mac=52:54:00:e5:48:58,\
 bus=pci.0,addr=0x2 \
diff --git a/tests/qemuxml2argvdata/disk-detect-zeroes.x86_64-latest.args b/tests/qemuxml2argvdata/disk-detect-zeroes.x86_64-latest.args
index 101c0f2e65..79d10d206a 100644
--- a/tests/qemuxml2argvdata/disk-detect-zeroes.x86_64-latest.args
+++ b/tests/qemuxml2argvdata/disk-detect-zeroes.x86_64-latest.args
@@ -24,13 +24,18 @@ file=/tmp/lib/domain--1-test/master-key.aes \
 -no-acpi \
 -boot menu=on,strict=on \
 -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 \
--drive file=/var/lib/libvirt/images/f14.img,format=qcow2,if=none,\
-id=drive-virtio-disk0,discard=unmap,detect-zeroes=unmap \
--device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,\
+-blockdev '{"driver":"file","filename":"/var/lib/libvirt/images/f14.img",\
+"node-name":"libvirt-2-storage","read-only":false,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-2-format","read-only":false,"discard":"unmap",\
+"detect-zeroes":"unmap","driver":"qcow2","file":"libvirt-2-storage"}' \
+-device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=libvirt-2-format,\
 id=virtio-disk0,bootindex=2 \
--drive file=/var/lib/libvirt/Fedora-14-x86_64-Live-KDE.iso,format=raw,if=none,\
-id=drive-ide0-1-0,readonly=on,discard=ignore,detect-zeroes=on \
--device ide-cd,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0,bootindex=1 \
+-blockdev '{"driver":"file",\
+"filename":"/var/lib/libvirt/Fedora-14-x86_64-Live-KDE.iso",\
+"node-name":"libvirt-1-storage","read-only":true,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-1-format","read-only":true,"discard":"ignore",\
+"detect-zeroes":"on","driver":"raw","file":"libvirt-1-storage"}' \
+-device ide-cd,bus=ide.1,unit=0,drive=libvirt-1-format,id=ide0-1-0,bootindex=1 \
 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x3 \
 -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,\
 resourcecontrol=deny \
diff --git a/tests/qemuxml2argvdata/disk-error-policy.x86_64-latest.args b/tests/qemuxml2argvdata/disk-error-policy.x86_64-latest.args
index e8fa9e2452..227f3fa036 100644
--- a/tests/qemuxml2argvdata/disk-error-policy.x86_64-latest.args
+++ b/tests/qemuxml2argvdata/disk-error-policy.x86_64-latest.args
@@ -24,17 +24,29 @@ file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
 -no-acpi \
 -boot strict=on \
 -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 \
--drive file=/dev/HostVG/QEMUGuest1,format=qcow2,if=none,id=drive-ide0-0-0,\
-cache=none \
--device ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1,\
+-blockdev '{"driver":"host_device","filename":"/dev/HostVG/QEMUGuest1",\
+"node-name":"libvirt-3-storage","cache":{"direct":true,"no-flush":false},\
+"read-only":false,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-3-format","read-only":false,\
+"cache":{"direct":true,"no-flush":false},"driver":"qcow2",\
+"file":"libvirt-3-storage"}' \
+-device ide-hd,bus=ide.0,unit=0,drive=libvirt-3-format,id=ide0-0-0,bootindex=1,\
 write-cache=on,werror=stop,rerror=stop \
--drive file=/dev/HostVG/QEMUGuest2,format=qcow2,if=none,id=drive-ide0-0-1,\
-cache=none \
--device ide-hd,bus=ide.0,unit=1,drive=drive-ide0-0-1,id=ide0-0-1,\
+-blockdev '{"driver":"host_device","filename":"/dev/HostVG/QEMUGuest2",\
+"node-name":"libvirt-2-storage","cache":{"direct":true,"no-flush":false},\
+"read-only":false,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-2-format","read-only":false,\
+"cache":{"direct":true,"no-flush":false},"driver":"qcow2",\
+"file":"libvirt-2-storage"}' \
+-device ide-hd,bus=ide.0,unit=1,drive=libvirt-2-format,id=ide0-0-1,\
 write-cache=on,werror=enospc \
--drive file=/dev/HostVG/QEMUGuest3,format=qcow2,if=none,id=drive-ide0-1-0,\
-cache=none \
--device ide-hd,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0,\
+-blockdev '{"driver":"host_device","filename":"/dev/HostVG/QEMUGuest3",\
+"node-name":"libvirt-1-storage","cache":{"direct":true,"no-flush":false},\
+"read-only":false,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-1-format","read-only":false,\
+"cache":{"direct":true,"no-flush":false},"driver":"qcow2",\
+"file":"libvirt-1-storage"}' \
+-device ide-hd,bus=ide.1,unit=0,drive=libvirt-1-format,id=ide0-1-0,\
 write-cache=on,werror=report,rerror=ignore \
 -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,\
 resourcecontrol=deny \
diff --git a/tests/qemuxml2argvdata/disk-network-gluster.x86_64-latest.args b/tests/qemuxml2argvdata/disk-network-gluster.x86_64-latest.args
index 9b99db8715..4e291acaea 100644
--- a/tests/qemuxml2argvdata/disk-network-gluster.x86_64-latest.args
+++ b/tests/qemuxml2argvdata/disk-network-gluster.x86_64-latest.args
@@ -24,20 +24,28 @@ file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
 -no-acpi \
 -boot strict=on \
 -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 \
--drive file=gluster://example.org:6000/Volume1/Image,file.debug=4,format=raw,\
-if=none,id=drive-virtio-disk0 \
--device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x2,drive=drive-virtio-disk0,\
+-blockdev '{"driver":"gluster","volume":"Volume1","path":"Image",\
+"server":[{"type":"inet","host":"example.org","port":"6000"}],"debug":4,\
+"node-name":"libvirt-3-storage","read-only":false,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-3-format","read-only":false,"driver":"raw",\
+"file":"libvirt-3-storage"}' \
+-device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x2,drive=libvirt-3-format,\
 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' \
--device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x3,drive=drive-virtio-disk1,\
+-blockdev '{"driver":"gluster","volume":"Volume2","path":"Image",\
+"server":[{"type":"unix","path":"/path/to/sock"}],"debug":4,\
+"node-name":"libvirt-2-storage","read-only":false,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-2-format","read-only":false,"driver":"raw",\
+"file":"libvirt-2-storage"}' \
+-device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x3,drive=libvirt-2-format,\
 id=virtio-disk1 \
--drive file.driver=gluster,file.volume=Volume3,file.path=Image.qcow2,\
-file.server.0.type=tcp,file.server.0.host=example.org,file.server.0.port=6000,\
-file.server.1.type=tcp,file.server.1.host=example.org,file.server.1.port=24007,\
-file.server.2.type=unix,file.server.2.socket=/path/to/sock,file.debug=4,\
-format=qcow2,if=none,id=drive-virtio-disk2 \
--device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=drive-virtio-disk2,\
+-blockdev '{"driver":"gluster","volume":"Volume3","path":"Image.qcow2",\
+"server":[{"type":"inet","host":"example.org","port":"6000"},{"type":"inet",\
+"host":"example.org","port":"24007"},{"type":"unix","path":"/path/to/sock"}],\
+"debug":4,"node-name":"libvirt-1-storage","read-only":false,\
+"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"qcow2",\
+"file":"libvirt-1-storage"}' \
+-device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=libvirt-1-format,\
 id=virtio-disk2 \
 -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,\
 resourcecontrol=deny \
diff --git a/tests/qemuxml2argvdata/disk-network-iscsi.x86_64-latest.args b/tests/qemuxml2argvdata/disk-network-iscsi.x86_64-latest.args
index be9ab18314..b8d2ab4f2e 100644
--- a/tests/qemuxml2argvdata/disk-network-iscsi.x86_64-latest.args
+++ b/tests/qemuxml2argvdata/disk-network-iscsi.x86_64-latest.args
@@ -25,39 +25,49 @@ file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
 -boot strict=on \
 -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 \
 -device virtio-scsi-pci,id=scsi0,bus=pci.0,addr=0x2 \
--drive file.driver=iscsi,file.portal=example.org:6000,\
-file.target=iqn.1992-01.com.example,file.lun=0,file.transport=tcp,format=raw,\
-if=none,id=drive-virtio-disk0 \
--device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x3,drive=drive-virtio-disk0,\
+-blockdev '{"driver":"iscsi","portal":"example.org:6000",\
+"target":"iqn.1992-01.com.example","lun":0,"transport":"tcp",\
+"node-name":"libvirt-5-storage","read-only":false,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-5-format","read-only":false,"driver":"raw",\
+"file":"libvirt-5-storage"}' \
+-device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x3,drive=libvirt-5-format,\
 id=virtio-disk0,bootindex=1 \
--drive file.driver=iscsi,file.portal=example.org:6000,\
-file.target=iqn.1992-01.com.example,file.lun=1,file.transport=tcp,format=raw,\
-if=none,id=drive-virtio-disk1 \
--device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=drive-virtio-disk1,\
+-blockdev '{"driver":"iscsi","portal":"example.org:6000",\
+"target":"iqn.1992-01.com.example","lun":1,"transport":"tcp",\
+"node-name":"libvirt-4-storage","read-only":false,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-4-format","read-only":false,"driver":"raw",\
+"file":"libvirt-4-storage"}' \
+-device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=libvirt-4-format,\
 id=virtio-disk1 \
--object secret,id=virtio-disk2-secret0,\
+-object secret,id=libvirt-3-storage-secret0,\
 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,\
-id=drive-virtio-disk2 \
--device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x5,drive=drive-virtio-disk2,\
+-blockdev '{"driver":"iscsi","portal":"example.org:6000",\
+"target":"iqn.1992-01.com.example:storage","lun":1,"transport":"tcp",\
+"user":"myname","password-secret":"libvirt-3-storage-secret0",\
+"node-name":"libvirt-3-storage","read-only":false,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-3-format","read-only":false,"driver":"raw",\
+"file":"libvirt-3-storage"}' \
+-device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x5,drive=libvirt-3-format,\
 id=virtio-disk2 \
--object secret,id=virtio-disk3-secret0,\
+-object secret,id=libvirt-2-storage-secret0,\
 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=2,file.transport=tcp,\
-file.user=myname,file.password-secret=virtio-disk3-secret0,format=raw,if=none,\
-id=drive-virtio-disk3 \
--device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x6,drive=drive-virtio-disk3,\
+-blockdev '{"driver":"iscsi","portal":"example.org:6000",\
+"target":"iqn.1992-01.com.example:storage","lun":2,"transport":"tcp",\
+"user":"myname","password-secret":"libvirt-2-storage-secret0",\
+"node-name":"libvirt-2-storage","read-only":false,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-2-format","read-only":false,"driver":"raw",\
+"file":"libvirt-2-storage"}' \
+-device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x6,drive=libvirt-2-format,\
 id=virtio-disk3 \
--drive file.driver=iscsi,file.portal=example.org:3260,\
-file.target=iqn.1992-01.com.example,file.lun=0,file.transport=tcp,format=raw,\
-if=none,id=drive-scsi0-0-0-0 \
+-blockdev '{"driver":"iscsi","portal":"example.org:3260",\
+"target":"iqn.1992-01.com.example","lun":0,"transport":"tcp",\
+"node-name":"libvirt-1-storage","read-only":false,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw",\
+"file":"libvirt-1-storage"}' \
 -device scsi-block,bus=scsi0.0,channel=0,scsi-id=0,lun=0,\
-drive=drive-scsi0-0-0-0,id=scsi0-0-0-0 \
+drive=libvirt-1-format,id=scsi0-0-0-0 \
 -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,\
 resourcecontrol=deny \
 -msg timestamp=on
diff --git a/tests/qemuxml2argvdata/disk-network-nbd.x86_64-latest.args b/tests/qemuxml2argvdata/disk-network-nbd.x86_64-latest.args
index 85452e715a..9b8a079228 100644
--- a/tests/qemuxml2argvdata/disk-network-nbd.x86_64-latest.args
+++ b/tests/qemuxml2argvdata/disk-network-nbd.x86_64-latest.args
@@ -24,22 +24,39 @@ file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
 -no-acpi \
 -boot strict=on \
 -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 \
--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,\
+-blockdev '{"driver":"nbd","server":{"type":"inet","host":"example.org",\
+"port":"6000"},"node-name":"libvirt-5-storage","read-only":false,\
+"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-5-format","read-only":false,"driver":"raw",\
+"file":"libvirt-5-storage"}' \
+-device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x2,drive=libvirt-5-format,\
 id=virtio-disk0,bootindex=1 \
--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,\
+-blockdev '{"driver":"nbd","server":{"type":"inet","host":"example.org",\
+"port":"6000"},"export":"bar","node-name":"libvirt-4-storage",\
+"read-only":false,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-4-format","read-only":false,"driver":"raw",\
+"file":"libvirt-4-storage"}' \
+-device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x3,drive=libvirt-4-format,\
 id=virtio-disk1 \
--drive 'file=nbd://[::1]:6000,format=raw,if=none,id=drive-virtio-disk2' \
--device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=drive-virtio-disk2,\
+-blockdev '{"driver":"nbd","server":{"type":"inet","host":"::1","port":"6000"},\
+"node-name":"libvirt-3-storage","read-only":false,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-3-format","read-only":false,"driver":"raw",\
+"file":"libvirt-3-storage"}' \
+-device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=libvirt-3-format,\
 id=virtio-disk2 \
--drive 'file=nbd://[::1]:6000/bar,format=raw,if=none,id=drive-virtio-disk3' \
--device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x5,drive=drive-virtio-disk3,\
+-blockdev '{"driver":"nbd","server":{"type":"inet","host":"::1","port":"6000"},\
+"export":"bar","node-name":"libvirt-2-storage","read-only":false,\
+"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-2-format","read-only":false,"driver":"raw",\
+"file":"libvirt-2-storage"}' \
+-device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x5,drive=libvirt-2-format,\
 id=virtio-disk3 \
--drive file=nbd:unix:/var/run/nbdsock:exportname=bar,format=raw,if=none,\
-id=drive-virtio-disk4 \
--device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x6,drive=drive-virtio-disk4,\
+-blockdev '{"driver":"nbd","server":{"type":"unix","path":"/var/run/nbdsock"},\
+"export":"bar","node-name":"libvirt-1-storage","read-only":false,\
+"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw",\
+"file":"libvirt-1-storage"}' \
+-device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x6,drive=libvirt-1-format,\
 id=virtio-disk4 \
 -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,\
 resourcecontrol=deny \
diff --git a/tests/qemuxml2argvdata/disk-network-rbd.x86_64-latest.args b/tests/qemuxml2argvdata/disk-network-rbd.x86_64-latest.args
index 0c5898cbd3..e941548132 100644
--- a/tests/qemuxml2argvdata/disk-network-rbd.x86_64-latest.args
+++ b/tests/qemuxml2argvdata/disk-network-rbd.x86_64-latest.args
@@ -24,37 +24,56 @@ file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
 -no-acpi \
 -boot strict=on \
 -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 \
--drive 'file=rbd:pool/image:auth_supported=none:mon_host=mon1.example.org\:\
-6321\;mon2.example.org\:6322\;mon3.example.org\:6322,format=raw,if=none,\
-id=drive-virtio-disk0' \
--device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x2,drive=drive-virtio-disk0,\
+-blockdev '{"driver":"rbd","pool":"pool","image":"image",\
+"server":[{"host":"mon1.example.org","port":"6321"},{"host":"mon2.example.org",\
+"port":"6322"},{"host":"mon3.example.org","port":"6322"}],\
+"node-name":"libvirt-6-storage","read-only":false,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-6-format","read-only":false,"driver":"raw",\
+"file":"libvirt-6-storage"}' \
+-device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x2,drive=libvirt-6-format,\
 id=virtio-disk0,bootindex=1 \
--drive file=rbd:pool/image at asdf:auth_supported=none,format=raw,if=none,\
-id=drive-virtio-disk1 \
--device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x3,drive=drive-virtio-disk1,\
+-blockdev '{"driver":"rbd","pool":"pool","image":"image","snapshot":"asdf",\
+"node-name":"libvirt-5-storage","read-only":false,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-5-format","read-only":false,"driver":"raw",\
+"file":"libvirt-5-storage"}' \
+-device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x3,drive=libvirt-5-format,\
 id=virtio-disk1 \
--drive 'file=rbd:pool/image at foo:auth_supported=none:mon_host=mon1.example.org\:\
-6321\;mon2.example.org\:6322\;mon3.example.org\:6322,format=raw,if=none,\
-id=drive-virtio-disk2' \
--device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=drive-virtio-disk2,\
+-blockdev '{"driver":"rbd","pool":"pool","image":"image","snapshot":"foo",\
+"server":[{"host":"mon1.example.org","port":"6321"},{"host":"mon2.example.org",\
+"port":"6322"},{"host":"mon3.example.org","port":"6322"}],\
+"node-name":"libvirt-4-storage","read-only":false,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-4-format","read-only":false,"driver":"raw",\
+"file":"libvirt-4-storage"}' \
+-device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=libvirt-4-format,\
 id=virtio-disk2 \
--drive file=rbd:pool/image at foo:auth_supported=none:conf=/blah/test.conf,\
-format=raw,if=none,id=drive-virtio-disk3 \
--device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x5,drive=drive-virtio-disk3,\
+-blockdev '{"driver":"rbd","pool":"pool","image":"image","snapshot":"foo",\
+"conf":"/blah/test.conf","node-name":"libvirt-3-storage","read-only":false,\
+"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-3-format","read-only":false,"driver":"raw",\
+"file":"libvirt-3-storage"}' \
+-device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x5,drive=libvirt-3-format,\
 id=virtio-disk3 \
--object secret,id=virtio-disk4-secret0,\
+-object secret,id=libvirt-2-storage-secret0,\
 data=9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\
 keyid=masterKey0,iv=AAECAwQFBgcICQoLDA0ODw==,format=base64 \
--drive 'file=rbd:pool/image:id=myname:auth_supported=cephx\;none:\
-mon_host=mon1.example.org\:6321\;mon2.example.org\:6322\;mon3.example.org\:\
-6322,file.password-secret=virtio-disk4-secret0,format=raw,if=none,\
-id=drive-virtio-disk4' \
--device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x6,drive=drive-virtio-disk4,\
+-blockdev '{"driver":"rbd","pool":"pool","image":"image",\
+"server":[{"host":"mon1.example.org","port":"6321"},{"host":"mon2.example.org",\
+"port":"6322"},{"host":"mon3.example.org","port":"6322"}],"user":"myname",\
+"auth-client-required":["cephx","none"],\
+"key-secret":"libvirt-2-storage-secret0","node-name":"libvirt-2-storage",\
+"read-only":false,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-2-format","read-only":false,"driver":"raw",\
+"file":"libvirt-2-storage"}' \
+-device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x6,drive=libvirt-2-format,\
 id=virtio-disk4 \
--drive 'file=rbd:pool/image:auth_supported=none:mon_host=[\:\:1]\:\
-6321\;example.org\:6789\;[ffff\:1234\:567\:abc\:\:0f]\:6322\;[2001\:db8\:\:\
-ff00\:42\:8329]\:6322,format=raw,if=none,id=drive-virtio-disk5' \
--device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x7,drive=drive-virtio-disk5,\
+-blockdev '{"driver":"rbd","pool":"pool","image":"image",\
+"server":[{"host":"::1","port":"6321"},{"host":"example.org","port":"6789"},\
+{"host":"ffff:1234:567:abc::0f","port":"6322"},\
+{"host":"2001:db8::ff00:42:8329","port":"6322"}],\
+"node-name":"libvirt-1-storage","read-only":false,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw",\
+"file":"libvirt-1-storage"}' \
+-device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x7,drive=libvirt-1-format,\
 id=virtio-disk5 \
 -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,\
 resourcecontrol=deny \
diff --git a/tests/qemuxml2argvdata/disk-network-sheepdog.x86_64-latest.args b/tests/qemuxml2argvdata/disk-network-sheepdog.x86_64-latest.args
index 544c673820..c6d9175be7 100644
--- a/tests/qemuxml2argvdata/disk-network-sheepdog.x86_64-latest.args
+++ b/tests/qemuxml2argvdata/disk-network-sheepdog.x86_64-latest.args
@@ -24,11 +24,17 @@ file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
 -no-acpi \
 -boot strict=on \
 -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 \
--drive file=/dev/HostVG/QEMU,,Guest,,,,1,format=raw,if=none,id=drive-ide0-0-0 \
--device ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 \
--drive file=sheepdog:example.org:6000:image,,with,,commas,format=raw,if=none,\
-id=drive-virtio-disk0 \
--device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x2,drive=drive-virtio-disk0,\
+-blockdev '{"driver":"host_device","filename":"/dev/HostVG/QEMU,Guest,,1",\
+"node-name":"libvirt-2-storage","read-only":false,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-2-format","read-only":false,"driver":"raw",\
+"file":"libvirt-2-storage"}' \
+-device ide-hd,bus=ide.0,unit=0,drive=libvirt-2-format,id=ide0-0-0,bootindex=1 \
+-blockdev '{"driver":"sheepdog","server":{"type":"inet","host":"example.org",\
+"port":"6000"},"vdi":"image,with,commas","node-name":"libvirt-1-storage",\
+"read-only":false,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw",\
+"file":"libvirt-1-storage"}' \
+-device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x2,drive=libvirt-1-format,\
 id=virtio-disk0 \
 -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,\
 resourcecontrol=deny \
diff --git a/tests/qemuxml2argvdata/disk-network-source-auth.x86_64-latest.args b/tests/qemuxml2argvdata/disk-network-source-auth.x86_64-latest.args
index 9f124ec75f..6483c7bd11 100644
--- a/tests/qemuxml2argvdata/disk-network-source-auth.x86_64-latest.args
+++ b/tests/qemuxml2argvdata/disk-network-source-auth.x86_64-latest.args
@@ -24,23 +24,29 @@ file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
 -no-acpi \
 -boot strict=on \
 -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 \
--object secret,id=virtio-disk0-secret0,\
+-object secret,id=libvirt-2-storage-secret0,\
 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-disk0-secret0,format=raw,if=none,\
-id=drive-virtio-disk0 \
--device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x2,drive=drive-virtio-disk0,\
+-blockdev '{"driver":"iscsi","portal":"example.org:6000",\
+"target":"iqn.1992-01.com.example:storage","lun":1,"transport":"tcp",\
+"user":"myname","password-secret":"libvirt-2-storage-secret0",\
+"node-name":"libvirt-2-storage","read-only":false,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-2-format","read-only":false,"driver":"raw",\
+"file":"libvirt-2-storage"}' \
+-device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x2,drive=libvirt-2-format,\
 id=virtio-disk0,bootindex=1 \
--object secret,id=virtio-disk1-secret0,\
+-object secret,id=libvirt-1-storage-secret0,\
 data=9eao5F8qtkGt+seB1HYivWIxbtwUu6MQtg1zpj/oDtUsPr1q8wBYM91uEHCn6j/1,\
 keyid=masterKey0,iv=AAECAwQFBgcICQoLDA0ODw==,format=base64 \
--drive 'file=rbd:pool/image:id=myname:auth_supported=cephx\;none:\
-mon_host=mon1.example.org\:6321\;mon2.example.org\:6322\;mon3.example.org\:\
-6322,file.password-secret=virtio-disk1-secret0,format=raw,if=none,\
-id=drive-virtio-disk1' \
--device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x3,drive=drive-virtio-disk1,\
+-blockdev '{"driver":"rbd","pool":"pool","image":"image",\
+"server":[{"host":"mon1.example.org","port":"6321"},{"host":"mon2.example.org",\
+"port":"6322"},{"host":"mon3.example.org","port":"6322"}],"user":"myname",\
+"auth-client-required":["cephx","none"],\
+"key-secret":"libvirt-1-storage-secret0","node-name":"libvirt-1-storage",\
+"read-only":false,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw",\
+"file":"libvirt-1-storage"}' \
+-device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x3,drive=libvirt-1-format,\
 id=virtio-disk1 \
 -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,\
 resourcecontrol=deny \
diff --git a/tests/qemuxml2argvdata/disk-network-tlsx509.x86_64-latest.args b/tests/qemuxml2argvdata/disk-network-tlsx509.x86_64-latest.args
index 48d70e1cd3..8d4786abb5 100644
--- a/tests/qemuxml2argvdata/disk-network-tlsx509.x86_64-latest.args
+++ b/tests/qemuxml2argvdata/disk-network-tlsx509.x86_64-latest.args
@@ -25,34 +25,47 @@ file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
 -no-acpi \
 -boot strict=on \
 -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 \
--object tls-creds-x509,id=objvirtio-disk0_tls0,dir=/etc/pki/libvirt-vxhs/dummy,\
-,path,endpoint=client,verify-peer=yes \
--drive file.driver=vxhs,file.tls-creds=objvirtio-disk0_tls0,\
-file.vdisk-id=eb90327c-8302-4725-9e1b-4e85ed4dc251,\
-file.server.host=192.168.0.1,file.server.port=9999,format=raw,if=none,\
-id=drive-virtio-disk0,cache=none \
--device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=drive-virtio-disk0,\
+-object tls-creds-x509,id=objlibvirt-4-storage_tls0,\
+dir=/etc/pki/libvirt-vxhs/dummy,,path,endpoint=client,verify-peer=yes \
+-blockdev '{"driver":"vxhs","tls-creds":"objlibvirt-4-storage_tls0",\
+"vdisk-id":"eb90327c-8302-4725-9e1b-4e85ed4dc251",\
+"server":{"host":"192.168.0.1","port":"9999"},"node-name":"libvirt-4-storage",\
+"cache":{"direct":true,"no-flush":false},"read-only":false,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-4-format","read-only":false,\
+"cache":{"direct":true,"no-flush":false},"driver":"raw",\
+"file":"libvirt-4-storage"}' \
+-device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x4,drive=libvirt-4-format,\
 id=virtio-disk0,bootindex=1,write-cache=on,\
 serial=eb90327c-8302-4725-9e1b-4e85ed4dc251 \
--object tls-creds-x509,id=objvirtio-disk1_tls0,dir=/etc/pki/libvirt-vxhs/dummy,\
-,path,endpoint=client,verify-peer=yes \
--drive file.driver=vxhs,file.tls-creds=objvirtio-disk1_tls0,\
-file.vdisk-id=eb90327c-8302-4725-9e1b-4e85ed4dc252,\
-file.server.host=192.168.0.2,file.server.port=9999,format=raw,if=none,\
-id=drive-virtio-disk1,cache=none \
--device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x5,drive=drive-virtio-disk1,\
+-object tls-creds-x509,id=objlibvirt-3-storage_tls0,\
+dir=/etc/pki/libvirt-vxhs/dummy,,path,endpoint=client,verify-peer=yes \
+-blockdev '{"driver":"vxhs","tls-creds":"objlibvirt-3-storage_tls0",\
+"vdisk-id":"eb90327c-8302-4725-9e1b-4e85ed4dc252",\
+"server":{"host":"192.168.0.2","port":"9999"},"node-name":"libvirt-3-storage",\
+"cache":{"direct":true,"no-flush":false},"read-only":false,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-3-format","read-only":false,\
+"cache":{"direct":true,"no-flush":false},"driver":"raw",\
+"file":"libvirt-3-storage"}' \
+-device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x5,drive=libvirt-3-format,\
 id=virtio-disk1,write-cache=on,serial=eb90327c-8302-4725-9e1b-4e85ed4dc252 \
--drive file.driver=vxhs,file.vdisk-id=eb90327c-8302-4725-9e1b-4e85ed4dc253,\
-file.server.host=192.168.0.3,file.server.port=9999,format=raw,if=none,\
-id=drive-virtio-disk2,cache=none \
--device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x6,drive=drive-virtio-disk2,\
+-blockdev '{"driver":"vxhs","vdisk-id":"eb90327c-8302-4725-9e1b-4e85ed4dc253",\
+"server":{"host":"192.168.0.3","port":"9999"},"node-name":"libvirt-2-storage",\
+"cache":{"direct":true,"no-flush":false},"read-only":false,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-2-format","read-only":false,\
+"cache":{"direct":true,"no-flush":false},"driver":"raw",\
+"file":"libvirt-2-storage"}' \
+-device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x6,drive=libvirt-2-format,\
 id=virtio-disk2,write-cache=on,serial=eb90327c-8302-4725-9e1b-4e85ed4dc252 \
--object tls-creds-x509,id=objvirtio-disk3_tls0,dir=/etc/pki/libvirt-nbd/dummy,,\
-path,endpoint=client,verify-peer=yes \
--drive file.driver=nbd,file.server.type=inet,file.server.host=example.com,\
-file.server.port=1234,file.tls-creds=objvirtio-disk3_tls0,format=raw,if=none,\
-id=drive-virtio-disk3,cache=none \
--device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x7,drive=drive-virtio-disk3,\
+-object tls-creds-x509,id=objlibvirt-1-storage_tls0,\
+dir=/etc/pki/libvirt-nbd/dummy,,path,endpoint=client,verify-peer=yes \
+-blockdev '{"driver":"nbd","server":{"type":"inet","host":"example.com",\
+"port":"1234"},"tls-creds":"objlibvirt-1-storage_tls0",\
+"node-name":"libvirt-1-storage","cache":{"direct":true,"no-flush":false},\
+"read-only":false,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-1-format","read-only":false,\
+"cache":{"direct":true,"no-flush":false},"driver":"raw",\
+"file":"libvirt-1-storage"}' \
+-device virtio-blk-pci,scsi=off,bus=pci.0,addr=0x7,drive=libvirt-1-format,\
 id=virtio-disk3,write-cache=on \
 -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,\
 resourcecontrol=deny \
diff --git a/tests/qemuxml2argvdata/disk-readonly-disk.x86_64-latest.args b/tests/qemuxml2argvdata/disk-readonly-disk.x86_64-latest.args
index 3fd8f5c849..435f930fa8 100644
--- a/tests/qemuxml2argvdata/disk-readonly-disk.x86_64-latest.args
+++ b/tests/qemuxml2argvdata/disk-readonly-disk.x86_64-latest.args
@@ -24,10 +24,16 @@ file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
 -no-acpi \
 -boot strict=on \
 -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 \
--drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0 \
--device ide-hd,bus=ide.0,unit=0,drive=drive-ide0-0-0,id=ide0-0-0,bootindex=1 \
--drive file=/dev/sr0,format=raw,if=none,id=drive-ide0-1-0,readonly=on \
--device ide-cd,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 \
+-blockdev '{"driver":"host_device","filename":"/dev/HostVG/QEMUGuest1",\
+"node-name":"libvirt-2-storage","read-only":false,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-2-format","read-only":false,"driver":"raw",\
+"file":"libvirt-2-storage"}' \
+-device ide-hd,bus=ide.0,unit=0,drive=libvirt-2-format,id=ide0-0-0,bootindex=1 \
+-blockdev '{"driver":"host_device","filename":"/dev/sr0",\
+"node-name":"libvirt-1-storage","read-only":true,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-1-format","read-only":true,"driver":"raw",\
+"file":"libvirt-1-storage"}' \
+-device ide-cd,bus=ide.1,unit=0,drive=libvirt-1-format,id=ide0-1-0 \
 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x2 \
 -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,\
 resourcecontrol=deny \
diff --git a/tests/qemuxml2argvdata/disk-shared.x86_64-latest.args b/tests/qemuxml2argvdata/disk-shared.x86_64-latest.args
index 15f8c6b3d7..8560f82854 100644
--- a/tests/qemuxml2argvdata/disk-shared.x86_64-latest.args
+++ b/tests/qemuxml2argvdata/disk-shared.x86_64-latest.args
@@ -24,13 +24,19 @@ file=/tmp/lib/domain--1-QEMUGuest1/master-key.aes \
 -no-acpi \
 -boot strict=on \
 -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 \
--drive file=/dev/HostVG/QEMUGuest1,format=raw,if=none,id=drive-ide0-0-0,\
-cache=none \
--device ide-hd,bus=ide.0,unit=0,share-rw=on,drive=drive-ide0-0-0,id=ide0-0-0,\
+-blockdev '{"driver":"host_device","filename":"/dev/HostVG/QEMUGuest1",\
+"node-name":"libvirt-2-storage","cache":{"direct":true,"no-flush":false},\
+"read-only":false,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-2-format","read-only":false,\
+"cache":{"direct":true,"no-flush":false},"driver":"raw",\
+"file":"libvirt-2-storage"}' \
+-device ide-hd,bus=ide.0,unit=0,share-rw=on,drive=libvirt-2-format,id=ide0-0-0,\
 bootindex=1,write-cache=on,serial=XYZXYZXYZYXXYZYZYXYZY \
--drive file=/dev/HostVG/QEMUGuest2,format=raw,if=none,id=drive-ide0-1-0,\
-readonly=on \
--device ide-cd,bus=ide.1,unit=0,drive=drive-ide0-1-0,id=ide0-1-0 \
+-blockdev '{"driver":"host_device","filename":"/dev/HostVG/QEMUGuest2",\
+"node-name":"libvirt-1-storage","read-only":true,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-1-format","read-only":true,"driver":"raw",\
+"file":"libvirt-1-storage"}' \
+-device ide-cd,bus=ide.1,unit=0,drive=libvirt-1-format,id=ide0-1-0 \
 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x2 \
 -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,\
 resourcecontrol=deny \
diff --git a/tests/qemuxml2argvdata/disk-virtio-scsi-reservations.x86_64-latest.args b/tests/qemuxml2argvdata/disk-virtio-scsi-reservations.x86_64-latest.args
index 902864539b..8ba2767c57 100644
--- a/tests/qemuxml2argvdata/disk-virtio-scsi-reservations.x86_64-latest.args
+++ b/tests/qemuxml2argvdata/disk-virtio-scsi-reservations.x86_64-latest.args
@@ -27,16 +27,22 @@ path=/tmp/lib/domain--1-QEMUGuest1/pr-helper0.sock \
 -boot strict=on \
 -device piix3-usb-uhci,id=usb,bus=pci.0,addr=0x1.0x2 \
 -device virtio-scsi-pci,id=scsi0,num_queues=8,bus=pci.0,addr=0x3 \
--drive file=/dev/HostVG/QEMUGuest1,file.pr-manager=pr-helper0,format=raw,\
-if=none,id=drive-scsi0-0-0-0 \
+-blockdev '{"driver":"host_device","filename":"/dev/HostVG/QEMUGuest1",\
+"pr-manager":"pr-helper0","node-name":"libvirt-2-storage","read-only":false,\
+"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-2-format","read-only":false,"driver":"raw",\
+"file":"libvirt-2-storage"}' \
 -device scsi-block,bus=scsi0.0,channel=0,scsi-id=0,lun=0,\
-drive=drive-scsi0-0-0-0,id=scsi0-0-0-0,bootindex=1 \
--object pr-manager-helper,id=pr-helper-scsi0-0-0-1,\
+drive=libvirt-2-format,id=scsi0-0-0-0,bootindex=1 \
+-object pr-manager-helper,id=pr-helper-libvirt-1-storage,\
 path=/path/to/qemu-pr-helper.sock \
--drive file=/dev/HostVG/QEMUGuest2,file.pr-manager=pr-helper-scsi0-0-0-1,\
-format=raw,if=none,id=drive-scsi0-0-0-1 \
+-blockdev '{"driver":"host_device","filename":"/dev/HostVG/QEMUGuest2",\
+"pr-manager":"pr-helper-libvirt-1-storage","node-name":"libvirt-1-storage",\
+"read-only":false,"discard":"unmap"}' \
+-blockdev '{"node-name":"libvirt-1-format","read-only":false,"driver":"raw",\
+"file":"libvirt-1-storage"}' \
 -device scsi-block,bus=scsi0.0,channel=0,scsi-id=0,lun=1,\
-drive=drive-scsi0-0-0-1,id=scsi0-0-0-1 \
+drive=libvirt-1-format,id=scsi0-0-0-1 \
 -device virtio-balloon-pci,id=balloon0,bus=pci.0,addr=0x4 \
 -sandbox on,obsolete=deny,elevateprivileges=deny,spawn=deny,\
 resourcecontrol=deny \
-- 
2.16.2




More information about the libvir-list mailing list