add support for showing and modifying scsi controller model

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@cn.fujitsu.com>
This commit is contained in:
Chen Hanxiao 2014-01-22 11:46:06 +08:00 committed by Cole Robinson
parent dc0b9bbaaf
commit 4c53debd8a
2 changed files with 26 additions and 17 deletions

View File

@ -3327,13 +3327,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()
@ -3342,6 +3341,9 @@ class vmmDetails(vmmGObjectUI):
model.append(["ich9-ehci1", "USB 2"])
model.append(["nec-xhci", "USB 3"])
self.widget("config-remove").set_sensitive(False)
if dev.type == virtinst.VirtualController.TYPE_SCSI:
model.append(["default", "Default"])
model.append(["virtio-scsi", "Virtio SCSI"])
else:
self.widget("config-remove").set_sensitive(True)

View File

@ -825,6 +825,7 @@ class vmmDomain(vmmLibvirtObject):
def change(editdev):
ignore = editdev
if editdev.type == "usb":
guest = self._get_xmlobj_to_define()
ctrls = guest.get_devices("controller")
ctrls = [x for x in ctrls if (x.type ==
@ -842,6 +843,12 @@ class vmmDomain(vmmLibvirtObject):
if newmodel != "default":
dev.model = newmodel
guest.add_device(dev)
elif editdev.type == "scsi":
if newmodel == "default":
editdev.model = None
else:
editdev.model = newmodel
self.update_device(editdev)
return self._redefine_device(change, devobj)