[virt-tools-list] [PATCHv4] virt-manager: Add spapr-vscsi disk type for pseries guest.
Cole Robinson
crobinso at redhat.com
Sat Mar 3 19:02:00 UTC 2012
On 02/29/2012 03:48 AM, Li Zhang wrote:
> This patch adds spapr-vscsi disk type on disk GUI page.
> It provides an options to user to select the scsi disk
> which is based on spapr-vio address type for pseries guest.
>
> Signed-off-by: Li Zhang <zhlcindy at linux.vnet.ibm.com>
> ---
> src/virtManager/details.py | 19 ++++++++++++++++++-
> src/virtManager/domain.py | 3 ++-
> 2 files changed, 20 insertions(+), 2 deletions(-)
>
> diff --git a/src/virtManager/details.py b/src/virtManager/details.py
> index 55ea957..0a1e9a4 100644
> --- a/src/virtManager/details.py
> +++ b/src/virtManager/details.py
> @@ -157,6 +157,9 @@ def prettyify_disk_bus(bus):
> if bus == "virtio":
> return "VirtIO"
>
> + if bus == "spapr-vscsi":
> + return "vSCSI"
> +
> return bus
>
> def prettyify_disk(devtype, bus, idx):
> @@ -2205,7 +2208,11 @@ class vmmDetails(vmmGObjectUI):
> # Do this last since it can change uniqueness info of the dev
> if self.editted(EDIT_DISK_BUS):
> bus = self.get_combo_label_value("disk-bus")
> - add_define(self.vm.define_disk_bus, dev_id_info, bus)
> + addr = None
> + if bus == "spapr-vscsi":
> + bus = "scsi"
> + addr = "spapr-vio"
> + add_define(self.vm.define_disk_bus, dev_id_info, bus, addr)
>
> return self._change_config_helper(df, da, hf, ha)
>
> @@ -2791,6 +2798,7 @@ class vmmDetails(vmmGObjectUI):
> ro = disk.read_only
> share = disk.shareable
> bus = disk.bus
> + addr = disk.address.type
> idx = disk.disk_bus_index
> cache = disk.driver_cache
> io = disk.driver_io
> @@ -2814,6 +2822,9 @@ class vmmDetails(vmmGObjectUI):
> is_cdrom = (devtype == virtinst.VirtualDisk.DEVICE_CDROM)
> is_floppy = (devtype == virtinst.VirtualDisk.DEVICE_FLOPPY)
>
> + if addr == "spapr-vio":
> + bus = "spapr-vscsi"
> +
> pretty_name = prettyify_disk(devtype, bus, idx)
>
> self.widget("disk-source-path").set_text(path or "-")
> @@ -3279,6 +3290,9 @@ class vmmDetails(vmmGObjectUI):
> if self.vm.get_hv_type() in ["kvm", "test"]:
> buses.append(["sata", "SATA"])
> buses.append(["virtio", "Virtio"])
> + if (self.vm.get_hv_type() == "kvm" and
> + self.vm.get_machtype() == "pseries"):
> + buses.append(["spapr-vscsi", "sPAPR-vSCSI"])
> if self.vm.conn.is_xen() or self.vm.get_hv_type() == "test":
> buses.append(["xen", "Xen"])
>
> @@ -3364,6 +3378,9 @@ class vmmDetails(vmmGObjectUI):
> elif devtype == "floppy":
> icon = "media-floppy"
>
> + if disk.address.type == "spapr-vio":
> + bus = "spapr-vscsi"
> +
> label = prettyify_disk(devtype, bus, idx)
>
> update_hwlist(HW_LIST_TYPE_DISK, disk, label, icon)
> diff --git a/src/virtManager/domain.py b/src/virtManager/domain.py
> index 7f382e0..7bcebec 100644
> --- a/src/virtManager/domain.py
> +++ b/src/virtManager/domain.py
> @@ -577,7 +577,7 @@ class vmmDomain(vmmLibvirtObject):
> def change(editdev):
> editdev.driver_type = new_driver_type or None
> return self._redefine_device(change, devobj)
> - def define_disk_bus(self, devobj, newval):
> + def define_disk_bus(self, devobj, newval, addr):
> def change(editdev):
> oldprefix = editdev.get_target_prefix()[0]
> oldbus = editdev.bus
> @@ -587,6 +587,7 @@ class vmmDomain(vmmLibvirtObject):
> return
>
> editdev.address.clear()
> + editdev.set_address(addr)
>
> if oldprefix == editdev.get_target_prefix()[0]:
> return
Great, looks good. Pushed now.
- Cole
More information about the virt-tools-list
mailing list