---
pyanaconda/ui/gui/spokes/network.py | 51 ++++++++++++++++++++++++++++---------
1 file changed, 39 insertions(+), 12 deletions(-)
diff --git a/pyanaconda/ui/gui/spokes/network.py b/pyanaconda/ui/gui/spokes/network.py
index 8fee6c3..f8a8fb4 100644
--- a/pyanaconda/ui/gui/spokes/network.py
+++ b/pyanaconda/ui/gui/spokes/network.py
@@ -223,6 +223,7 @@ class NetworkControlBox(object):
NetworkManager.DeviceType.ETHERNET,
NetworkManager.DeviceType.WIFI,
NetworkManager.DeviceType.BOND,
+ NetworkManager.DeviceType.VLAN,
]
def __init__(self, builder):
@@ -483,7 +484,8 @@ class NetworkControlBox(object):
dev_type = device.get_device_type()
if dev_type in (NetworkManager.DeviceType.ETHERNET,
- NetworkManager.DeviceType.BOND):
+ NetworkManager.DeviceType.BOND,
+ NetworkManager.DeviceType.VLAN):
if active:
cons = self.remote_settings.list_connections()
dev_cons = device.filter_connections(cons)
@@ -528,26 +530,37 @@ class NetworkControlBox(object):
return model.get(iter, DEVICES_COLUMN_OBJECT)[0]
def find_connection_for_device(self, device, ssid=None):
- dev_hwaddr = device.get_hw_address()
+ dev_type = device.get_device_type()
cons = self.remote_settings.list_connections()
for con in cons:
con_type = con.get_setting_connection().get_connection_type()
- if con_type == NetworkManager.SETTING_WIRED_SETTING_NAME:
+ if dev_type == NetworkManager.DeviceType.ETHERNET:
+ if con_type != NetworkManager.SETTING_WIRED_SETTING_NAME:
+ continue
settings = con.get_setting_wired()
- elif con_type == NetworkManager.SETTING_WIRELESS_SETTING_NAME:
+ con_hwaddr = ":".join("%02X" % ord(bytechar) for
bytechar in settings.get_mac_address())
+ if con_hwaddr == device.get_hw_address():
+ return con
+ elif dev_type == NetworkManager.DeviceType.WIFI:
+ if con_type != NetworkManager.SETTING_WIRELESS_SETTING_NAME:
+ continue
settings = con.get_setting_wireless()
- if ssid and ssid != settings.get_ssid():
+ if ssid == settings.get_ssid():
+ return con
+ elif dev_type == NetworkManager.DeviceType.BOND:
+ if con_type != NetworkManager.SETTING_BOND_SETTING_NAME:
continue
- elif con_type == NetworkManager.SETTING_BOND_SETTING_NAME:
settings = con.get_setting_bond()
if device.get_iface() == settings.get_virtual_iface_name():
return con
+ elif dev_type == NetworkManager.DeviceType.VLAN:
+ if con_type != NetworkManager.SETTING_VLAN_SETTING_NAME:
+ continue
+ settings = con.get_setting_vlan()
+ if device.get_iface() == settings.get_interface_name():
+ return con
else:
- continue
- con_hwaddr = ":".join("%02X" % ord(bytechar) for bytechar
in settings.get_mac_address())
- if con_hwaddr == dev_hwaddr:
- return con
- return None
+ return None
def find_active_connection_for_device(self, device):
cons = self.client.get_active_connections()
@@ -590,6 +603,11 @@ class NetworkControlBox(object):
icon_name = "network-wired-disconnected"
else:
icon_name = "network-wired"
+ elif dev_type == NetworkManager.DeviceType.VLAN:
+ if device.get_state() == NetworkManager.DeviceState.UNAVAILABLE:
+ icon_name = "network-wired-disconnected"
+ else:
+ icon_name = "network-wired"
elif dev_type == NetworkManager.DeviceType.WIFI:
icon_name = "network-wireless"
@@ -629,6 +647,8 @@ class NetworkControlBox(object):
title = _("Wireless")
elif dev_type == NetworkManager.DeviceType.BOND:
title = _("Bond")
+ elif dev_type == NetworkManager.DeviceType.VLAN:
+ title = _("Vlan")
else:
title = ""
return title
@@ -686,6 +706,8 @@ class NetworkControlBox(object):
dt = "wireless"
elif dev_type == NetworkManager.DeviceType.BOND:
dt = "wired"
+ elif dev_type == NetworkManager.DeviceType.VLAN:
+ dt = "wired"
if state is None:
state = device.get_state()
@@ -796,7 +818,10 @@ class NetworkControlBox(object):
elif dev_type == NetworkManager.DeviceType.WIFI:
dt = "wireless"
speed = device.get_bitrate() / 1000
- else:
+ elif dev_type == NetworkManager.DeviceType.BOND:
+ dt = "wired"
+ speed = None
+ elif dev_type == NetworkManager.DeviceType.VLAN:
dt = "wired"
speed = None
@@ -837,6 +862,8 @@ class NetworkControlBox(object):
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