When parsing the <disk> element specification, if no <address>
is provided for the disk, then automatically assign one based on
the <target dev='sdXX'/> device name. This provides for backwards
compatability with existing applications using libvirt, while also
allowing new apps to have complete fine grained control.
* src/conf/domain_conf.h, src/conf/domain_conf.c,
src/libvirt_private.syms: Add virDomainDiskDefAssignAddress()
for assigning a controller/bus/unit address based on disk target
* src/qemu/qemu_conf.c: Call virDomainDiskDefAssignAddress() after
generating XML from ARGV
* tests/qemuxml2argvdata/*.xml: Add in drive address information
to all XML files
---
src/conf/domain_conf.c | 44 +++++++++++++++++++-
src/conf/domain_conf.h | 1 +
src/libvirt_private.syms | 1 +
src/qemu/qemu_conf.c | 4 ++
tests/qemuxml2argvdata/qemuxml2argv-boot-cdrom.xml | 1 +
.../qemuxml2argvdata/qemuxml2argv-boot-floppy.xml | 2 +
.../qemuxml2argvdata/qemuxml2argv-boot-network.xml | 1 +
tests/qemuxml2argvdata/qemuxml2argv-bootloader.xml | 1 +
.../qemuxml2argv-channel-guestfwd.xml | 1 +
.../qemuxml2argv-clock-localtime.xml | 1 +
tests/qemuxml2argvdata/qemuxml2argv-clock-utc.xml | 1 +
.../qemuxml2argv-console-compat-chardev.xml | 1 +
.../qemuxml2argv-console-compat.xml | 1 +
.../qemuxml2argv-disk-cdrom-empty.xml | 2 +
tests/qemuxml2argvdata/qemuxml2argv-disk-cdrom.xml | 2 +
.../qemuxml2argv-disk-drive-boot-cdrom.xml | 2 +
.../qemuxml2argv-disk-drive-boot-disk.xml | 2 +
.../qemuxml2argv-disk-drive-cache-v1-none.xml | 2 +
.../qemuxml2argv-disk-drive-cache-v1-wb.xml | 2 +
.../qemuxml2argv-disk-drive-cache-v1-wt.xml | 2 +
.../qemuxml2argv-disk-drive-cache-v2-none.xml | 2 +
.../qemuxml2argv-disk-drive-cache-v2-wb.xml | 2 +
.../qemuxml2argv-disk-drive-cache-v2-wt.xml | 2 +
.../qemuxml2argv-disk-drive-fat.xml | 1 +
.../qemuxml2argv-disk-drive-fmt-qcow.xml | 2 +
.../qemuxml2argv-disk-drive-shared.xml | 2 +
.../qemuxml2argvdata/qemuxml2argv-disk-floppy.xml | 3 +
tests/qemuxml2argvdata/qemuxml2argv-disk-many.xml | 4 ++
tests/qemuxml2argvdata/qemuxml2argv-disk-usb.xml | 1 +
.../qemuxml2argvdata/qemuxml2argv-disk-virtio.xml | 3 +
.../qemuxml2argvdata/qemuxml2argv-disk-xenvbd.xml | 2 +
.../qemuxml2argv-floppy-drive-fat.xml | 1 +
.../qemuxml2argv-graphics-sdl-fullscreen.xml | 1 +
.../qemuxml2argvdata/qemuxml2argv-graphics-sdl.xml | 1 +
.../qemuxml2argv-graphics-vnc-sasl.xml | 1 +
.../qemuxml2argv-graphics-vnc-tls.xml | 1 +
.../qemuxml2argvdata/qemuxml2argv-graphics-vnc.xml | 1 +
.../qemuxml2argv-hostdev-pci-address.xml | 1 +
.../qemuxml2argv-hostdev-usb-address.xml | 1 +
.../qemuxml2argv-hostdev-usb-product.xml | 1 +
tests/qemuxml2argvdata/qemuxml2argv-hugepages.xml | 1 +
.../qemuxml2argv-input-usbmouse.xml | 1 +
.../qemuxml2argv-input-usbtablet.xml | 1 +
tests/qemuxml2argvdata/qemuxml2argv-input-xen.xml | 1 +
.../qemuxml2argv-machine-aliases1.xml | 1 +
.../qemuxml2argv-machine-aliases2.xml | 1 +
tests/qemuxml2argvdata/qemuxml2argv-migrate.xml | 1 +
tests/qemuxml2argvdata/qemuxml2argv-minimal.xml | 1 +
tests/qemuxml2argvdata/qemuxml2argv-misc-acpi.xml | 1 +
.../qemuxml2argv-misc-no-reboot.xml | 1 +
tests/qemuxml2argvdata/qemuxml2argv-misc-uuid.xml | 1 +
.../qemuxml2argv-net-eth-ifname.xml | 1 +
.../qemuxml2argv-net-eth-names.xml | 1 +
tests/qemuxml2argvdata/qemuxml2argv-net-eth.xml | 1 +
tests/qemuxml2argvdata/qemuxml2argv-net-user.xml | 1 +
tests/qemuxml2argvdata/qemuxml2argv-net-virtio.xml | 1 +
.../qemuxml2argv-parallel-tcp-chardev.xml | 1 +
.../qemuxml2argvdata/qemuxml2argv-parallel-tcp.xml | 1 +
tests/qemuxml2argvdata/qemuxml2argv-restore-v1.xml | 1 +
tests/qemuxml2argvdata/qemuxml2argv-restore-v2.xml | 1 +
.../qemuxml2argv-serial-dev-chardev.xml | 1 +
tests/qemuxml2argvdata/qemuxml2argv-serial-dev.xml | 1 +
.../qemuxml2argv-serial-file-chardev.xml | 1 +
.../qemuxml2argvdata/qemuxml2argv-serial-file.xml | 1 +
.../qemuxml2argv-serial-many-chardev.xml | 1 +
.../qemuxml2argvdata/qemuxml2argv-serial-many.xml | 1 +
.../qemuxml2argv-serial-pty-chardev.xml | 1 +
tests/qemuxml2argvdata/qemuxml2argv-serial-pty.xml | 1 +
.../qemuxml2argv-serial-tcp-chardev.xml | 1 +
.../qemuxml2argv-serial-tcp-telnet-chardev.xml | 1 +
.../qemuxml2argv-serial-tcp-telnet.xml | 1 +
tests/qemuxml2argvdata/qemuxml2argv-serial-tcp.xml | 1 +
.../qemuxml2argv-serial-udp-chardev.xml | 1 +
tests/qemuxml2argvdata/qemuxml2argv-serial-udp.xml | 1 +
.../qemuxml2argv-serial-unix-chardev.xml | 1 +
.../qemuxml2argvdata/qemuxml2argv-serial-unix.xml | 1 +
.../qemuxml2argv-serial-vc-chardev.xml | 1 +
tests/qemuxml2argvdata/qemuxml2argv-serial-vc.xml | 1 +
tests/qemuxml2argvdata/qemuxml2argv-sound.xml | 1 +
tests/qemuxml2argvdata/qemuxml2argv-watchdog.xml | 1 +
tests/qemuxml2xmltest.c | 1 +
81 files changed, 147 insertions(+), 1 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 27d0613..662ff81 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -1025,7 +1025,7 @@ virDomainDeviceInfoParseXML(virConnectPtr conn,
break;
case VIR_DOMAIN_DEVICE_ADDRESS_TYPE_DRIVE:
- if (virDomainDeviceDriveAddressParseXML(conn, node, &info->addr.drive)
< 0)
+ if (virDomainDeviceDriveAddressParseXML(conn, address, &info->addr.drive)
< 0)
goto cleanup;
break;
@@ -1044,6 +1044,45 @@ cleanup:
}
+void
+virDomainDiskDefAssignAddress(virDomainDiskDefPtr def)
+{
+ int idx = virDiskNameToIndex(def->dst);
+
+ switch (def->bus) {
+ case VIR_DOMAIN_DISK_BUS_SCSI:
+ /* For SCSI we define the default mapping to be 7 units
+ * per bus, 1 bus per controller, many controllers */
+ def->info.type = VIR_DOMAIN_DEVICE_ADDRESS_TYPE_DRIVE;
+ def->info.addr.drive.controller = idx / 7;
+ def->info.addr.drive.bus = 0;
+ def->info.addr.drive.unit = idx % 7;
+ break;
+
+ case VIR_DOMAIN_DISK_BUS_IDE:
+ /* For IDE we define the default mapping to be 2 units
+ * per bus, 2 bus per controller, many controllers */
+ def->info.type = VIR_DOMAIN_DEVICE_ADDRESS_TYPE_DRIVE;
+ def->info.addr.drive.controller = idx / 4;
+ def->info.addr.drive.bus = (idx % 4) / 2;
+ def->info.addr.drive.unit = (idx % 2);
+ break;
+
+ case VIR_DOMAIN_DISK_BUS_FDC:
+ /* For FDC we define the default mapping to be 2 units
+ * per bus, 1 bus per controller, many controllers */
+ def->info.type = VIR_DOMAIN_DEVICE_ADDRESS_TYPE_DRIVE;
+ def->info.addr.drive.controller = idx / 2;
+ def->info.addr.drive.bus = 0;
+ def->info.addr.drive.unit = idx % 2;
+ break;
+
+ default:
+ /* Other disk bus's aren't controller based */
+ break;
+ }
+}
+
/* Parse the XML definition for a disk
* @param node XML nodeset to parse for disk definition
*/
@@ -1271,6 +1310,9 @@ virDomainDiskDefParseXML(virConnectPtr conn,
def->serial = serial;
serial = NULL;
+ if (def->info.type == VIR_DOMAIN_DEVICE_ADDRESS_TYPE_NONE)
+ virDomainDiskDefAssignAddress(def);
+
cleanup:
VIR_FREE(bus);
VIR_FREE(type);
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index 0f68864..a05835a 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -773,6 +773,7 @@ int virDomainDiskInsert(virDomainDefPtr def,
virDomainDiskDefPtr disk);
void virDomainDiskInsertPreAlloced(virDomainDefPtr def,
virDomainDiskDefPtr disk);
+void virDomainDiskDefAssignAddress(virDomainDiskDefPtr def);
int virDomainSaveXML(virConnectPtr conn,
const char *configDir,
diff --git a/src/libvirt_private.syms b/src/libvirt_private.syms
index 67ffe69..9a4f444 100644
--- a/src/libvirt_private.syms
+++ b/src/libvirt_private.syms
@@ -129,6 +129,7 @@ virDomainDiskDefFree;
virDomainDiskDeviceTypeToString;
virDomainDiskInsert;
virDomainDiskInsertPreAlloced;
+virDomainDiskDefAssignAddress;
virDomainFindByID;
virDomainFindByName;
virDomainFindByUUID;
diff --git a/src/qemu/qemu_conf.c b/src/qemu/qemu_conf.c
index 824055f..c575d63 100644
--- a/src/qemu/qemu_conf.c
+++ b/src/qemu/qemu_conf.c
@@ -3270,6 +3270,8 @@ qemuParseCommandLineDisk(virConnectPtr conn,
else
def->dst[2] = 'a' + idx;
+ virDomainDiskDefAssignAddress(def);
+
cleanup:
for (i = 0 ; i < nkeywords ; i++) {
VIR_FREE(keywords[i]);
@@ -3999,6 +4001,8 @@ virDomainDefPtr qemuParseCommandLine(virConnectPtr conn,
goto no_memory;
}
+ virDomainDiskDefAssignAddress(disk);
+
if (VIR_REALLOC_N(def->disks, def->ndisks+1) < 0) {
virDomainDiskDefFree(disk);
goto no_memory;
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-boot-cdrom.xml
b/tests/qemuxml2argvdata/qemuxml2argv-boot-cdrom.xml
index 5211d0c..6915145 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-boot-cdrom.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-boot-cdrom.xml
@@ -18,6 +18,7 @@
<source dev='/dev/cdrom'/>
<target dev='hdc' bus='ide'/>
<readonly/>
+ <address type='drive' controller='0' bus='1'
unit='0'/>
</disk>
</devices>
</domain>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-boot-floppy.xml
b/tests/qemuxml2argvdata/qemuxml2argv-boot-floppy.xml
index ad33b53..0b6b084 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-boot-floppy.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-boot-floppy.xml
@@ -17,10 +17,12 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<disk type='file' device='floppy'>
<source file='/tmp/firmware.img'/>
<target dev='fda' bus='fdc'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
</devices>
</domain>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-boot-network.xml
b/tests/qemuxml2argvdata/qemuxml2argv-boot-network.xml
index 8d510a9..4de216e 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-boot-network.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-boot-network.xml
@@ -17,6 +17,7 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
</devices>
</domain>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-bootloader.xml
b/tests/qemuxml2argvdata/qemuxml2argv-bootloader.xml
index e28709e..0501fd4 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-bootloader.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-bootloader.xml
@@ -18,6 +18,7 @@
<source dev='/dev/cdrom'/>
<target dev='hdc' bus='ide'/>
<readonly/>
+ <address type='drive' controller='0' bus='1'
unit='0'/>
</disk>
</devices>
</domain>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-channel-guestfwd.xml
b/tests/qemuxml2argvdata/qemuxml2argv-channel-guestfwd.xml
index 51a0c1e..aeba5be 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-channel-guestfwd.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-channel-guestfwd.xml
@@ -17,6 +17,7 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<channel type='pipe'>
<source path='/tmp/guestfwd'/>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-clock-localtime.xml
b/tests/qemuxml2argvdata/qemuxml2argv-clock-localtime.xml
index dc1ae32..1db0d02 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-clock-localtime.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-clock-localtime.xml
@@ -17,6 +17,7 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
</devices>
</domain>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-clock-utc.xml
b/tests/qemuxml2argvdata/qemuxml2argv-clock-utc.xml
index 26c9b25..9e9153f 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-clock-utc.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-clock-utc.xml
@@ -17,6 +17,7 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
</devices>
</domain>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-console-compat-chardev.xml
b/tests/qemuxml2argvdata/qemuxml2argv-console-compat-chardev.xml
index c16ae07..1f8f126 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-console-compat-chardev.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-console-compat-chardev.xml
@@ -17,6 +17,7 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<serial type='pty'>
<target port='0'/>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-console-compat.xml
b/tests/qemuxml2argvdata/qemuxml2argv-console-compat.xml
index c16ae07..1f8f126 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-console-compat.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-console-compat.xml
@@ -17,6 +17,7 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<serial type='pty'>
<target port='0'/>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-cdrom-empty.xml
b/tests/qemuxml2argvdata/qemuxml2argv-disk-cdrom-empty.xml
index d5341b3..ff315e1 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-disk-cdrom-empty.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-cdrom-empty.xml
@@ -17,10 +17,12 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<disk type='file' device='cdrom'>
<target dev='hdc' bus='ide'/>
<readonly/>
+ <address type='drive' controller='0' bus='1'
unit='0'/>
</disk>
</devices>
</domain>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-cdrom.xml
b/tests/qemuxml2argvdata/qemuxml2argv-disk-cdrom.xml
index 550136d..097d3dd 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-disk-cdrom.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-cdrom.xml
@@ -17,11 +17,13 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<disk type='file' device='cdrom'>
<source file='/root/boot.iso'/>
<target dev='hdc' bus='ide'/>
<readonly/>
+ <address type='drive' controller='0' bus='1'
unit='0'/>
</disk>
</devices>
</domain>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-boot-cdrom.xml
b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-boot-cdrom.xml
index fdbf2b8..743e996 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-boot-cdrom.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-boot-cdrom.xml
@@ -17,10 +17,12 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<disk type='block' device='cdrom'>
<source dev='/dev/HostVG/QEMUGuest2'/>
<target dev='hdc' bus='ide'/>
+ <address type='drive' controller='0' bus='1'
unit='0'/>
</disk>
</devices>
</domain>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-boot-disk.xml
b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-boot-disk.xml
index b8ff06a..c1d3f4a 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-boot-disk.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-boot-disk.xml
@@ -17,10 +17,12 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<disk type='block' device='cdrom'>
<source dev='/dev/HostVG/QEMUGuest2'/>
<target dev='hdc' bus='ide'/>
+ <address type='drive' controller='0' bus='1'
unit='0'/>
</disk>
</devices>
</domain>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v1-none.xml
b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v1-none.xml
index 4603ce5..706b6e2 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v1-none.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v1-none.xml
@@ -18,12 +18,14 @@
<driver name='qemu' type='qcow2' cache='none'/>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<disk type='block' device='cdrom'>
<driver name='qemu' type='raw'/>
<source dev='/dev/HostVG/QEMUGuest2'/>
<target dev='hdc' bus='ide'/>
<readonly/>
+ <address type='drive' controller='0' bus='1'
unit='0'/>
</disk>
</devices>
</domain>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v1-wb.xml
b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v1-wb.xml
index 97fc09e..4d3fb0c 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v1-wb.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v1-wb.xml
@@ -18,12 +18,14 @@
<driver name='qemu' type='qcow2' cache='writeback'/>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<disk type='block' device='cdrom'>
<driver name='qemu' type='raw'/>
<source dev='/dev/HostVG/QEMUGuest2'/>
<target dev='hdc' bus='ide'/>
<readonly/>
+ <address type='drive' controller='0' bus='1'
unit='0'/>
</disk>
</devices>
</domain>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v1-wt.xml
b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v1-wt.xml
index d26005f..b81f1a4 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v1-wt.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v1-wt.xml
@@ -18,12 +18,14 @@
<driver name='qemu' type='qcow2'
cache='writethrough'/>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<disk type='block' device='cdrom'>
<driver name='qemu' type='raw'/>
<source dev='/dev/HostVG/QEMUGuest2'/>
<target dev='hdc' bus='ide'/>
<readonly/>
+ <address type='drive' controller='0' bus='1'
unit='0'/>
</disk>
</devices>
</domain>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v2-none.xml
b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v2-none.xml
index 4603ce5..706b6e2 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v2-none.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v2-none.xml
@@ -18,12 +18,14 @@
<driver name='qemu' type='qcow2' cache='none'/>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<disk type='block' device='cdrom'>
<driver name='qemu' type='raw'/>
<source dev='/dev/HostVG/QEMUGuest2'/>
<target dev='hdc' bus='ide'/>
<readonly/>
+ <address type='drive' controller='0' bus='1'
unit='0'/>
</disk>
</devices>
</domain>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v2-wb.xml
b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v2-wb.xml
index 97fc09e..4d3fb0c 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v2-wb.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v2-wb.xml
@@ -18,12 +18,14 @@
<driver name='qemu' type='qcow2' cache='writeback'/>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<disk type='block' device='cdrom'>
<driver name='qemu' type='raw'/>
<source dev='/dev/HostVG/QEMUGuest2'/>
<target dev='hdc' bus='ide'/>
<readonly/>
+ <address type='drive' controller='0' bus='1'
unit='0'/>
</disk>
</devices>
</domain>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v2-wt.xml
b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v2-wt.xml
index d26005f..b81f1a4 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v2-wt.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-cache-v2-wt.xml
@@ -18,12 +18,14 @@
<driver name='qemu' type='qcow2'
cache='writethrough'/>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<disk type='block' device='cdrom'>
<driver name='qemu' type='raw'/>
<source dev='/dev/HostVG/QEMUGuest2'/>
<target dev='hdc' bus='ide'/>
<readonly/>
+ <address type='drive' controller='0' bus='1'
unit='0'/>
</disk>
</devices>
</domain>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-fat.xml
b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-fat.xml
index 818ca93..0a13d19 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-fat.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-fat.xml
@@ -19,6 +19,7 @@
<source dir='/var/somefiles'/>
<target dev='hda' bus='ide'/>
<readonly/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
</devices>
</domain>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-fmt-qcow.xml
b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-fmt-qcow.xml
index 2537da6..5c1d456 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-fmt-qcow.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-fmt-qcow.xml
@@ -18,12 +18,14 @@
<driver name='qemu' type='qcow2'/>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<disk type='block' device='cdrom'>
<driver name='qemu' type='raw'/>
<source dev='/dev/HostVG/QEMUGuest2'/>
<target dev='hdc' bus='ide'/>
<readonly/>
+ <address type='drive' controller='0' bus='1'
unit='0'/>
</disk>
</devices>
</domain>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-shared.xml
b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-shared.xml
index c4e4734..774decd 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-shared.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-drive-shared.xml
@@ -20,12 +20,14 @@
<target dev='hda' bus='ide'/>
<shareable/>
<serial>XYZXYZXYZYXXYZYZYXYZY</serial>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<disk type='block' device='cdrom'>
<driver name='qemu' type='raw'/>
<source dev='/dev/HostVG/QEMUGuest2'/>
<target dev='hdc' bus='ide'/>
<readonly/>
+ <address type='drive' controller='0' bus='1'
unit='0'/>
</disk>
</devices>
</domain>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-floppy.xml
b/tests/qemuxml2argvdata/qemuxml2argv-disk-floppy.xml
index 9debdf4..37d178d 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-disk-floppy.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-floppy.xml
@@ -17,14 +17,17 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<disk type='block' device='floppy'>
<source dev='/dev/fd0'/>
<target dev='fda' bus='fdc'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<disk type='file' device='floppy'>
<source file='/tmp/firmware.img'/>
<target dev='fdb' bus='fdc'/>
+ <address type='drive' controller='0' bus='0'
unit='1'/>
</disk>
</devices>
</domain>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-many.xml
b/tests/qemuxml2argvdata/qemuxml2argv-disk-many.xml
index 4abe883..6f9b705 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-disk-many.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-many.xml
@@ -17,18 +17,22 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest2'/>
<target dev='hdb' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='1'/>
</disk>
<disk type='file' device='disk'>
<source file='/tmp/data.img'/>
<target dev='hdc' bus='ide'/>
+ <address type='drive' controller='0' bus='1'
unit='0'/>
</disk>
<disk type='file' device='disk'>
<source file='/tmp/logs.img'/>
<target dev='hdd' bus='ide'/>
+ <address type='drive' controller='0' bus='1'
unit='1'/>
</disk>
</devices>
</domain>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-usb.xml
b/tests/qemuxml2argvdata/qemuxml2argv-disk-usb.xml
index d59e1c0..3b86a11 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-disk-usb.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-usb.xml
@@ -17,6 +17,7 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<disk type='file' device='disk'>
<source file='/tmp/usbdisk.img'/>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-virtio.xml
b/tests/qemuxml2argvdata/qemuxml2argv-disk-virtio.xml
index bda4455..e506d9f 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-disk-virtio.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-virtio.xml
@@ -17,10 +17,13 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<disk type='block' device='cdrom'>
<source dev='/dev/HostVG/QEMUGuest2'/>
<target dev='hdc' bus='ide'/>
+ <readonly/>
+ <address type='drive' controller='0' bus='1'
unit='0'/>
</disk>
<disk type='file' device='disk'>
<source file='/tmp/data.img'/>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-disk-xenvbd.xml
b/tests/qemuxml2argvdata/qemuxml2argv-disk-xenvbd.xml
index c42404a..17cc408 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-disk-xenvbd.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-disk-xenvbd.xml
@@ -17,11 +17,13 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<disk type='block' device='cdrom'>
<source dev='/dev/HostVG/QEMUGuest2'/>
<target dev='hdc' bus='ide'/>
<readonly/>
+ <address type='drive' controller='0' bus='1'
unit='0'/>
</disk>
<disk type='file' device='disk'>
<source file='/tmp/data.img'/>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-floppy-drive-fat.xml
b/tests/qemuxml2argvdata/qemuxml2argv-floppy-drive-fat.xml
index 9e32b68..7bc09fa 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-floppy-drive-fat.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-floppy-drive-fat.xml
@@ -19,6 +19,7 @@
<source dir='/var/somefiles'/>
<target dev='fda' bus='fdc'/>
<readonly/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
</devices>
</domain>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-graphics-sdl-fullscreen.xml
b/tests/qemuxml2argvdata/qemuxml2argv-graphics-sdl-fullscreen.xml
index f3fc588..8508be5 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-graphics-sdl-fullscreen.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-graphics-sdl-fullscreen.xml
@@ -17,6 +17,7 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<input type='mouse' bus='ps2'/>
<graphics type='sdl' display=':0.1'
xauth='/root/.Xauthority' fullscreen='yes'/>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-graphics-sdl.xml
b/tests/qemuxml2argvdata/qemuxml2argv-graphics-sdl.xml
index 431c3c9..c83587b 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-graphics-sdl.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-graphics-sdl.xml
@@ -17,6 +17,7 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<input type='mouse' bus='ps2'/>
<graphics type='sdl' display=':0.1'
xauth='/root/.Xauthority'/>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-sasl.xml
b/tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-sasl.xml
index b6f99d3..15b561f 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-sasl.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-sasl.xml
@@ -17,6 +17,7 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<input type='mouse' bus='ps2'/>
<graphics type='vnc' port='5903' autoport='no'
listen='127.0.0.1'/>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-tls.xml
b/tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-tls.xml
index b6f99d3..15b561f 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-tls.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc-tls.xml
@@ -17,6 +17,7 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<input type='mouse' bus='ps2'/>
<graphics type='vnc' port='5903' autoport='no'
listen='127.0.0.1'/>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc.xml
b/tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc.xml
index b6f99d3..15b561f 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-graphics-vnc.xml
@@ -17,6 +17,7 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<input type='mouse' bus='ps2'/>
<graphics type='vnc' port='5903' autoport='no'
listen='127.0.0.1'/>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-hostdev-pci-address.xml
b/tests/qemuxml2argvdata/qemuxml2argv-hostdev-pci-address.xml
index ac5ad47..7c7e548 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-hostdev-pci-address.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-hostdev-pci-address.xml
@@ -17,6 +17,7 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest2'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<hostdev mode='subsystem' type='pci' managed='yes'>
<source>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-hostdev-usb-address.xml
b/tests/qemuxml2argvdata/qemuxml2argv-hostdev-usb-address.xml
index 61bb2a2..08d78e6 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-hostdev-usb-address.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-hostdev-usb-address.xml
@@ -17,6 +17,7 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<hostdev mode='subsystem' type='usb' managed='no'>
<source>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-hostdev-usb-product.xml
b/tests/qemuxml2argvdata/qemuxml2argv-hostdev-usb-product.xml
index 6cb1ba1..85a822b 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-hostdev-usb-product.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-hostdev-usb-product.xml
@@ -17,6 +17,7 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<hostdev mode='subsystem' type='usb' managed='no'>
<source>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-hugepages.xml
b/tests/qemuxml2argvdata/qemuxml2argv-hugepages.xml
index e25286f..92f2c47 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-hugepages.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-hugepages.xml
@@ -20,6 +20,7 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
</devices>
</domain>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-input-usbmouse.xml
b/tests/qemuxml2argvdata/qemuxml2argv-input-usbmouse.xml
index 573015b..d036eb4 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-input-usbmouse.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-input-usbmouse.xml
@@ -17,6 +17,7 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<input type='mouse' bus='usb'/>
</devices>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-input-usbtablet.xml
b/tests/qemuxml2argvdata/qemuxml2argv-input-usbtablet.xml
index ea5769a..82fd363 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-input-usbtablet.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-input-usbtablet.xml
@@ -17,6 +17,7 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<input type='tablet' bus='usb'/>
</devices>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-input-xen.xml
b/tests/qemuxml2argvdata/qemuxml2argv-input-xen.xml
index fea7f8e..9976a56 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-input-xen.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-input-xen.xml
@@ -17,6 +17,7 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<input type='mouse' bus='xen'/>
<graphics type='vnc' port='5903' autoport='no'
listen='127.0.0.1'/>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-machine-aliases1.xml
b/tests/qemuxml2argvdata/qemuxml2argv-machine-aliases1.xml
index 039abfd..eca3a6f 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-machine-aliases1.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-machine-aliases1.xml
@@ -17,6 +17,7 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
</devices>
</domain>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-machine-aliases2.xml
b/tests/qemuxml2argvdata/qemuxml2argv-machine-aliases2.xml
index a2c6254..b50e409 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-machine-aliases2.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-machine-aliases2.xml
@@ -17,6 +17,7 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
</devices>
</domain>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-migrate.xml
b/tests/qemuxml2argvdata/qemuxml2argv-migrate.xml
index 26c9b25..9e9153f 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-migrate.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-migrate.xml
@@ -17,6 +17,7 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
</devices>
</domain>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-minimal.xml
b/tests/qemuxml2argvdata/qemuxml2argv-minimal.xml
index 566a4ad..78b578b 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-minimal.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-minimal.xml
@@ -17,6 +17,7 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
</devices>
</domain>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-misc-acpi.xml
b/tests/qemuxml2argvdata/qemuxml2argv-misc-acpi.xml
index 1b37bdc..fe0a00e 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-misc-acpi.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-misc-acpi.xml
@@ -20,6 +20,7 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
</devices>
</domain>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-misc-no-reboot.xml
b/tests/qemuxml2argvdata/qemuxml2argv-misc-no-reboot.xml
index dc6193d..2c53078 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-misc-no-reboot.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-misc-no-reboot.xml
@@ -17,6 +17,7 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
</devices>
</domain>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-misc-uuid.xml
b/tests/qemuxml2argvdata/qemuxml2argv-misc-uuid.xml
index 1b37bdc..fe0a00e 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-misc-uuid.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-misc-uuid.xml
@@ -20,6 +20,7 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
</devices>
</domain>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-net-eth-ifname.xml
b/tests/qemuxml2argvdata/qemuxml2argv-net-eth-ifname.xml
index 9ca4295..08aaa35 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-net-eth-ifname.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-net-eth-ifname.xml
@@ -17,6 +17,7 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<interface type='ethernet'>
<mac address='00:11:22:33:44:55'/>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-net-eth-names.xml
b/tests/qemuxml2argvdata/qemuxml2argv-net-eth-names.xml
index 8aae269..c52d55b 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-net-eth-names.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-net-eth-names.xml
@@ -17,6 +17,7 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<interface type='ethernet'>
<mac address='00:11:22:33:44:55'/>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-net-eth.xml
b/tests/qemuxml2argvdata/qemuxml2argv-net-eth.xml
index 5856c3d..9aba26e 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-net-eth.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-net-eth.xml
@@ -17,6 +17,7 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<interface type='ethernet'>
<mac address='00:11:22:33:44:55'/>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-net-user.xml
b/tests/qemuxml2argvdata/qemuxml2argv-net-user.xml
index 630673a..3abda1c 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-net-user.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-net-user.xml
@@ -17,6 +17,7 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<interface type='user'>
<mac address='00:11:22:33:44:55'/>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-net-virtio.xml
b/tests/qemuxml2argvdata/qemuxml2argv-net-virtio.xml
index 5d34bd4..4eac686 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-net-virtio.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-net-virtio.xml
@@ -17,6 +17,7 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<interface type='user'>
<mac address='00:11:22:33:44:55'/>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-parallel-tcp-chardev.xml
b/tests/qemuxml2argvdata/qemuxml2argv-parallel-tcp-chardev.xml
index 08176f1..ab675b6 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-parallel-tcp-chardev.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-parallel-tcp-chardev.xml
@@ -17,6 +17,7 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<parallel type='tcp'>
<source mode='bind' host='127.0.0.1'
service='9999'/>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-parallel-tcp.xml
b/tests/qemuxml2argvdata/qemuxml2argv-parallel-tcp.xml
index 08176f1..ab675b6 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-parallel-tcp.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-parallel-tcp.xml
@@ -17,6 +17,7 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<parallel type='tcp'>
<source mode='bind' host='127.0.0.1'
service='9999'/>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-restore-v1.xml
b/tests/qemuxml2argvdata/qemuxml2argv-restore-v1.xml
index 26c9b25..9e9153f 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-restore-v1.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-restore-v1.xml
@@ -17,6 +17,7 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
</devices>
</domain>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-restore-v2.xml
b/tests/qemuxml2argvdata/qemuxml2argv-restore-v2.xml
index 26c9b25..9e9153f 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-restore-v2.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-restore-v2.xml
@@ -17,6 +17,7 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
</devices>
</domain>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-serial-dev-chardev.xml
b/tests/qemuxml2argvdata/qemuxml2argv-serial-dev-chardev.xml
index 2b8ef5a..06c40e8 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-serial-dev-chardev.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-serial-dev-chardev.xml
@@ -17,6 +17,7 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<serial type='dev'>
<source path='/dev/ttyS2'/>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-serial-dev.xml
b/tests/qemuxml2argvdata/qemuxml2argv-serial-dev.xml
index 2b8ef5a..06c40e8 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-serial-dev.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-serial-dev.xml
@@ -17,6 +17,7 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<serial type='dev'>
<source path='/dev/ttyS2'/>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-serial-file-chardev.xml
b/tests/qemuxml2argvdata/qemuxml2argv-serial-file-chardev.xml
index 3726816..7c2cc03 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-serial-file-chardev.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-serial-file-chardev.xml
@@ -17,6 +17,7 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<serial type='file'>
<source path='/tmp/serial.log'/>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-serial-file.xml
b/tests/qemuxml2argvdata/qemuxml2argv-serial-file.xml
index 3726816..7c2cc03 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-serial-file.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-serial-file.xml
@@ -17,6 +17,7 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<serial type='file'>
<source path='/tmp/serial.log'/>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-serial-many-chardev.xml
b/tests/qemuxml2argvdata/qemuxml2argv-serial-many-chardev.xml
index 444e85b..4021129 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-serial-many-chardev.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-serial-many-chardev.xml
@@ -17,6 +17,7 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<serial type='pty'>
<target port='0'/>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-serial-many.xml
b/tests/qemuxml2argvdata/qemuxml2argv-serial-many.xml
index 444e85b..4021129 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-serial-many.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-serial-many.xml
@@ -17,6 +17,7 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<serial type='pty'>
<target port='0'/>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-serial-pty-chardev.xml
b/tests/qemuxml2argvdata/qemuxml2argv-serial-pty-chardev.xml
index c16ae07..1f8f126 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-serial-pty-chardev.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-serial-pty-chardev.xml
@@ -17,6 +17,7 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<serial type='pty'>
<target port='0'/>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-serial-pty.xml
b/tests/qemuxml2argvdata/qemuxml2argv-serial-pty.xml
index c16ae07..1f8f126 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-serial-pty.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-serial-pty.xml
@@ -17,6 +17,7 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<serial type='pty'>
<target port='0'/>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-chardev.xml
b/tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-chardev.xml
index 3bcf62d..5d14515 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-chardev.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-chardev.xml
@@ -17,6 +17,7 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<serial type='tcp'>
<source mode='connect' host='127.0.0.1'
service='9999'/>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-telnet-chardev.xml
b/tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-telnet-chardev.xml
index bea4306..1f940db 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-telnet-chardev.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-telnet-chardev.xml
@@ -17,6 +17,7 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<serial type='tcp'>
<source mode='bind' host='127.0.0.1'
service='9999'/>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-telnet.xml
b/tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-telnet.xml
index bea4306..1f940db 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-telnet.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-serial-tcp-telnet.xml
@@ -17,6 +17,7 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<serial type='tcp'>
<source mode='bind' host='127.0.0.1'
service='9999'/>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-serial-tcp.xml
b/tests/qemuxml2argvdata/qemuxml2argv-serial-tcp.xml
index 3bcf62d..5d14515 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-serial-tcp.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-serial-tcp.xml
@@ -17,6 +17,7 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<serial type='tcp'>
<source mode='connect' host='127.0.0.1'
service='9999'/>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-serial-udp-chardev.xml
b/tests/qemuxml2argvdata/qemuxml2argv-serial-udp-chardev.xml
index 115166d..addf093 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-serial-udp-chardev.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-serial-udp-chardev.xml
@@ -17,6 +17,7 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<serial type='udp'>
<source mode='bind' host='127.0.0.1'
service='9999'/>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-serial-udp.xml
b/tests/qemuxml2argvdata/qemuxml2argv-serial-udp.xml
index 115166d..addf093 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-serial-udp.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-serial-udp.xml
@@ -17,6 +17,7 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<serial type='udp'>
<source mode='bind' host='127.0.0.1'
service='9999'/>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-serial-unix-chardev.xml
b/tests/qemuxml2argvdata/qemuxml2argv-serial-unix-chardev.xml
index 4236b4c..81884a1 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-serial-unix-chardev.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-serial-unix-chardev.xml
@@ -17,6 +17,7 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<serial type='unix'>
<source mode='connect' path='/tmp/serial.sock'/>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-serial-unix.xml
b/tests/qemuxml2argvdata/qemuxml2argv-serial-unix.xml
index 4236b4c..81884a1 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-serial-unix.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-serial-unix.xml
@@ -17,6 +17,7 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<serial type='unix'>
<source mode='connect' path='/tmp/serial.sock'/>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-serial-vc-chardev.xml
b/tests/qemuxml2argvdata/qemuxml2argv-serial-vc-chardev.xml
index 1e5de8f..0a1980c 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-serial-vc-chardev.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-serial-vc-chardev.xml
@@ -17,6 +17,7 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<serial type='vc'>
<target port='0'/>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-serial-vc.xml
b/tests/qemuxml2argvdata/qemuxml2argv-serial-vc.xml
index 1e5de8f..0a1980c 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-serial-vc.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-serial-vc.xml
@@ -17,6 +17,7 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<serial type='vc'>
<target port='0'/>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-sound.xml
b/tests/qemuxml2argvdata/qemuxml2argv-sound.xml
index 8c33e6c..3327c19 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-sound.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-sound.xml
@@ -17,6 +17,7 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<sound model='pcspk'/>
<sound model='es1370'/>
diff --git a/tests/qemuxml2argvdata/qemuxml2argv-watchdog.xml
b/tests/qemuxml2argvdata/qemuxml2argv-watchdog.xml
index 9b2ffdf..52ff117 100644
--- a/tests/qemuxml2argvdata/qemuxml2argv-watchdog.xml
+++ b/tests/qemuxml2argvdata/qemuxml2argv-watchdog.xml
@@ -17,6 +17,7 @@
<disk type='block' device='disk'>
<source dev='/dev/HostVG/QEMUGuest1'/>
<target dev='hda' bus='ide'/>
+ <address type='drive' controller='0' bus='0'
unit='0'/>
</disk>
<watchdog model='ib700' action='poweroff'/>
</devices>
diff --git a/tests/qemuxml2xmltest.c b/tests/qemuxml2xmltest.c
index e5900a2..0302696 100644
--- a/tests/qemuxml2xmltest.c
+++ b/tests/qemuxml2xmltest.c
@@ -98,6 +98,7 @@ mymain(int argc, char **argv)
DO_TEST("disk-many");
DO_TEST("disk-xenvbd");
DO_TEST("disk-usb");
+ DO_TEST("disk-virtio");
DO_TEST("floppy-drive-fat");
DO_TEST("disk-drive-fat");
DO_TEST("disk-drive-fmt-qcow");
--
1.6.5.2