[PATCH 5/5] NM no longer exposes information through HAL (#514501).

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



We need to use dbus and udev now, instead of the HAL interface.  In
the future, we need to adapt code from storage/udev.py to be less tied
to block devices, since network devices use this same interface now.
---
 isys/isys.py |   31 ++++++++++++++-----------------
 1 files changed, 14 insertions(+), 17 deletions(-)

diff --git a/isys/isys.py b/isys/isys.py
index 48909c7..f4aeaec 100755
--- a/isys/isys.py
+++ b/isys/isys.py
@@ -55,10 +55,6 @@ NM_STATE_CONNECTING = 2
 NM_STATE_CONNECTED = 3
 NM_STATE_DISCONNECTED = 4
 
-HAL_SERVICE = "org.freedesktop.Hal"
-HAL_PATH = "/org/freedesktop/Hal"
-HAL_DEVICE_IFACE = "org.freedesktop.Hal.Device"
-
 DBUS_PROPS_IFACE = "org.freedesktop.DBus.Properties"
 
 mountCount = {}
@@ -584,6 +580,7 @@ def getMacAddress(dev):
 
 # Get a description string for a network device (e.g., eth0)
 def getNetDevDesc(dev):
+    from storage.udev import udev_get_block_device
     desc = "Network Interface"
 
     if dev == '' or dev is None:
@@ -594,19 +591,19 @@ def getNetDevDesc(dev):
     devlist = nm.get_dbus_method("GetDevices")()
 
     for path in devlist:
-        device = bus.get_object(HAL_SERVICE, path)
-        device_iface = dbus.Interface(device, HAL_DEVICE_IFACE)
-        device_props = device_iface.get_dbus_method("GetAllProperties")()
-
-        if dev == device_props['net.interface']:
-            if device_props.has_key('info.product'):
-                if device_props.has_key('info.vendor'):
-                    desc = "%s %s" % (device_props['info.product'],
-                                      device_props['info.vendor'],)
-                else:
-                    desc = device_props['info.product']
-            else:
-                desc = device_props['info.udi']
+        device = bus.get_object(NM_SERVICE, path)
+        device_iface = dbus.Interface(device, DBUS_PROPS_IFACE)
+        device_props = device_iface.get_dbus_method("GetAll")(NM_DEVICE_IFACE)
+
+        if dev == device_props['Interface']:
+            # This is the sysfs path (for now).
+            udev_path = device_props['Udi']
+            dev = udev_get_block_device(udev_path, requireName=False)
+
+            if dev.has_key("ID_VENDOR_ENC") and dev.has_key("ID_MODEL_ENC"):
+                desc = "%s %s" % (dev["ID_VENDOR_ENC"], dev["ID_MODEL_ENC"])
+            elif dev.has_key("ID_VENDOR_FROM_DATABASE") and dev.has_key("ID_MODEL_FROM_DATABASE"):
+                desc = "%s %s" % (dev["ID_VENDOR_FROM_DATABASE"], dev["ID_MODEL_FROM_DATABASE"])
 
             return desc
 
-- 
1.6.1.3

_______________________________________________
Anaconda-devel-list mailing list
Anaconda-devel-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/anaconda-devel-list

[Index of Archives]     [Kickstart]     [Fedora Users]     [Fedora Legacy List]     [Fedora Maintainers]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [Yosemite Photos]     [KDE Users]     [Fedora Tools]
  Powered by Linux