examples: fix up active connection example

This commit is contained in:
Dan Williams
2011-08-06 10:44:50 +02:00
parent c957fdfb52
commit bf89da140c

View File

@@ -27,19 +27,29 @@ import dbus, sys
bus = dbus.SystemBus() bus = dbus.SystemBus()
# Get a proxy for the base NetworkManager object # Get a proxy for the base NetworkManager object
proxy = bus.get_object("org.freedesktop.NetworkManager", "/org/freedesktop/NetworkManager") m_proxy = bus.get_object("org.freedesktop.NetworkManager", "/org/freedesktop/NetworkManager")
manager = dbus.Interface(proxy, "org.freedesktop.NetworkManager") manager = dbus.Interface(m_proxy, "org.freedesktop.NetworkManager")
settings = dbus.Interface(proxy, "org.freedesktop.NetworkManager.Settings") mgr_props = dbus.Interface(m_proxy, "org.freedesktop.DBus.Properties")
mgr_props = dbus.Interface(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 # Find the device the user wants to disconnect
active = mgr_props.Get("org.freedesktop.NetworkManager", "ActiveConnections") active = mgr_props.Get("org.freedesktop.NetworkManager", "ActiveConnections")
for a in active: for a in active:
a_proxy = bus.get_object("org.freedesktop.NetworkManager", a) 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") a_props = dbus.Interface(a_proxy, "org.freedesktop.DBus.Properties")
uuid = prop_iface.Get("org.freedesktop.NetworkManager.Connection.Active", "Uuid") uuid = a_props.Get("org.freedesktop.NetworkManager.Connection.Active", "Uuid")
connection = settings.GetConnectionByUuid(uuid)
print "%s (%s)" % (connection['connection']['id'], 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: if len(active) == 0:
print "No active connections" print "No active connections"