[virt-tools-list] [virt-manager PATCH 1/7] details: Disallow removing the scsi controller if disks attached to it

Cole Robinson crobinso at redhat.com
Tue Nov 21 22:18:07 UTC 2017


On 11/06/2017 07:52 AM, Lin Ma wrote:
> Through virt-manager, After we removed a virtio-scsi controller which
> virtual disks still attach to it, Libvirt will add a LSI scsi controller
> for this guest automatically and trigger a lifecycle event, virt-manager
> updates and shows this new scsi controller in details panel once it got
> the lifecycle event.
> 
> It may confuse user that a LSI scsi controller occurs while one removes
> the virtio-scsi controller.
> 
> This patch prevents removing a scsi controller if any disks attaching to
> it.
> 
> Signed-off-by: Lin Ma <lma at suse.com>
> ---
>  virtManager/details.py | 6 ++++++
>  1 file changed, 6 insertions(+)
> 
> diff --git a/virtManager/details.py b/virtManager/details.py
> index a51f5623..0923f4b0 100644
> --- a/virtManager/details.py
> +++ b/virtManager/details.py
> @@ -3000,6 +3000,12 @@ class vmmDetails(vmmGObjectUI):
>              can_remove = False
>          if dev.type == "pci":
>              can_remove = False
> +        if dev.type == "scsi":
> +            for disk in self.vm.get_disk_devices(inactive=True):
> +                if (dev.type == disk.bus and
> +                    dev.index == disk.address.controller):
> +                    can_remove = False
> +                    break
>          self.widget("config-remove").set_sensitive(can_remove)
>  
>          type_label = dev.pretty_desc()
> 

Good idea, we should do this for other controller types too I think.

(Another nice addition would be setting a tooltip on config-remove in
these cases to at least give the chance of informing the user _why_ the
device can't be removed. but again not required)

Why inactive=True here though? If you drop it, it will use the current
state of the VM active or inactive which seems the best option

Thanks,
Cole




More information about the virt-tools-list mailing list