[PATCH rhel7-branch] Ignore loopback device which is now returned by NM's GetDevices() (#999514)
Radek Vykydal
rvykydal at redhat.com
Fri Aug 23 12:20:34 UTC 2013
NM's org.freedesktop.NetworkManager.GetDevices() now returns also
devices not controlled by NM, eg. loopback device.
---
pyanaconda/nm.py | 23 +++++++++++++++++++----
pyanaconda/ui/gui/spokes/advstorage/fcoe.py | 7 +------
2 files changed, 20 insertions(+), 10 deletions(-)
diff --git a/pyanaconda/nm.py b/pyanaconda/nm.py
index 18a29e7..81ef78e 100644
--- a/pyanaconda/nm.py
+++ b/pyanaconda/nm.py
@@ -36,9 +36,20 @@ device_type_interfaces = {
NetworkManager.DeviceType.INFINIBAND: "org.freedesktop.NetworkManager.Device.Infiniband",
NetworkManager.DeviceType.BOND: "org.freedesktop.NetworkManager.Device.Bond",
NetworkManager.DeviceType.VLAN: "org.freedesktop.NetworkManager.Device.Vlan",
- NetworkManager.DeviceType.ADSL: "org.freedesktop.NetworkManager.Device.Adsl"
+ NetworkManager.DeviceType.ADSL: "org.freedesktop.NetworkManager.Device.Adsl",
+ NetworkManager.DeviceType.BRIDGE: "org.freedesktop.NetworkManager.Device.Bridge",
+ NetworkManager.DeviceType.GENERIC: "org.freedesktop.NetworkManager.Device.Generic",
}
+supported_device_types = [
+ NetworkManager.DeviceType.ETHERNET,
+ NetworkManager.DeviceType.WIFI,
+ NetworkManager.DeviceType.INFINIBAND,
+ NetworkManager.DeviceType.BOND,
+ NetworkManager.DeviceType.VLAN,
+ NetworkManager.DeviceType.BRIDGE,
+]
+
class UnknownDeviceError(ValueError):
"""Device of specified name was not found by NM"""
def __str__(self):
@@ -96,7 +107,7 @@ def nm_is_connecting():
return nm_state() == NetworkManager.State.CONNECTING
def nm_devices():
- """Return list of network device names"""
+ """Return list of network device names supported in installer"""
interfaces = []
@@ -110,6 +121,9 @@ def nm_devices():
devices = devices.unpack()[0]
for device in devices:
+ device_type = proxy.get_cached_property("DeviceType").unpack()
+ if device_type not in supported_device_types:
+ continue
proxy = _get_proxy(object_path=device, interface_name="org.freedesktop.NetworkManager.Device")
interfaces.append(proxy.get_cached_property("Interface").unpack())
@@ -305,9 +319,10 @@ def _device_settings(name):
else:
try:
hwaddr_str = nm_device_hwaddress(name)
- settings = _settings_for_hwaddr(hwaddr_str)
- except ValueError:
+ except PropertyNotFoundError:
settings = None
+ else:
+ settings = _settings_for_hwaddr(hwaddr_str)
return settings
diff --git a/pyanaconda/ui/gui/spokes/advstorage/fcoe.py b/pyanaconda/ui/gui/spokes/advstorage/fcoe.py
index 0a232d3..fa1330c 100644
--- a/pyanaconda/ui/gui/spokes/advstorage/fcoe.py
+++ b/pyanaconda/ui/gui/spokes/advstorage/fcoe.py
@@ -57,13 +57,8 @@ class FCoEDialog(GUIObject):
self._autoCheckbox = self.builder.get_object("autoCheckbox")
for devname in nm.nm_devices():
- if not nm.nm_device_type_is_ethernet(devname):
- continue
-
- try:
+ if nm.nm_device_type_is_ethernet(devname):
self._nicCombo.append_text("%s - %s" % (devname, nm.nm_device_hwaddress(devname)))
- except ValueError:
- continue
self._nicCombo.set_active(0)
--
1.7.11.7
More information about the anaconda-patches
mailing list