about summary refs log tree commit diff
path: root/examples/python/dbus
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2014-07-06 02:16:10 +0200
committerMichael Biebl <biebl@debian.org>2014-07-06 02:16:10 +0200
commit33491bc4279481db8ae47213e34a6d695a0e8830 (patch)
tree097d2b0fdff3fae6885381ae5e57a182cd8cbbba /examples/python/dbus
parent59c3714a494c3b3765657c0551ad82842d98a7d2 (diff)
Imported Upstream version 0.9.10.0 upstream/0.9.10.0
Diffstat (limited to 'examples/python/dbus')
-rw-r--r--examples/python/dbus/Makefile.am13
-rw-r--r--examples/python/dbus/Makefile.in586
-rwxr-xr-xexamples/python/dbus/add-connection.py63
-rwxr-xr-xexamples/python/dbus/add-system-wifi-connection.py63
-rwxr-xr-xexamples/python/dbus/disconnect-device.py62
-rwxr-xr-xexamples/python/dbus/get-active-connection-uuids.py56
-rwxr-xr-xexamples/python/dbus/is-wwan-default.py78
-rwxr-xr-xexamples/python/dbus/list-connections.py107
-rwxr-xr-xexamples/python/dbus/list-devices.py83
-rwxr-xr-xexamples/python/dbus/nm-state.py81
-rwxr-xr-xexamples/python/dbus/show-bssids.py78
-rwxr-xr-xexamples/python/dbus/update-ip4-method.py82
-rwxr-xr-xexamples/python/dbus/update-secrets.py116
-rwxr-xr-xexamples/python/dbus/vpn.py152
14 files changed, 1620 insertions, 0 deletions
diff --git a/examples/python/dbus/Makefile.am b/examples/python/dbus/Makefile.am
new file mode 100644
index 00000000..0e884884
--- /dev/null
+++ b/examples/python/dbus/Makefile.am
@@ -0,0 +1,13 @@
+EXTRA_DIST = \
+	nm-state.py \
+	add-connection.py \
+	add-system-wifi-connection.py \
+	vpn.py \
+	update-secrets.py \
+	list-connections.py \
+	show-bssids.py \
+	disconnect-device.py \
+	get-active-connection-uuids.py \
+	list-devices.py \
+	update-ip4-method.py \
+	is-wwan-default.py
diff --git a/examples/python/dbus/Makefile.in b/examples/python/dbus/Makefile.in
new file mode 100644
index 00000000..7b543fa7
--- /dev/null
+++ b/examples/python/dbus/Makefile.in
@@ -0,0 +1,586 @@
+# Makefile.in generated by automake 1.13.4 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994-2013 Free Software Foundation, Inc.
+
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+am__is_gnu_make = test -n '$(MAKEFILE_LIST)' && test -n '$(MAKELEVEL)'
+am__make_running_with_option = \
+  case $${target_option-} in \
+      ?) ;; \
+      *) echo "am__make_running_with_option: internal error: invalid" \
+              "target option '$${target_option-}' specified" >&2; \
+         exit 1;; \
+  esac; \
+  has_opt=no; \
+  sane_makeflags=$$MAKEFLAGS; \
+  if $(am__is_gnu_make); then \
+    sane_makeflags=$$MFLAGS; \
+  else \
+    case $$MAKEFLAGS in \
+      *\\[\ \	]*) \
+        bs=\\; \
+        sane_makeflags=`printf '%s\n' "$$MAKEFLAGS" \
+          | sed "s/$$bs$$bs[$$bs $$bs	]*//g"`;; \
+    esac; \
+  fi; \
+  skip_next=no; \
+  strip_trailopt () \
+  { \
+    flg=`printf '%s\n' "$$flg" | sed "s/$$1.*$$//"`; \
+  }; \
+  for flg in $$sane_makeflags; do \
+    test $$skip_next = yes && { skip_next=no; continue; }; \
+    case $$flg in \
+      *=*|--*) continue;; \
+        -*I) strip_trailopt 'I'; skip_next=yes;; \
+      -*I?*) strip_trailopt 'I';; \
+        -*O) strip_trailopt 'O'; skip_next=yes;; \
+      -*O?*) strip_trailopt 'O';; \
+        -*l) strip_trailopt 'l'; skip_next=yes;; \
+      -*l?*) strip_trailopt 'l';; \
+      -[dEDm]) skip_next=yes;; \
+      -[JT]) skip_next=yes;; \
+    esac; \
+    case $$flg in \
+      *$$target_option*) has_opt=yes; break;; \
+    esac; \
+  done; \
+  test $$has_opt = yes
+am__make_dryrun = (target_option=n; $(am__make_running_with_option))
+am__make_keepgoing = (target_option=k; $(am__make_running_with_option))
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+subdir = examples/python/dbus
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/m4/ax_lib_readline.m4 \
+	$(top_srcdir)/m4/compiler_warnings.m4 \
+	$(top_srcdir)/m4/gettext.m4 \
+	$(top_srcdir)/m4/gnome-code-coverage.m4 \
+	$(top_srcdir)/m4/gtk-doc.m4 $(top_srcdir)/m4/iconv.m4 \
+	$(top_srcdir)/m4/intlmacosx.m4 $(top_srcdir)/m4/intltool.m4 \
+	$(top_srcdir)/m4/introspection.m4 $(top_srcdir)/m4/lib-ld.m4 \
+	$(top_srcdir)/m4/lib-link.m4 $(top_srcdir)/m4/lib-prefix.m4 \
+	$(top_srcdir)/m4/libtool.m4 $(top_srcdir)/m4/ltoptions.m4 \
+	$(top_srcdir)/m4/ltsugar.m4 $(top_srcdir)/m4/ltversion.m4 \
+	$(top_srcdir)/m4/lt~obsolete.m4 $(top_srcdir)/m4/nls.m4 \
+	$(top_srcdir)/m4/po.m4 $(top_srcdir)/m4/progtest.m4 \
+	$(top_srcdir)/m4/vapigen.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+	$(ACLOCAL_M4)
+mkinstalldirs = $(install_sh) -d
+CONFIG_HEADER = $(top_builddir)/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+AM_V_P = $(am__v_P_@AM_V@)
+am__v_P_ = $(am__v_P_@AM_DEFAULT_V@)
+am__v_P_0 = false
+am__v_P_1 = :
+AM_V_GEN = $(am__v_GEN_@AM_V@)
+am__v_GEN_ = $(am__v_GEN_@AM_DEFAULT_V@)
+am__v_GEN_0 = @echo "  GEN     " $@;
+am__v_GEN_1 = 
+AM_V_at = $(am__v_at_@AM_V@)
+am__v_at_ = $(am__v_at_@AM_DEFAULT_V@)
+am__v_at_0 = @
+am__v_at_1 = 
+SOURCES =
+DIST_SOURCES =
+am__can_run_installinfo = \
+  case $$AM_UPDATE_INFO_DIR in \
+    n|no|NO) false;; \
+    *) (install-info --version) >/dev/null 2>&1;; \
+  esac
+am__tagged_files = $(HEADERS) $(SOURCES) $(TAGS_FILES) $(LISP)
+DISTFILES = $(DIST_COMMON) $(DIST_SOURCES) $(TEXINFOS) $(EXTRA_DIST)
+ACLOCAL = @ACLOCAL@
+ALL_LINGUAS = @ALL_LINGUAS@
+AMTAR = @AMTAR@
+AM_DEFAULT_VERBOSITY = @AM_DEFAULT_VERBOSITY@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CKDB_PATH = @CKDB_PATH@
+CODE_COVERAGE_CFLAGS = @CODE_COVERAGE_CFLAGS@
+CODE_COVERAGE_ENABLED = @CODE_COVERAGE_ENABLED@
+CODE_COVERAGE_LDFLAGS = @CODE_COVERAGE_LDFLAGS@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATADIRNAME = @DATADIRNAME@
+DBUS_CFLAGS = @DBUS_CFLAGS@
+DBUS_GLIB_100_CFLAGS = @DBUS_GLIB_100_CFLAGS@
+DBUS_GLIB_100_LIBS = @DBUS_GLIB_100_LIBS@
+DBUS_LIBS = @DBUS_LIBS@
+DBUS_SYS_DIR = @DBUS_SYS_DIR@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DHCLIENT_PATH = @DHCLIENT_PATH@
+DHCPCD_PATH = @DHCPCD_PATH@
+DISTRO_NETWORK_SERVICE = @DISTRO_NETWORK_SERVICE@
+DLLTOOL = @DLLTOOL@
+DNSMASQ_PATH = @DNSMASQ_PATH@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+EGREP = @EGREP@
+EXEEXT = @EXEEXT@
+FGREP = @FGREP@
+GENHTML = @GENHTML@
+GETTEXT_MACRO_VERSION = @GETTEXT_MACRO_VERSION@
+GETTEXT_PACKAGE = @GETTEXT_PACKAGE@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_GENMARSHAL = @GLIB_GENMARSHAL@
+GLIB_LIBS = @GLIB_LIBS@
+GLIB_MAKEFILE = @GLIB_MAKEFILE@
+GLIB_MKENUMS = @GLIB_MKENUMS@
+GMSGFMT = @GMSGFMT@
+GMSGFMT_015 = @GMSGFMT_015@
+GNUTLS_CFLAGS = @GNUTLS_CFLAGS@
+GNUTLS_LIBS = @GNUTLS_LIBS@
+GREP = @GREP@
+GTKDOC_CHECK = @GTKDOC_CHECK@
+GTKDOC_DEPS_CFLAGS = @GTKDOC_DEPS_CFLAGS@
+GTKDOC_DEPS_LIBS = @GTKDOC_DEPS_LIBS@
+GTKDOC_MKPDF = @GTKDOC_MKPDF@
+GTKDOC_REBASE = @GTKDOC_REBASE@
+GUDEV_CFLAGS = @GUDEV_CFLAGS@
+GUDEV_LIBS = @GUDEV_LIBS@
+HTML_DIR = @HTML_DIR@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+INTLLIBS = @INTLLIBS@
+INTLTOOL_EXTRACT = @INTLTOOL_EXTRACT@
+INTLTOOL_MERGE = @INTLTOOL_MERGE@
+INTLTOOL_PERL = @INTLTOOL_PERL@
+INTLTOOL_UPDATE = @INTLTOOL_UPDATE@
+INTLTOOL_V_MERGE = @INTLTOOL_V_MERGE@
+INTLTOOL_V_MERGE_OPTIONS = @INTLTOOL_V_MERGE_OPTIONS@
+INTLTOOL__v_MERGE_ = @INTLTOOL__v_MERGE_@
+INTLTOOL__v_MERGE_0 = @INTLTOOL__v_MERGE_0@
+INTL_MACOSX_LIBS = @INTL_MACOSX_LIBS@
+INTROSPECTION_CFLAGS = @INTROSPECTION_CFLAGS@
+INTROSPECTION_COMPILER = @INTROSPECTION_COMPILER@
+INTROSPECTION_GENERATE = @INTROSPECTION_GENERATE@
+INTROSPECTION_GIRDIR = @INTROSPECTION_GIRDIR@
+INTROSPECTION_LIBS = @INTROSPECTION_LIBS@
+INTROSPECTION_MAKEFILE = @INTROSPECTION_MAKEFILE@
+INTROSPECTION_SCANNER = @INTROSPECTION_SCANNER@
+INTROSPECTION_TYPELIBDIR = @INTROSPECTION_TYPELIBDIR@
+IPTABLES_PATH = @IPTABLES_PATH@
+IWMX_SDK_CFLAGS = @IWMX_SDK_CFLAGS@
+IWMX_SDK_LIBS = @IWMX_SDK_LIBS@
+KERNEL_FIRMWARE_DIR = @KERNEL_FIRMWARE_DIR@
+LCOV = @LCOV@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBDL = @LIBDL@
+LIBGCRYPT_CFLAGS = @LIBGCRYPT_CFLAGS@
+LIBGCRYPT_CONFIG = @LIBGCRYPT_CONFIG@
+LIBGCRYPT_LIBS = @LIBGCRYPT_LIBS@
+LIBICONV = @LIBICONV@
+LIBINTL = @LIBINTL@
+LIBM = @LIBM@
+LIBNDP_CFLAGS = @LIBNDP_CFLAGS@
+LIBNDP_LIBS = @LIBNDP_LIBS@
+LIBNL_CFLAGS = @LIBNL_CFLAGS@
+LIBNL_LIBS = @LIBNL_LIBS@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBSOUP_CFLAGS = @LIBSOUP_CFLAGS@
+LIBSOUP_LIBS = @LIBSOUP_LIBS@
+LIBTEAMDCTL_CFLAGS = @LIBTEAMDCTL_CFLAGS@
+LIBTEAMDCTL_LIBS = @LIBTEAMDCTL_LIBS@
+LIBTOOL = @LIBTOOL@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBICONV = @LTLIBICONV@
+LTLIBINTL = @LTLIBINTL@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MANIFEST_TOOL = @MANIFEST_TOOL@
+MKDIR_P = @MKDIR_P@
+MM_GLIB_CFLAGS = @MM_GLIB_CFLAGS@
+MM_GLIB_LIBS = @MM_GLIB_LIBS@
+MOC = @MOC@
+MSGFMT = @MSGFMT@
+MSGFMT_015 = @MSGFMT_015@
+MSGMERGE = @MSGMERGE@
+NEWT_CFLAGS = @NEWT_CFLAGS@
+NEWT_LIBS = @NEWT_LIBS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+NM_MAJOR_VERSION = @NM_MAJOR_VERSION@
+NM_MICRO_VERSION = @NM_MICRO_VERSION@
+NM_MINOR_VERSION = @NM_MINOR_VERSION@
+NM_MODIFY_SYSTEM_POLICY = @NM_MODIFY_SYSTEM_POLICY@
+NM_VERSION = @NM_VERSION@
+NSS_CFLAGS = @NSS_CFLAGS@
+NSS_LIBS = @NSS_LIBS@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PKG_CONFIG = @PKG_CONFIG@
+PKG_CONFIG_LIBDIR = @PKG_CONFIG_LIBDIR@
+PKG_CONFIG_PATH = @PKG_CONFIG_PATH@
+POLKIT_CFLAGS = @POLKIT_CFLAGS@
+POLKIT_LIBS = @POLKIT_LIBS@
+POSUB = @POSUB@
+PPPD_PATH = @PPPD_PATH@
+PPPD_PLUGIN_DIR = @PPPD_PLUGIN_DIR@
+PPPOE_PATH = @PPPOE_PATH@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+READLINE_LIBS = @READLINE_LIBS@
+SED = @SED@
+SELINUX_CFLAGS = @SELINUX_CFLAGS@
+SELINUX_LIBS = @SELINUX_LIBS@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRIP = @STRIP@
+SYSTEMD_200_CFLAGS = @SYSTEMD_200_CFLAGS@
+SYSTEMD_200_LIBS = @SYSTEMD_200_LIBS@
+SYSTEMD_INHIBIT_CFLAGS = @SYSTEMD_INHIBIT_CFLAGS@
+SYSTEMD_INHIBIT_LIBS = @SYSTEMD_INHIBIT_LIBS@
+SYSTEMD_LOGIN_CFLAGS = @SYSTEMD_LOGIN_CFLAGS@
+SYSTEMD_LOGIN_LIBS = @SYSTEMD_LOGIN_LIBS@
+SYSTEM_CA_PATH = @SYSTEM_CA_PATH@
+UDEV_BASE_DIR = @UDEV_BASE_DIR@
+USE_NLS = @USE_NLS@
+UUID_CFLAGS = @UUID_CFLAGS@
+UUID_LIBS = @UUID_LIBS@
+VALGRIND_RULES = @VALGRIND_RULES@
+VAPIGEN = @VAPIGEN@
+VAPIGEN_MAKEFILE = @VAPIGEN_MAKEFILE@
+VAPIGEN_VAPIDIR = @VAPIGEN_VAPIDIR@
+VERSION = @VERSION@
+XGETTEXT = @XGETTEXT@
+XGETTEXT_015 = @XGETTEXT_015@
+XGETTEXT_EXTRA_OPTIONS = @XGETTEXT_EXTRA_OPTIONS@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_AR = @ac_ct_AR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+intltool__v_merge_options_ = @intltool__v_merge_options_@
+intltool__v_merge_options_0 = @intltool__v_merge_options_0@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+nmbinary = @nmbinary@
+nmconfdir = @nmconfdir@
+nmdatadir = @nmdatadir@
+nmrundir = @nmrundir@
+nmstatedir = @nmstatedir@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+subdirs = @subdirs@
+sysconfdir = @sysconfdir@
+systemdsystemunitdir = @systemdsystemunitdir@
+target_alias = @target_alias@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+with_dhclient = @with_dhclient@
+with_dhcpcd = @with_dhcpcd@
+with_netconfig = @with_netconfig@
+with_resolvconf = @with_resolvconf@
+with_valgrind = @with_valgrind@
+EXTRA_DIST = \
+	nm-state.py \
+	add-connection.py \
+	add-system-wifi-connection.py \
+	vpn.py \
+	update-secrets.py \
+	list-connections.py \
+	show-bssids.py \
+	disconnect-device.py \
+	get-active-connection-uuids.py \
+	list-devices.py \
+	update-ip4-method.py \
+	is-wwan-default.py
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am  $(am__configure_deps)
+	@for dep in $?; do \
+	  case '$(am__configure_deps)' in \
+	    *$$dep*) \
+	      ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+	        && { if test -f $@; then exit 0; else break; fi; }; \
+	      exit 1;; \
+	  esac; \
+	done; \
+	echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu examples/python/dbus/Makefile'; \
+	$(am__cd) $(top_srcdir) && \
+	  $(AUTOMAKE) --gnu examples/python/dbus/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+	@case '$?' in \
+	  *config.status*) \
+	    cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+	  *) \
+	    echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+	    cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+	esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+	cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+	-rm -f *.lo
+
+clean-libtool:
+	-rm -rf .libs _libs
+tags TAGS:
+
+ctags CTAGS:
+
+cscope cscopelist:
+
+
+distdir: $(DISTFILES)
+	@srcdirstrip=`echo "$(srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	topsrcdirstrip=`echo "$(top_srcdir)" | sed 's/[].[^$$\\*]/\\\\&/g'`; \
+	list='$(DISTFILES)'; \
+	  dist_files=`for file in $$list; do echo $$file; done | \
+	  sed -e "s|^$$srcdirstrip/||;t" \
+	      -e "s|^$$topsrcdirstrip/|$(top_builddir)/|;t"`; \
+	case $$dist_files in \
+	  */*) $(MKDIR_P) `echo "$$dist_files" | \
+			   sed '/\//!d;s|^|$(distdir)/|;s,/[^/]*$$,,' | \
+			   sort -u` ;; \
+	esac; \
+	for file in $$dist_files; do \
+	  if test -f $$file || test -d $$file; then d=.; else d=$(srcdir); fi; \
+	  if test -d $$d/$$file; then \
+	    dir=`echo "/$$file" | sed -e 's,/[^/]*$$,,'`; \
+	    if test -d "$(distdir)/$$file"; then \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    if test -d $(srcdir)/$$file && test $$d != $(srcdir); then \
+	      cp -fpR $(srcdir)/$$file "$(distdir)$$dir" || exit 1; \
+	      find "$(distdir)/$$file" -type d ! -perm -700 -exec chmod u+rwx {} \;; \
+	    fi; \
+	    cp -fpR $$d/$$file "$(distdir)$$dir" || exit 1; \
+	  else \
+	    test -f "$(distdir)/$$file" \
+	    || cp -p $$d/$$file "$(distdir)/$$file" \
+	    || exit 1; \
+	  fi; \
+	done
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+	@$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+	if test -z '$(STRIP)'; then \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	      install; \
+	else \
+	  $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+	    install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+	    "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'" install; \
+	fi
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+	-test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+	-test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+	@echo "This command is intended for maintainers to use"
+	@echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+	-rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+	-rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+	cscopelist-am ctags-am distclean distclean-generic \
+	distclean-libtool distdir dvi dvi-am html html-am info info-am \
+	install install-am install-data install-data-am install-dvi \
+	install-dvi-am install-exec install-exec-am install-html \
+	install-html-am install-info install-info-am install-man \
+	install-pdf install-pdf-am install-ps install-ps-am \
+	install-strip installcheck installcheck-am installdirs \
+	maintainer-clean maintainer-clean-generic mostlyclean \
+	mostlyclean-generic mostlyclean-libtool pdf pdf-am ps ps-am \
+	tags-am uninstall uninstall-am
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/examples/python/dbus/add-connection.py b/examples/python/dbus/add-connection.py
new file mode 100755
index 00000000..6df14c10
--- /dev/null
+++ b/examples/python/dbus/add-connection.py
@@ -0,0 +1,63 @@
+#!/usr/bin/env 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) 2010 - 2012 Red Hat, Inc.
+#
+
+#
+# This example adds a new ethernet connection via AddConnection() D-Bus call.
+#
+# Configuration settings are described at
+# https://developer.gnome.org/NetworkManager/0.9/ref-settings.html
+#
+
+import socket, struct, dbus, uuid
+
+# Helper functions
+def ip_to_int(ip_string):
+    return struct.unpack("=I", socket.inet_aton(ip_string))[0]
+
+def int_to_ip(ip_int):
+    return socket.inet_ntoa(struct.pack("=I", ip_int))
+
+s_wired = dbus.Dictionary({'duplex': 'full'})
+s_con = dbus.Dictionary({
+            'type': '802-3-ethernet',
+            'uuid': str(uuid.uuid4()),
+            'id': 'MyConnectionExample'})
+
+addr1 = dbus.Array([ip_to_int("10.1.2.3"), dbus.UInt32(8L), ip_to_int("10.1.2.1")], signature=dbus.Signature('u'))
+s_ip4 = dbus.Dictionary({
+            'addresses': dbus.Array([addr1], signature=dbus.Signature('au')),
+            'method': 'manual'})
+
+s_ip6 = dbus.Dictionary({'method': 'ignore'})
+
+con = dbus.Dictionary({
+    '802-3-ethernet': s_wired,
+    'connection': s_con,
+    'ipv4': s_ip4,
+    'ipv6': s_ip6})
+
+
+print "Creating connection:", s_con['id'], "-", s_con['uuid']
+
+bus = dbus.SystemBus()
+proxy = bus.get_object("org.freedesktop.NetworkManager", "/org/freedesktop/NetworkManager/Settings")
+settings = dbus.Interface(proxy, "org.freedesktop.NetworkManager.Settings")
+
+settings.AddConnection(con)
+
diff --git a/examples/python/dbus/add-system-wifi-connection.py b/examples/python/dbus/add-system-wifi-connection.py
new file mode 100755
index 00000000..ff390821
--- /dev/null
+++ b/examples/python/dbus/add-system-wifi-connection.py
@@ -0,0 +1,63 @@
+#!/usr/bin/env 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) 2011 Red Hat, Inc.
+#
+
+import dbus
+
+def path_to_value(path):
+    return dbus.ByteArray("file://" + path + "\0")
+
+s_con = dbus.Dictionary({
+    'type': '802-11-wireless',
+    'uuid': '7371bb78-c1f7-42a3-a9db-5b9566e8ca07',
+    'id': 'My Wifi'})
+
+s_wifi = dbus.Dictionary({
+    'ssid': dbus.ByteArray("homewifi"),
+    'security': '802-11-wireless-security'})
+
+s_wsec = dbus.Dictionary({'key-mgmt': 'wpa-eap'})
+
+s_8021x = dbus.Dictionary({
+    'eap': ['tls'],
+    'identity': 'Bill Smith',
+    'client-cert': path_to_value("/some/place/client.pem"),
+    'ca-cert': path_to_value("/some/place/ca-cert.pem"),
+    'private-key': path_to_value("/some/place/privkey.pem"),
+    'private-key-password': "12345testing"})
+
+s_ip4 = dbus.Dictionary({'method': 'auto'})
+s_ip6 = dbus.Dictionary({'method': 'ignore'})
+
+con = dbus.Dictionary({
+    'connection': s_con,
+    '802-11-wireless': s_wifi,
+    '802-11-wireless-security': s_wsec,
+    '802-1x': s_8021x,
+    'ipv4': s_ip4,
+    'ipv6': s_ip6
+     })
+
+
+bus = dbus.SystemBus()
+
+proxy = bus.get_object("org.freedesktop.NetworkManager", "/org/freedesktop/NetworkManager/Settings")
+settings = dbus.Interface(proxy, "org.freedesktop.NetworkManager.Settings")
+
+settings.AddConnection(con)
+
diff --git a/examples/python/dbus/disconnect-device.py b/examples/python/dbus/disconnect-device.py
new file mode 100755
index 00000000..85afa97b
--- /dev/null
+++ b/examples/python/dbus/disconnect-device.py
@@ -0,0 +1,62 @@
+#!/usr/bin/env python
+# -*- Mode: python; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
+#
+# 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) 2010 Red Hat, Inc.
+#
+
+import dbus, sys
+
+# This example takes a device interface name as a parameter and tells
+# NetworkManager to disconnect that device, closing down any network
+# connection it may have
+
+if len(sys.argv) != 2:
+    raise Exception("Usage: %s <interface>" % sys.argv[0])
+
+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")
+
+dpath = None
+
+# Find the device the user wants to disconnect
+devices = manager.GetDevices()
+for d in devices:
+    dev_proxy = bus.get_object("org.freedesktop.NetworkManager", d)
+    prop_iface = dbus.Interface(dev_proxy, "org.freedesktop.DBus.Properties")
+    iface = prop_iface.Get("org.freedesktop.NetworkManager.Device", "Interface")
+    if iface == sys.argv[1]:
+        dpath = d
+        break
+
+if not dpath or not len(dpath):
+    raise Exception("NetworkManager knows nothing about %s" % sys.argv[1])
+
+dev_proxy = bus.get_object("org.freedesktop.NetworkManager", dpath)
+dev_iface = dbus.Interface(dev_proxy, "org.freedesktop.NetworkManager.Device")
+prop_iface = dbus.Interface(dev_proxy, "org.freedesktop.DBus.Properties")
+
+# Make sure the device is connected before we try to disconnect it
+state = prop_iface.Get("org.freedesktop.NetworkManager.Device", "State")
+if state <= 3:
+    raise Exception("Device %s isn't connected" % sys.argv[1])
+
+# Tell NM to disconnect it
+dev_iface.Disconnect()
+
diff --git a/examples/python/dbus/get-active-connection-uuids.py b/examples/python/dbus/get-active-connection-uuids.py
new file mode 100755
index 00000000..6fe93d05
--- /dev/null
+++ b/examples/python/dbus/get-active-connection-uuids.py
@@ -0,0 +1,56 @@
+#!/usr/bin/env python
+# -*- Mode: python; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
+#
+# 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) 2010 Red Hat, Inc.
+#
+
+import dbus, sys
+
+# This example takes a device interface name as a parameter and tells
+# NetworkManager to disconnect that device, closing down any network
+# connection it may have
+
+bus = dbus.SystemBus()
+
+# Get a proxy for the base NetworkManager object
+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 = 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) - %s" % (settings['connection']['id'], uuid, settings['connection']['type']) 
+
+if len(active) == 0:
+    print "No active connections"
+
diff --git a/examples/python/dbus/is-wwan-default.py b/examples/python/dbus/is-wwan-default.py
new file mode 100755
index 00000000..6131cda1
--- /dev/null
+++ b/examples/python/dbus/is-wwan-default.py
@@ -0,0 +1,78 @@
+#!/usr/bin/env python
+# -*- Mode: python; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
+#
+# 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) 2011 - 2012 Red Hat, Inc.
+#
+
+import dbus, sys
+
+# This example indicates whether the default network connection is known to be WWAN
+
+NM_DEVICE_TYPE_MODEM = 8
+NM_DEVICE_TYPE_BLUETOOTH = 5
+NM_SERVICE_NAME = "org.freedesktop.NetworkManager"
+NM_MANAGER_IFACE = "org.freedesktop.NetworkManager"
+DBUS_PROPS_IFACE = "org.freedesktop.DBus.Properties"
+
+bus = dbus.SystemBus()
+
+# Exit early if NetworkManager is not running
+proxy = bus.get_object("org.freedesktop.DBus", "/org/freedesktop/DBus")
+busdaemon = dbus.Interface(proxy, "org.freedesktop.DBus")
+if not busdaemon.NameHasOwner(NM_SERVICE_NAME):
+    print "NetworkManager not running"
+    sys.exit(1)
+
+# Get a proxy for the NetworkManager object
+proxy = bus.get_object(NM_SERVICE_NAME, "/org/freedesktop/NetworkManager")
+manager = dbus.Interface(proxy, NM_MANAGER_IFACE)
+props = dbus.Interface(proxy, DBUS_PROPS_IFACE)
+
+default_is_wwan = False
+
+# Look through all active network connections for the default one
+active = props.Get(NM_MANAGER_IFACE, "ActiveConnections")
+for a in active:
+    a_proxy = bus.get_object(NM_SERVICE_NAME, a)
+    a_props = dbus.Interface(a_proxy, DBUS_PROPS_IFACE)
+    all_props = a_props.GetAll("org.freedesktop.NetworkManager.Connection.Active")
+
+    # Ignore this network connection if it's not default for IPv4 or IPv6
+    if all_props["Default"] == False and all_props["Default6"] == False:
+        continue
+
+    # Shortcut: check for Type property (only present in NM 0.9.9+)
+    try:
+        ctype = all_props["Type"]
+        if ctype in ["gsm", "cdma", "bluetooth"]:
+            default_is_wwan = True
+            break
+    except KeyError:
+        # Fall back to checking the type of the network connection's device
+        dev_path = all_props["Devices"][0]
+        dev_proxy = bus.get_object(NM_SERVICE_NAME, dev_path)
+        dev_props = dbus.Interface(dev_proxy, DBUS_PROPS_IFACE)
+        devtype = dev_props.Get("org.freedesktop.NetworkManager.Device", "DeviceType")
+        if devtype == NM_DEVICE_TYPE_MODEM or devtype == NM_DEVICE_TYPE_BLUETOOTH:
+            default_is_wwan = True
+            break
+
+if default_is_wwan:
+    print "WWAN is default"
+else:
+    print "WWAN is not default"
+
diff --git a/examples/python/dbus/list-connections.py b/examples/python/dbus/list-connections.py
new file mode 100755
index 00000000..120b744a
--- /dev/null
+++ b/examples/python/dbus/list-connections.py
@@ -0,0 +1,107 @@
+#!/usr/bin/env 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) 2010 - 2011 Red Hat, Inc.
+#
+
+import dbus
+
+# This example asks settings service for all configured connections.
+# It also asks for secrets, demonstrating the mechanism the secrets can
+# be handled with.
+
+bus = dbus.SystemBus()
+
+def merge_secrets(proxy, config, setting_name):
+    try:
+        # returns a dict of dicts mapping name::setting, where setting is a dict
+        # mapping key::value.  Each member of the 'setting' dict is a secret
+        secrets = proxy.GetSecrets(setting_name)
+
+        # Copy the secrets into our connection config
+        for setting in secrets:
+            for key in secrets[setting]:
+                config[setting_name][key] = secrets[setting][key]
+    except Exception, e:
+        pass
+
+def dict_to_string(d, indent):
+    # Try to trivially translate a dictionary's elements into nice string
+    # formatting.
+    dstr = ""
+    for key in d:
+        val = d[key]
+        str_val = ""
+        add_string = True
+        if type(val) == type(dbus.Array([])):
+            for elt in val:
+                if type(elt) == type(dbus.Byte(1)):
+                    str_val += "%s " % int(elt)
+                elif type(elt) == type(dbus.String("")):
+                    str_val += "%s" % elt
+        elif type(val) == type(dbus.Dictionary({})):
+            dstr += dict_to_string(val, indent + "    ")
+            add_string = False
+        else:
+            str_val = val
+        if add_string:
+            dstr += "%s%s: %s\n" % (indent, key, str_val)
+    return dstr
+
+def connection_to_string(config):
+    # dump a connection configuration to a the console
+    for setting_name in config:
+        print "        Setting: %s" % setting_name
+        print dict_to_string(config[setting_name], "            ")
+    print ""
+
+
+def print_connections():
+    # Ask the settings service for the list of connections it provides
+    service_name = "org.freedesktop.NetworkManager"
+    proxy = bus.get_object(service_name, "/org/freedesktop/NetworkManager/Settings")
+    settings = dbus.Interface(proxy, "org.freedesktop.NetworkManager.Settings")
+    connection_paths = settings.ListConnections()
+
+    # List each connection's name, UUID, and type
+    for path in connection_paths:
+        con_proxy = bus.get_object(service_name, path)
+        settings_connection = dbus.Interface(con_proxy, "org.freedesktop.NetworkManager.Settings.Connection")
+        config = settings_connection.GetSettings()
+
+        # Now get secrets too; we grab the secrets for each type of connection
+        # (since there isn't a "get all secrets" call because most of the time
+        # you only need 'wifi' secrets or '802.1x' secrets, not everything) and
+        # merge that into the configuration data
+        merge_secrets(settings_connection, config, '802-11-wireless')
+        merge_secrets(settings_connection, config, '802-11-wireless-security')
+        merge_secrets(settings_connection, config, '802-1x')
+        merge_secrets(settings_connection, config, 'gsm')
+        merge_secrets(settings_connection, config, 'cdma')
+        merge_secrets(settings_connection, config, 'ppp')
+
+        # Get the details of the 'connection' setting
+        s_con = config['connection']
+        print "    name: %s" % s_con['id']
+        print "    uuid: %s" % s_con['uuid']
+        print "    type: %s" % s_con['type']
+        print "    ------------------------------------------"
+        connection_to_string(config)
+
+    print ""
+
+print_connections()
+
diff --git a/examples/python/dbus/list-devices.py b/examples/python/dbus/list-devices.py
new file mode 100755
index 00000000..b8e0058b
--- /dev/null
+++ b/examples/python/dbus/list-devices.py
@@ -0,0 +1,83 @@
+#!/usr/bin/env python
+# -*- Mode: python; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
+#
+# 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) 2011 - 2012 Red Hat, Inc.
+#
+
+import dbus, sys
+
+# This example lists basic information about network interfaces known to NM
+
+# For the types see include/NetworkManager.h
+devtypes = { 1: "Ethernet",
+             2: "Wi-Fi",
+             5: "Bluetooth",
+             6: "OLPC",
+             7: "WiMAX",
+             8: "Modem",
+             9: "InfiniBand",
+             10: "Bond",
+             11: "VLAN",
+             12: "ADSL",
+             13: "Bridge",
+             14: "Generic",
+             15: "Team"
+           }
+
+states = { 0: "Unknown",
+           10: "Unmanaged",
+           20: "Unavailable",
+           30: "Disconnected",
+           40: "Prepare",
+           50: "Config",
+           60: "Need Auth",
+           70: "IP Config",
+           80: "IP Check",
+           90: "Secondaries",
+           100: "Activated",
+           110: "Deactivating",
+           120: "Failed" }
+
+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")
+
+# Get all devices known to NM and print their properties
+devices = manager.GetDevices()
+for d in devices:
+    dev_proxy = bus.get_object("org.freedesktop.NetworkManager", d)
+    prop_iface = dbus.Interface(dev_proxy, "org.freedesktop.DBus.Properties")
+    props = prop_iface.GetAll("org.freedesktop.NetworkManager.Device")
+    print "============================"
+
+    print "Interface: %s" % props['Interface']
+    try: 
+        devtype = devtypes[props['DeviceType']]
+    except KeyError:
+        devtype = "Unknown"
+    print "Type: %s" % devtype
+
+    print "Driver: %s" % props['Driver']
+
+    try:
+        state = states[props['State']]
+    except KeyError:
+        state = "Unknown"
+    print "State: %s" % state
+
diff --git a/examples/python/dbus/nm-state.py b/examples/python/dbus/nm-state.py
new file mode 100755
index 00000000..94fa6309
--- /dev/null
+++ b/examples/python/dbus/nm-state.py
@@ -0,0 +1,81 @@
+#!/usr/bin/env 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) 2010 - 2012 Red Hat, Inc.
+#
+
+import dbus
+
+# Device states from include/NetworkManager.h
+device_states = { 0: "Unknown",
+                 10: "Unmanaged",
+                 20: "Unavailable",
+                 30: "Disconnected",
+                 40: "Prepare",
+                 50: "Config",
+                 60: "Need Auth",
+                 70: "IP Config",
+                 80: "IP Check",
+                 90: "Secondaries",
+                 100: "Activated",
+                 110: "Deactivating",
+                 120: "Failed" }
+
+bus = dbus.SystemBus()
+
+proxy = bus.get_object("org.freedesktop.NetworkManager", "/org/freedesktop/NetworkManager")
+manager = dbus.Interface(proxy, "org.freedesktop.NetworkManager")
+
+# Get device-specific state
+devices = manager.GetDevices()
+for d in devices:
+    dev_proxy = bus.get_object("org.freedesktop.NetworkManager", d)
+    prop_iface = dbus.Interface(dev_proxy, "org.freedesktop.DBus.Properties")
+
+    # Get the device's current state and interface name
+    state = prop_iface.Get("org.freedesktop.NetworkManager.Device", "State")
+    name = prop_iface.Get("org.freedesktop.NetworkManager.Device", "Interface")
+
+    # and print them out
+    if state == 100 :   # activated
+        print "Device %s is activated" % name
+    else:
+        print "Device %s is not activated (state=%s)" % (name, device_states[state])
+
+
+# Get active connection state
+manager_prop_iface = dbus.Interface(proxy, "org.freedesktop.DBus.Properties")
+active = manager_prop_iface.Get("org.freedesktop.NetworkManager", "ActiveConnections")
+for a in active:
+    ac_proxy = bus.get_object("org.freedesktop.NetworkManager", a)
+    prop_iface = dbus.Interface(ac_proxy, "org.freedesktop.DBus.Properties")
+    state = prop_iface.Get("org.freedesktop.NetworkManager.Connection.Active", "State")
+
+    # Connections in NM are a collection of settings that describe everything
+    # needed to connect to a specific network.  Lets get those details so we
+    # can find the user-readable name of the connection.
+    con_path = prop_iface.Get("org.freedesktop.NetworkManager.Connection.Active", "Connection")
+    service_proxy = bus.get_object("org.freedesktop.NetworkManager", con_path)
+    con_iface = dbus.Interface(service_proxy, "org.freedesktop.NetworkManager.Settings.Connection")
+    con_details = con_iface.GetSettings()
+    con_name = con_details['connection']['id']
+
+    if state == 2:   # activated
+        print "Connection '%s' is activated" % con_name
+    else:
+        print "Connection '%s' is activating" % con_name
+
+
diff --git a/examples/python/dbus/show-bssids.py b/examples/python/dbus/show-bssids.py
new file mode 100755
index 00000000..505e3d35
--- /dev/null
+++ b/examples/python/dbus/show-bssids.py
@@ -0,0 +1,78 @@
+#!/usr/bin/env 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) 2010 Red Hat, Inc.
+#
+
+
+# This example prints out all the AP BSSIDs that all WiFi devices on the
+# machine can see.  Useful for location-based services like Skyhook that
+# can geolocate you based on the APs you can see.
+
+import dbus
+
+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")
+
+all_aps = []
+
+print "Associated APs:"
+
+# Get all network devices
+devices = manager.GetDevices()
+for d in devices:
+    dev_proxy = bus.get_object("org.freedesktop.NetworkManager", d)
+    prop_iface = dbus.Interface(dev_proxy, "org.freedesktop.DBus.Properties")
+
+    # Make sure the device is enabled before we try to use it
+    state = prop_iface.Get("org.freedesktop.NetworkManager.Device", "State")
+    if state <= 2:
+        continue
+
+    # Get device's type; we only want wifi devices
+    iface = prop_iface.Get("org.freedesktop.NetworkManager.Device", "Interface")
+    dtype = prop_iface.Get("org.freedesktop.NetworkManager.Device", "DeviceType")
+    if dtype == 2:   # WiFi
+        # Get a proxy for the wifi interface
+        wifi_iface = dbus.Interface(dev_proxy, "org.freedesktop.NetworkManager.Device.Wireless")
+        wifi_prop_iface = dbus.Interface(dev_proxy, "org.freedesktop.DBus.Properties")
+
+        # Get the associated AP's object path
+        connected_path = wifi_prop_iface.Get("org.freedesktop.NetworkManager.Device.Wireless", "ActiveAccessPoint")
+
+        # Get all APs the card can see
+        aps = wifi_iface.GetAccessPoints()
+        for path in aps:
+            ap_proxy = bus.get_object("org.freedesktop.NetworkManager", path)
+            ap_prop_iface = dbus.Interface(ap_proxy, "org.freedesktop.DBus.Properties")
+            bssid = ap_prop_iface.Get("org.freedesktop.NetworkManager.AccessPoint", "HwAddress")
+
+            # Cache the BSSID
+            if not bssid in all_aps:
+                all_aps.append(bssid)
+
+            # Print the current AP's BSSID
+            if path == connected_path:
+                print "%s (%s)" % (bssid, iface)
+
+# and print out all APs the wifi devices can see
+print"\nFound APs:"
+for bssid in all_aps:
+    print bssid
+
diff --git a/examples/python/dbus/update-ip4-method.py b/examples/python/dbus/update-ip4-method.py
new file mode 100755
index 00000000..243738c5
--- /dev/null
+++ b/examples/python/dbus/update-ip4-method.py
@@ -0,0 +1,82 @@
+#!/usr/bin/env python
+# -*- Mode: Python; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*-
+#
+# 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) 2014 Red Hat, Inc.
+#
+
+#
+# This example updates a connection's IPv4 method with the Update() method.
+#
+# Configuration settings are described at
+# https://developer.gnome.org/NetworkManager/0.9/ref-settings.html
+#
+
+import socket, struct, dbus, sys
+
+def ip_to_int(ip_string):
+    return struct.unpack("=I", socket.inet_aton(ip_string))[0]
+
+
+if len(sys.argv) < 3:
+    print "Usage: %s <uuid> <auto|static> [address prefix gateway]" % sys.argv[0]
+    sys.exit(1)
+
+method = sys.argv[2]
+if method == "static" and len(sys.argv) < 5:
+    print "Usage: %s %s static address prefix [gateway]" % (sys.argv[0], sys.argv[1])
+    sys.exit(1)
+
+# Convert method to NM method
+if method == "static":
+    method = "manual"
+
+bus = dbus.SystemBus()
+proxy = bus.get_object("org.freedesktop.NetworkManager", "/org/freedesktop/NetworkManager/Settings")
+settings = dbus.Interface(proxy, "org.freedesktop.NetworkManager.Settings")
+
+for c_path in settings.ListConnections():
+    c_proxy = bus.get_object("org.freedesktop.NetworkManager", c_path)
+    c_obj = dbus.Interface(c_proxy, "org.freedesktop.NetworkManager.Settings.Connection")
+    c_settings = c_obj.GetSettings()
+
+    # Look for the requested connection UUID
+    if c_settings['connection']['uuid'] != sys.argv[1]:
+        continue
+
+    # add IPv4 setting if it doesn't yet exist
+    if not c_settings.has_key('ipv4'):
+        c_settings['ipv4'] = {}
+
+    # set the method and change properties
+    c_settings['ipv4']['method'] = method
+    if method == "auto":
+        # remove addresses
+    	c_settings['ipv4']['addresses'] = dbus.Array([], signature=dbus.Signature('au'))
+    elif method == "manual":
+        # Add the static IP address, prefix, and (optional) gateway
+        gw = 0
+        if len(sys.argv) == 6:
+            gw = ip_to_int(sys.argv[5])
+        addr = dbus.Array([ip_to_int(sys.argv[3]), dbus.UInt32(int(sys.argv[4])), gw], signature=dbus.Signature('u'))
+        c_settings['ipv4']['addresses'] = dbus.Array([addr], signature=dbus.Signature('au'))
+
+    # Save all the updated settings back to NetworkManager
+    c_obj.Update(c_settings)
+    break
+
+sys.exit(0)
+
diff --git a/examples/python/dbus/update-secrets.py b/examples/python/dbus/update-secrets.py
new file mode 100755
index 00000000..13cac1b0
--- /dev/null
+++ b/examples/python/dbus/update-secrets.py
@@ -0,0 +1,116 @@
+#!/usr/bin/env 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) 2011 - 2012 Red Hat, Inc.
+#
+
+#
+# The example shows how to update secrets in a connection by means of D-Bus
+# Update() method. The method replaces all previous settings with new ones
+# including possible secrets.
+# So, we get all settings using GetSettings() and then find out what secrets
+# are associated with the connection using GetSecrets(), ask for new secret 
+# values, and add them to the settings that we pass to Update().
+#
+
+import dbus
+import sys
+
+bus = dbus.SystemBus()
+
+def change_secrets_in_one_setting(proxy, config, setting_name):
+    # Add new secret values to the connection config
+    try:
+        # returns a dict of dicts mapping name::setting, where setting is a dict
+        # mapping key::value.  Each member of the 'setting' dict is a secret
+        secrets = proxy.GetSecrets(setting_name)
+        print "Current secrets:", secrets
+
+        # Ask user for new secrets and put them into our connection config
+        for setting in secrets:
+            for key in secrets[setting]:
+                new_secret = raw_input ("Enter new secret for '%s' in '%s': " % (key, setting))
+                config[setting_name][key] = new_secret
+    except Exception, e:
+        #code = str(e).split(':')[0]
+        #print "Exception:", str(e)
+        pass
+
+def change_secrets(con_path, config):
+    # Get existing secrets; we grab the secrets for each type of connection
+    # (since there isn't a "get all secrets" call because most of the time
+    # you only need 'wifi' secrets or '802.1x' secrets, not everything) and
+    # set new values into the connection settings (config)
+    con_proxy = bus.get_object("org.freedesktop.NetworkManager", con_path)
+    connection_secrets = dbus.Interface(con_proxy, "org.freedesktop.NetworkManager.Settings.Connection")
+    change_secrets_in_one_setting(connection_secrets, config, '802-11-wireless')
+    change_secrets_in_one_setting(connection_secrets, config, '802-11-wireless-security')
+    change_secrets_in_one_setting(connection_secrets, config, '802-1x')
+    change_secrets_in_one_setting(connection_secrets, config, 'gsm')
+    change_secrets_in_one_setting(connection_secrets, config, 'cdma')
+    change_secrets_in_one_setting(connection_secrets, config, 'ppp')
+
+def find_connection(name):
+    # Ask the settings service for the list of connections it provides
+    global con_path
+    proxy = bus.get_object("org.freedesktop.NetworkManager", "/org/freedesktop/NetworkManager/Settings")
+    settings = dbus.Interface(proxy, "org.freedesktop.NetworkManager.Settings")
+    connection_paths = settings.ListConnections()
+
+    # Get the settings and look for connection's name
+    for path in connection_paths:
+        con_proxy = bus.get_object("org.freedesktop.NetworkManager", path)
+        connection = dbus.Interface(con_proxy, "org.freedesktop.NetworkManager.Settings.Connection")
+        try:
+            config = connection.GetSettings()
+        except Exception, e:
+            pass
+
+        # Find connection by the id
+        s_con = config['connection']
+        if name == s_con['id']:
+            con_path = path
+            return config
+        # Find connection by the uuid
+        if name == s_con['uuid']:
+            con_path = path
+            return config
+
+    return None
+
+
+# Main part
+con_path = None
+
+if len(sys.argv) != 2:
+    sys.exit("Usage: %s <connection name/uuid>" % sys.argv[0])
+
+# Find the connection
+con = find_connection(sys.argv[1])
+
+print "Connection found: ", con_path
+
+if con:
+    # Obtain new secrets and put then into connection dict 
+    change_secrets(con_path, con)
+
+    # Change the connection with Update()
+    proxy = bus.get_object("org.freedesktop.NetworkManager", con_path)
+    settings = dbus.Interface(proxy, "org.freedesktop.NetworkManager.Settings.Connection")
+    settings.Update(con)
+else:
+    sys.exit("No connection '%s' found" % sys.argv[1])
+
diff --git a/examples/python/dbus/vpn.py b/examples/python/dbus/vpn.py
new file mode 100755
index 00000000..59773a61
--- /dev/null
+++ b/examples/python/dbus/vpn.py
@@ -0,0 +1,152 @@
+#!/usr/bin/env 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.NetworkManager', '/org/freedesktop/NetworkManager/Settings')
+    iface = dbus.Interface(proxy, dbus_interface='org.freedesktop.NetworkManager.Settings')
+    return iface.ListConnections()
+
+
+def get_connection_by_uuid(uuid):
+    bus = dbus.SystemBus()
+    for c in get_connections():
+        proxy = bus.get_object('org.freedesktop.NetworkManager', c)
+        iface = dbus.Interface(proxy, dbus_interface='org.freedesktop.NetworkManager.Settings.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.NetworkManager', c)
+        iface = dbus.Interface(proxy, dbus_interface='org.freedesktop.NetworkManager.Settings.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.NetworkManager', path)
+        iface = dbus.Interface(proxy, dbus_interface='org.freedesktop.NetworkManager.Settings.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.NetworkManager',
+                             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()
+