[virt-tools-list] [virt-manager PATCH v3] add support for showing and modifying scsi controller model

Cole Robinson crobinso at redhat.com
Tue Jan 21 14:17:49 UTC 2014


On 01/21/2014 04:19 AM, Chen Hanxiao wrote:
> From: Chen Hanxiao <chenhanxiao at cn.fujitsu.com>
> 
> We could specify 'model' for scsi controllers,
> that means we could see more than one controllers
> with same icon and blank details.
> That will confuse users.
> 
> This patch will show details of scsi controller device.
> And also we could modify scsi controller model
> between 'default' and 'virtio-scsi'.
> 
> Signed-off-by: Chen Hanxiao <chenhanxiao at cn.fujitsu.com>
> ---
> v2: fix an issue if no scsi controller existed
> v3: code refactor according to cole's comments
> 
>  virtManager/details.py |  6 ++++--
>  virtManager/domain.py  | 21 +++++++++++++++------
>  2 files changed, 19 insertions(+), 8 deletions(-)
> 
> diff --git a/virtManager/details.py b/virtManager/details.py
> index 32d51d7..aa48868 100644
> --- a/virtManager/details.py
> +++ b/virtManager/details.py
> @@ -3299,13 +3299,12 @@ class vmmDetails(vmmGObjectUI):
>  
>          type_label = virtinst.VirtualController.pretty_type(dev.type)
>          model_label = dev.model
> -        is_usb = dev.type == virtinst.VirtualController.TYPE_USB
>          if not model_label:
>              model_label = _("Default")
>  
>          self.widget("controller-type").set_text(type_label)
>          combo = self.widget("controller-model")
> -        uihelpers.set_grid_row_visible(combo, is_usb)
> +        uihelpers.set_grid_row_visible(combo, True)
>  
>          model = combo.get_model()
>          model.clear()
> @@ -3314,6 +3313,9 @@ class vmmDetails(vmmGObjectUI):
>              model.append(["ich9-ehci1", "USB 2"])
>              model.append(["nec-xhci", "USB 3"])
>              self.widget("config-remove").set_sensitive(False)
> +        elif dev.type == virtinst.VirtualController.TYPE_SCSI:
> +            model.append(["default", "Default"])
> +            model.append(["virtio-scsi", "Virtio SCSI"])
>          else:

If you just do [None, "Default"] here, you don't need to specially handle
"default" in domain.py

>              self.widget("config-remove").set_sensitive(True)
>  
> diff --git a/virtManager/domain.py b/virtManager/domain.py
> index ada404b..6cfec3a 100644
> --- a/virtManager/domain.py
> +++ b/virtManager/domain.py
> @@ -822,16 +822,15 @@ class vmmDomain(vmmLibvirtObject):
>  
>      # Controller define methods
>      def define_controller_model(self, devobj, newmodel):
> -        def change(editdev):
> +        def _change_usb(editdev):
>              ignore = editdev
>  
>              guest = self._get_xmlobj_to_define()
>              ctrls = guest.get_devices("controller")
> -            ctrls = [x for x in ctrls if (x.type ==
> -                     VirtualController.TYPE_USB)]
> -            for dev in ctrls:
> +            ctrls_usb = [x for x in ctrls if
> +                    (x.type == VirtualController.TYPE_USB)]
> +            for dev in ctrls_usb:
>                  guest.remove_device(dev)
> -

Most of these changes are redundant now, please drop them.

Thanks,
Cole




More information about the virt-tools-list mailing list