summaryrefslogtreecommitdiff
path: root/examples/python
diff options
context:
space:
mode:
authorBeniamino Galvani <bgalvani@redhat.com>2016-10-31 13:59:59 +0100
committerBeniamino Galvani <bgalvani@redhat.com>2016-12-12 22:06:24 +0100
commit8af465d579bab67b1db4e7be3cb6f1bfefae8240 (patch)
tree3ce3330bfa5fb2c004b3d2b573bc21a575e85f90 /examples/python
parent20bf5ce35907e2a59fd1f1f9595b8eb202facc0f (diff)
downloadNetworkManager-8af465d579bab67b1db4e7be3cb6f1bfefae8240.tar.gz
examples: add DNS example with python and GObject introspection
Diffstat (limited to 'examples/python')
-rwxr-xr-xexamples/python/gi/dns.py63
1 files changed, 63 insertions, 0 deletions
diff --git a/examples/python/gi/dns.py b/examples/python/gi/dns.py
new file mode 100755
index 0000000000..f242dbef39
--- /dev/null
+++ b/examples/python/gi/dns.py
@@ -0,0 +1,63 @@
+#!/usr/bin/env python
+#
+# vim: ft=python ts=4 sts=4 sw=4 et ai
+# -*- 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) 2016 Red Hat, Inc.
+#
+
+import sys
+import gi
+gi.require_version('NM', '1.0')
+from gi.repository import GLib, NM
+
+# This example shows how to monitor the DNS configuration
+
+main_loop = None
+
+def handle_config(config):
+ print " ---- new configuration ----"
+ for entry in config:
+ print " * servers: %s" % ', '.join(map(str, entry.get_nameservers()))
+
+ domains = entry.get_domains()
+ if domains and domains[0]:
+ print " domains: %s" % ', '.join(map(str, domains))
+
+ if entry.get_interface():
+ print " interface: %s" % entry.get_interface()
+
+ print " priority: %d" % entry.get_priority()
+
+ if entry.get_vpn():
+ print " vpn: yes"
+
+ print ""
+
+def dns_config_changed(self, property):
+ handle_config(self.get_dns_configuration())
+
+main_loop = None
+
+if __name__ == "__main__":
+ c = NM.Client.new(None)
+ c.connect("notify::dns-configuration", dns_config_changed)
+
+ handle_config(c.get_dns_configuration())
+
+ main_loop = GLib.MainLoop()
+ main_loop.run()