#! /usr/bin/python from dbus.mainloop.glib import DBusGMainLoop DBusGMainLoop(set_as_default=True) import dbus b = dbus.SystemBus() NM_SERVICE="org.freedesktop.NetworkManager" NM_PATH="/org/freedesktop/NetworkManager" NM_VPN_SERVICE ="org.freedesktop.NetworkManager.VPNConnections" NM_VPN_PATH ="/org/freedesktop/NetworkManager/VPNConnections" nm = b.get_object(NM_SERVICE, NM_VPN_PATH, True) interface = dbus.Interface(nm, NM_VPN_SERVICE) import sys if len(sys.argv) == 2: name = sys.argv[1] else: print "startvpn " sys.exit() print "Starting '%s' VPN" % name print interface.getVPNConnections() print interface.getVPNConnectionProperties(name) #b.call_async(NM_SERVICE, NM_PATH, NM_VPN_SERVICE, 'activateVPNConnection', dbus.Signature('sas'), [name, []], None, None) def callback(*args): pass print interface.activateVPNConnection(name, dbus.Array([], 's'), reply_handler=callback, error_handler=callback) sys.exit()