[virt-tools-list] [PATCHv2] virt-manager:Add spapr-vlan model for pseries guest

Cole Robinson crobinso at redhat.com
Mon Mar 5 17:52:07 UTC 2012


On 03/05/2012 03:10 AM, Li Zhang wrote:
> 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.
> 

set_address(None) doesn't produce any weird effects, right? Since that's what
most models will trigger.

If no problems, ACK to this. But I'll wait for your virtinst patch to land
before committing.

- Cole

> Signed-off-by: Li Zhang <zhlcindy at linux.vnet.ibm.com>
> ---
>  src/virtManager/details.py   |    5 ++++-
>  src/virtManager/domain.py    |    3 ++-
>  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 88a5cb5..5395087 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 5c332f4..8ffd305 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 3b0cd15..6b80577 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)
>  




More information about the virt-tools-list mailing list