From: Chen Hanxiao <chenhanxiao@xxxxxxxxxxxxxx> We set virtio-scsi controller index according to the number of scsi controller in VM. This patch will set virtio-scsi controller index via max index in scsi controller list. How to reproduce: a) If we got an VM with two scsi controller: <controller type='scsi' index='0'> <controller type='scsi' index='2'> #reason for index='2': someone delete a scsi controller with index=1 by virsh b) add a virtio-scsi disk by virt-manager c) error threw by virt-manager: libvirtError: XML error: Multiple 'scsi' controllers with index '2' Signed-off-by: Chen Hanxiao <chenhanxiao@xxxxxxxxxxxxxx> --- virtManager/addhardware.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/virtManager/addhardware.py b/virtManager/addhardware.py index d7ee161..a0facf2 100644 --- a/virtManager/addhardware.py +++ b/virtManager/addhardware.py @@ -1546,13 +1546,19 @@ class vmmAddHardware(vmmGObjectUI): disk.vmm_controller = None if (controller_model == "virtio-scsi") and (bus == "scsi"): controllers = self.vm.get_controller_devices() + ctrls_scsi = [x for x in controllers if + (x.type == VirtualController.TYPE_SCSI)] + if len(ctrls_scsi) > 0: + index_new = max([x.index for x in ctrls_scsi]) + 1 + else: + index_new = 0 controller = VirtualController(conn) controller.type = "scsi" controller.model = controller_model disk.vmm_controller = controller for d in controllers: if controller.type == d.type: - controller.index += 1 + controller.index = index_new if controller_model == d.model: disk.vmm_controller = None controller = d -- 1.8.2.1 _______________________________________________ virt-tools-list mailing list virt-tools-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/virt-tools-list