summary refs log tree commit diff
path: root/examples/python/vpn.py
diff options
context:
space:
mode:
Diffstat (limited to 'examples/python/vpn.py')
-rw-r--r--examples/python/vpn.py152
1 files changed, 0 insertions, 152 deletions
diff --git a/examples/python/vpn.py b/examples/python/vpn.py
deleted file mode 100644
index 4b4057fc..00000000
--- a/examples/python/vpn.py
+++ /dev/null
@@ -1,152 +0,0 @@
-#!/usr/bin/python
-#
-# This program is free software; you can redistribute it and/or modify
-# it under the terms of the GNU General Public License as published by
-# the Free Software Foundation; either version 2 of the License, or
-# (at your option) any later version.
-#
-# This program is distributed in the hope that it will be useful,
-# but WITHOUT ANY WARRANTY; without even the implied warranty of
-# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
-# GNU General Public License for more details.
-#
-# You should have received a copy of the GNU General Public License along
-# with this program; if not, write to the Free Software Foundation, Inc.,
-# 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
-#
-# Copyright (C) 2009 Novell, Inc.
-# Copyright (C) 2009 Red Hat, Inc.
-#
-
-# Run this script without any arguments to list the available connection uuids.
-
-# The uuid of the connection to activate
-CONNECTION_UUID="ac6dc9b2-85ef-4311-83d8-add5d7db3f59"
-
-# UID to use. Note that NM only allows the owner of the connection to activate it.
-#UID=1000
-UID=0
-
-import sys
-import os
-import dbus
-from dbus.mainloop.glib import DBusGMainLoop
-import gobject
-
-DBusGMainLoop(set_as_default=True)
-
-def get_connections():
-    bus = dbus.SystemBus()
-    proxy = bus.get_object('org.freedesktop.NetworkManagerUserSettings', '/org/freedesktop/NetworkManagerSettings')
-    iface = dbus.Interface(proxy, dbus_interface='org.freedesktop.NetworkManagerSettings')
-    return iface.ListConnections()
-
-
-def get_connection_by_uuid(uuid):
-    bus = dbus.SystemBus()
-    for c in get_connections():
-        proxy = bus.get_object('org.freedesktop.NetworkManagerUserSettings', c)
-        iface = dbus.Interface(proxy, dbus_interface='org.freedesktop.NetworkManagerSettings.Connection')
-        settings = iface.GetSettings()
-        if settings['connection']['uuid'] == uuid:
-            return c
-
-    return None
-
-
-def list_uuids():
-    bus = dbus.SystemBus()
-    for c in get_connections():
-        proxy = bus.get_object('org.freedesktop.NetworkManagerUserSettings', c)
-        iface = dbus.Interface(proxy, dbus_interface='org.freedesktop.NetworkManagerSettings.Connection')
-        settings = iface.GetSettings()
-        conn = settings['connection']
-        print "%s - %s (%s)" % (conn['uuid'], conn['id'], conn['type'])
-
-
-def get_active_connection_path(uuid):
-    bus = dbus.SystemBus()
-    proxy = bus.get_object('org.freedesktop.NetworkManager', '/org/freedesktop/NetworkManager')
-    iface = dbus.Interface(proxy, dbus_interface='org.freedesktop.DBus.Properties')
-    active_connections = iface.Get('org.freedesktop.NetworkManager', 'ActiveConnections')
-    all_connections = get_connections()
-
-    for a in active_connections:
-        proxy = bus.get_object('org.freedesktop.NetworkManager', a)
-        iface = dbus.Interface(proxy, dbus_interface='org.freedesktop.DBus.Properties')
-        path = iface.Get('org.freedesktop.NetworkManager.Connection.Active', 'Connection')
-
-        proxy = bus.get_object('org.freedesktop.NetworkManagerUserSettings', path)
-        iface = dbus.Interface(proxy, dbus_interface='org.freedesktop.NetworkManagerSettings.Connection')
-        settings = iface.GetSettings()
-
-        if settings['connection']['uuid'] == uuid:
-            return a
-
-    return None
-
-
-def get_wifi_device_path():
-    bus = dbus.SystemBus()
-    proxy = bus.get_object('org.freedesktop.NetworkManager', '/org/freedesktop/NetworkManager')
-    iface = dbus.Interface(proxy, dbus_interface='org.freedesktop.NetworkManager')
-    devices = iface.GetDevices()
-    for d in devices:
-        proxy = bus.get_object('org.freedesktop.NetworkManager', d)
-        iface = dbus.Interface(proxy, dbus_interface='org.freedesktop.DBus.Properties')
-        devtype = iface.Get('org.freedesktop.NetworkManager.Device', 'DeviceType')
-        if devtype == 2:
-            return d
-    return None
-
-def activate_connection(connection_path, device_path):
-
-    def reply_handler(opath):
-    	print "Success: device activating"
-        sys.exit(0)
-
-    def error_handler(*args):
-    	print "Error activating device: %s" % args
-        sys.exit(1)
-
-    bus = dbus.SystemBus()
-    proxy = bus.get_object('org.freedesktop.NetworkManager', '/org/freedesktop/NetworkManager')
-    iface = dbus.Interface(proxy, dbus_interface='org.freedesktop.NetworkManager')
-    iface.ActivateConnection('org.freedesktop.NetworkManagerUserSettings',
-                             connection_path,
-                             device_path, 
-                             "/",
-                             reply_handler=reply_handler,
-                             error_handler=error_handler)
-
-
-# Change the UID first if required
-if UID != 0:
-    os.setuid(UID)
-
-# Are we configured?
-if not len(CONNECTION_UUID):
-    print "missing connection UUID"
-    sys.exit(0)
-
-connection_path = get_connection_by_uuid(CONNECTION_UUID)
-if not connection_path:
-    # Configured VPN connection is not known to NM, check CONNECTION_UUID.
-    print "couldn't find the connection"
-    sys.exit(1)
-
-device_path = get_wifi_device_path()
-if not device_path:
-    print "no wifi device found"
-    sys.exit(1)
-
-# Is it already activated?
-if get_active_connection_path(CONNECTION_UUID):
-    print "already connected"
-    sys.exit(0)
-
-print "Activating connection..."
-activate_connection(connection_path, device_path)
-loop = gobject.MainLoop()
-loop.run()
-