diff options
-rwxr-xr-x | examples/python/get-active-connection-uuids.py | 24 |
1 files changed, 17 insertions, 7 deletions
diff --git a/examples/python/get-active-connection-uuids.py b/examples/python/get-active-connection-uuids.py index 229a12eba8..9eefac20b2 100755 --- a/examples/python/get-active-connection-uuids.py +++ b/examples/python/get-active-connection-uuids.py @@ -27,19 +27,29 @@ import dbus, sys bus = dbus.SystemBus() # Get a proxy for the base NetworkManager object -proxy = bus.get_object("org.freedesktop.NetworkManager", "/org/freedesktop/NetworkManager") -manager = dbus.Interface(proxy, "org.freedesktop.NetworkManager") -settings = dbus.Interface(proxy, "org.freedesktop.NetworkManager.Settings") -mgr_props = dbus.Interface(proxy, "org.freedesktop.DBus.Properties") +m_proxy = bus.get_object("org.freedesktop.NetworkManager", "/org/freedesktop/NetworkManager") +manager = dbus.Interface(m_proxy, "org.freedesktop.NetworkManager") +mgr_props = dbus.Interface(m_proxy, "org.freedesktop.DBus.Properties") + +s_proxy = bus.get_object("org.freedesktop.NetworkManager", "/org/freedesktop/NetworkManager/Settings") +settings = dbus.Interface(s_proxy, "org.freedesktop.NetworkManager.Settings") # Find the device the user wants to disconnect active = mgr_props.Get("org.freedesktop.NetworkManager", "ActiveConnections") for a in active: a_proxy = bus.get_object("org.freedesktop.NetworkManager", a) + + # Get the UUID directly; apps could use this to perform certain operations + # based on which network you're connected too a_props = dbus.Interface(a_proxy, "org.freedesktop.DBus.Properties") - uuid = prop_iface.Get("org.freedesktop.NetworkManager.Connection.Active", "Uuid") - connection = settings.GetConnectionByUuid(uuid) - print "%s (%s)" % (connection['connection']['id'], uuid) + uuid = a_props.Get("org.freedesktop.NetworkManager.Connection.Active", "Uuid") + + # Grab the connection object path so we can get all the connection's settings + connection_path = a_props.Get("org.freedesktop.NetworkManager.Connection.Active", "Connection") + c_proxy = bus.get_object("org.freedesktop.NetworkManager", connection_path) + connection = dbus.Interface(c_proxy, "org.freedesktop.NetworkManager.Settings.Connection") + settings = connection.GetSettings() + print "%s (%s)" % (settings['connection']['id'], uuid) if len(active) == 0: print "No active connections" |