On 01/21/2014 03:24 AM, Chen Hanxiao wrote: > 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 > ACK, pushed now. - Cole _______________________________________________ virt-tools-list mailing list virt-tools-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/virt-tools-list