[PATCH 3/5] (v2) network: support for adding team devices (#1003591)

Radek Vykydal rvykydal at redhat.com
Tue Nov 12 13:34:49 UTC 2013


Resolves: rhbz#1003591
---
 pyanaconda/ui/gui/spokes/network.glade |  4 +++
 pyanaconda/ui/gui/spokes/network.py    | 57 ++++++++++++++--------------------
 2 files changed, 27 insertions(+), 34 deletions(-)

diff --git a/pyanaconda/ui/gui/spokes/network.glade b/pyanaconda/ui/gui/spokes/network.glade
index 25d1c38..1b65d83 100644
--- a/pyanaconda/ui/gui/spokes/network.glade
+++ b/pyanaconda/ui/gui/spokes/network.glade
@@ -118,6 +118,10 @@
         <col id="1" translatable="yes">bond</col>
       </row>
       <row>
+        <col id="0" translatable="yes">Team</col>
+        <col id="1" translatable="yes">team</col>
+      </row>
+      <row>
         <col id="0" translatable="yes">Vlan</col>
         <col id="1" translatable="yes">vlan</col>
       </row>
diff --git a/pyanaconda/ui/gui/spokes/network.py b/pyanaconda/ui/gui/spokes/network.py
index 0fa1657..429fb18 100644
--- a/pyanaconda/ui/gui/spokes/network.py
+++ b/pyanaconda/ui/gui/spokes/network.py
@@ -217,6 +217,14 @@ class NetworkControlBox(object):
     supported_device_types = [
         NetworkManager.DeviceType.ETHERNET,
         NetworkManager.DeviceType.WIFI,
+        NetworkManager.DeviceType.TEAM,
+        NetworkManager.DeviceType.BOND,
+        NetworkManager.DeviceType.VLAN,
+    ]
+
+    wired_ui_device_types = [
+        NetworkManager.DeviceType.ETHERNET,
+        NetworkManager.DeviceType.TEAM,
         NetworkManager.DeviceType.BOND,
         NetworkManager.DeviceType.VLAN,
     ]
@@ -481,9 +489,7 @@ class NetworkControlBox(object):
                   (device.get_iface(), "on" if active else "off"))
 
         dev_type = device.get_device_type()
-        if dev_type in (NetworkManager.DeviceType.ETHERNET,
-                        NetworkManager.DeviceType.BOND,
-                        NetworkManager.DeviceType.VLAN):
+        if dev_type in self.wired_ui_device_types:
             if active:
                 uuid = nm.nm_device_setting_value(device.get_iface(), "connection", "uuid")
                 if uuid:
@@ -561,17 +567,7 @@ class NetworkControlBox(object):
     def _dev_icon_name(self, device):
         icon_name = ""
         dev_type = device.get_device_type()
-        if  dev_type == NetworkManager.DeviceType.ETHERNET:
-            if device.get_state() == NetworkManager.DeviceState.UNAVAILABLE:
-                icon_name = "network-wired-disconnected"
-            else:
-                icon_name = "network-wired"
-        elif  dev_type == NetworkManager.DeviceType.BOND:
-            if device.get_state() == NetworkManager.DeviceState.UNAVAILABLE:
-                icon_name = "network-wired-disconnected"
-            else:
-                icon_name = "network-wired"
-        elif  dev_type == NetworkManager.DeviceType.VLAN:
+        if dev_type in self.wired_ui_device_types:
             if device.get_state() == NetworkManager.DeviceState.UNAVAILABLE:
                 icon_name = "network-wired-disconnected"
             else:
@@ -617,6 +613,8 @@ class NetworkControlBox(object):
             title = _("Bond")
         elif dev_type == NetworkManager.DeviceType.VLAN:
             title = _("Vlan")
+        elif dev_type == NetworkManager.DeviceType.TEAM:
+            title = _("Team")
         else:
             title = ""
         return title
@@ -651,14 +649,10 @@ class NetworkControlBox(object):
     def _refresh_device_cfg(self, device):
 
         dev_type = device.get_device_type()
-        if dev_type == NetworkManager.DeviceType.ETHERNET:
+        if dev_type in self.wired_ui_device_types:
             dt = "wired"
         elif dev_type == NetworkManager.DeviceType.WIFI:
             dt = "wireless"
-        elif dev_type == NetworkManager.DeviceType.BOND:
-            dt = "wired"
-        elif dev_type == NetworkManager.DeviceType.VLAN:
-            dt = "wired"
 
         ipv4cfg = nm.nm_device_ip_config(device.get_iface(), version=4)
         ipv6cfg = nm.nm_device_ip_config(device.get_iface(), version=6)
@@ -744,7 +738,8 @@ class NetworkControlBox(object):
 
     def _refresh_slaves(self, device):
         dev_type = device.get_device_type()
-        if dev_type == NetworkManager.DeviceType.BOND:
+        if dev_type in [NetworkManager.DeviceType.BOND,
+                        NetworkManager.DeviceType.TEAM]:
             slaves = ",".join(s.get_iface()
                 for s in device.get_slaves())
             self._set_device_info_value("wired", "slaves", slaves)
@@ -758,18 +753,15 @@ class NetworkControlBox(object):
 
     def _refresh_speed_hwaddr(self, device, state=None):
         dev_type = device.get_device_type()
-        if dev_type == NetworkManager.DeviceType.ETHERNET:
+        if dev_type in self.wired_ui_device_types:
             dt = "wired"
-            speed = device.get_speed()
         elif dev_type == NetworkManager.DeviceType.WIFI:
             dt = "wireless"
+        speed = None
+        if dev_type == NetworkManager.DeviceType.ETHERNET:
+            speed = device.get_speed()
+        elif dev_type == NetworkManager.DeviceType.WIFI:
             speed = device.get_bitrate() / 1000
-        elif dev_type == NetworkManager.DeviceType.BOND:
-            dt = "wired"
-            speed = None
-        elif dev_type == NetworkManager.DeviceType.VLAN:
-            dt = "wired"
-            speed = None
 
         if state is None:
             state = device.get_state()
@@ -793,7 +785,8 @@ class NetworkControlBox(object):
             self.builder.get_object("label_wired_vlanid").hide()
             self.builder.get_object("heading_wired_parent").hide()
             self.builder.get_object("label_wired_parent").hide()
-        elif dev_type == NetworkManager.DeviceType.BOND:
+        elif dev_type in [NetworkManager.DeviceType.BOND,
+                          NetworkManager.DeviceType.TEAM]:
             notebook.set_current_page(0)
             self.builder.get_object("heading_wired_slaves").show()
             self.builder.get_object("label_wired_slaves").show()
@@ -818,14 +811,10 @@ class NetworkControlBox(object):
 
     def _refresh_header_ui(self, device, state=None):
         dev_type = device.get_device_type()
-        if dev_type == NetworkManager.DeviceType.ETHERNET:
+        if dev_type in sefl.wired_ui_device_types:
             dev_type_str = "wired"
         elif dev_type == NetworkManager.DeviceType.WIFI:
             dev_type_str = "wireless"
-        elif dev_type == NetworkManager.DeviceType.BOND:
-            dev_type_str = "wired"
-        elif dev_type == NetworkManager.DeviceType.VLAN:
-            dev_type_str = "wired"
 
         if dev_type_str == "wired":
             # update icon according to device status
-- 
1.7.11.7



More information about the anaconda-patches mailing list