From: Peter Krempa <pkre...@redhat.com>

While the 'usb-storage' based disks use the USB address directly, with
'usb-bot' the USB address is on the "controller" part of the device and
the 'scsi-hd/cd' device will use a 'drive' address from qemu's PoV.

Since we do not want to expose the 'usb-bot' as explicit controller
to preserve compatibility with existing configs we plan to upgrade
implement the formatter for 'drive' address when the "diskbus" property
is VIR_DOMAIN_DISK_BUS_USB.

Signed-off-by: Peter Krempa <pkre...@redhat.com>
---
 src/qemu/qemu_command.c | 15 ++++++++++++++-
 1 file changed, 14 insertions(+), 1 deletion(-)

diff --git a/src/qemu/qemu_command.c b/src/qemu/qemu_command.c
index 4de6016784..910242a389 100644
--- a/src/qemu/qemu_command.c
+++ b/src/qemu/qemu_command.c
@@ -545,8 +545,21 @@ qemuBuildDeviceAddresDriveProps(virJSONValue *props,
             return -1;
         break;

-    case VIR_DOMAIN_DISK_BUS_VIRTIO:
     case VIR_DOMAIN_DISK_BUS_USB:
+        /* Device info with type VIR_DOMAIN_DEVICE_ADDRESS_TYPE_DRIVE and
+         * VIR_DOMAIN_DISK_BUS_USB diskbus is an internal representation
+         * for the device address for 'usb-bot'. */
+            bus = g_strdup_printf("%s.0", info->alias);
+
+            if (virJSONValueObjectAdd(&props,
+                                      "s:bus", bus,
+                                      "u:scsi-id", info->addr.drive.target,
+                                      "u:lun", info->addr.drive.unit,
+                                      NULL) < 0)
+                return -1;
+            break;
+
+    case VIR_DOMAIN_DISK_BUS_VIRTIO:
     case VIR_DOMAIN_DISK_BUS_XEN:
     case VIR_DOMAIN_DISK_BUS_UML:
     case VIR_DOMAIN_DISK_BUS_SD:
-- 
2.49.0

Reply via email to