diff options
author | Li Zhang <zhlcindy@linux.vnet.ibm.com> | 2012-03-05 16:10:15 +0800 |
---|---|---|
committer | Cole Robinson <crobinso@redhat.com> | 2012-03-06 16:26:50 -0500 |
commit | 3455dccf89bbfd249c409dad077fa206107a31bd (patch) | |
tree | 0996cd741739f395be7ed8b1987359299d42ff99 | |
parent | 2cb90b905c13dd2d54204b7dfeaa45f727cb1c3f (diff) | |
download | virt-manager-3455dccf89bbfd249c409dad077fa206107a31bd.tar.gz |
virt-manager:Add spapr-vlan model for pseries guest
For pseries machine type, network device is
based on spapr-vio bus. And the network device
type is called spapr-vlan. So add spapr-vlan
model for pseries guest.
Signed-off-by: Li Zhang <zhlcindy@linux.vnet.ibm.com>
-rw-r--r-- | src/virtManager/details.py | 5 | ||||
-rw-r--r-- | src/virtManager/domain.py | 3 | ||||
-rw-r--r-- | src/virtManager/uihelpers.py | 9 |
3 files changed, 15 insertions, 2 deletions
diff --git a/src/virtManager/details.py b/src/virtManager/details.py index 88a5cb58..5395087d 100644 --- a/src/virtManager/details.py +++ b/src/virtManager/details.py @@ -2252,7 +2252,10 @@ class vmmDetails(vmmGObjectUI): if self.editted(EDIT_NET_MODEL): model = self.get_combo_label_value("network-model") - add_define(self.vm.define_network_model, dev_id_info, model) + addr = None + if model == "spapr-vlan": + addr = "spapr-vio" + add_define(self.vm.define_network_model, dev_id_info, model, addr) if self.editted(EDIT_NET_SOURCE): mode = None diff --git a/src/virtManager/domain.py b/src/virtManager/domain.py index 5c332f4a..8ffd305d 100644 --- a/src/virtManager/domain.py +++ b/src/virtManager/domain.py @@ -622,10 +622,11 @@ class vmmDomain(vmmLibvirtObject): editdev.source = newsource editdev.source_mode = newmode or None return self._redefine_device(change, devobj) - def define_network_model(self, devobj, newmodel): + def define_network_model(self, devobj, newmodel, addr): def change(editdev): if editdev.model != newmodel: editdev.address.clear() + editdev.set_address(addr) editdev.model = newmodel return self._redefine_device(change, devobj) diff --git a/src/virtManager/uihelpers.py b/src/virtManager/uihelpers.py index 3b0cd15d..6b805778 100644 --- a/src/virtManager/uihelpers.py +++ b/src/virtManager/uihelpers.py @@ -310,6 +310,9 @@ def populate_netmodel_combo(vm, combo): mod_list = ["rtl8139", "ne2k_pci", "pcnet", "e1000"] if vm.get_hv_type() in ["kvm", "qemu", "test"]: mod_list.append("virtio") + if (vm.get_hv_type() == "kvm" and + vm.get_machtype() == "pseries"): + mod_list.append("spapr-vlan") if vm.get_hv_type() in ["xen", "test"]: mod_list.append("netfront") mod_list.sort() @@ -630,6 +633,7 @@ def validate_network(parent, conn, nettype, devname, macaddr, model=None): set_error_parent(parent) net = None + addr = None if nettype is None: return None @@ -673,6 +677,11 @@ def validate_network(parent, conn, nettype, devname, macaddr, model=None): network=netname, macaddr=macaddr, model=model) + if net.model == "spapr-vlan": + addr = "spapr-vio" + + net.set_address(addr) + except Exception, e: return err_dial.val_err(_("Error with network parameters."), e) |