From f60117b41d5433be1b4a96d82cd11d0c3dce9b63 Mon Sep 17 00:00:00 2001 From: Michael Biebl Date: Mon, 23 Apr 2018 18:00:21 +0200 Subject: New upstream version 1.11.3 --- examples/python/dbus/add-connection-compat.py | 4 +- examples/python/dbus/add-connection.py | 4 +- examples/python/dbus/add-wifi-eap-connection.py | 4 +- examples/python/dbus/add-wifi-psk-connection.py | 2 +- examples/python/dbus/create-bond.py | 16 ++--- .../python/dbus/get-active-connection-uuids.py | 4 +- examples/python/dbus/is-wwan-default.py | 12 ++-- examples/python/dbus/list-connections.py | 18 +++--- examples/python/dbus/list-devices.py | 12 ++-- examples/python/dbus/nm-state.py | 6 +- examples/python/dbus/show-bssids.py | 8 +-- examples/python/dbus/update-ip4-method.py | 4 +- examples/python/dbus/update-secrets.py | 14 ++--- examples/python/dbus/vpn.py | 16 ++--- examples/python/dbus/wifi-active-ap.py | 6 +- examples/python/dbus/wifi-hotspot.py | 10 +-- examples/python/gi/add_connection.py | 4 +- examples/python/gi/deactivate-all.py | 2 +- examples/python/gi/device-state-ip4config.py | 14 ++--- examples/python/gi/get-active-connections.py | 4 +- examples/python/gi/get_ips.py | 12 ++-- examples/python/gi/list-connections.py | 6 +- examples/python/gi/show-wifi-networks.py | 24 ++++---- examples/python/gi/update-ip4-method.py | 6 +- examples/python/nmex.py | 72 ++++++++++++++++++++++ 25 files changed, 178 insertions(+), 106 deletions(-) create mode 100644 examples/python/nmex.py (limited to 'examples/python') diff --git a/examples/python/dbus/add-connection-compat.py b/examples/python/dbus/add-connection-compat.py index 4792ac5e..8806fcac 100755 --- a/examples/python/dbus/add-connection-compat.py +++ b/examples/python/dbus/add-connection-compat.py @@ -42,7 +42,7 @@ s_con = dbus.Dictionary({ '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')) +addr1 = dbus.Array([ip_to_int("10.1.2.3"), dbus.UInt32(8), 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'}) @@ -56,7 +56,7 @@ con = dbus.Dictionary({ 'ipv6': s_ip6}) -print "Creating connection:", s_con['id'], "-", s_con['uuid'] +print("Creating connection:", s_con['id'], "-", s_con['uuid']) bus = dbus.SystemBus() proxy = bus.get_object("org.freedesktop.NetworkManager", "/org/freedesktop/NetworkManager/Settings") diff --git a/examples/python/dbus/add-connection.py b/examples/python/dbus/add-connection.py index 5ebb82a3..510f7c88 100755 --- a/examples/python/dbus/add-connection.py +++ b/examples/python/dbus/add-connection.py @@ -38,7 +38,7 @@ s_con = dbus.Dictionary({ addr1 = dbus.Dictionary({ 'address': '10.1.2.3', - 'prefix': dbus.UInt32(8L)}) + 'prefix': dbus.UInt32(8)}) s_ip4 = dbus.Dictionary({ 'address-data': dbus.Array([addr1], signature=dbus.Signature('a{sv}')), 'gateway': '10.1.2.1', @@ -53,7 +53,7 @@ con = dbus.Dictionary({ 'ipv6': s_ip6}) -print "Creating connection:", s_con['id'], "-", s_con['uuid'] +print("Creating connection:", s_con['id'], "-", s_con['uuid']) bus = dbus.SystemBus() proxy = bus.get_object("org.freedesktop.NetworkManager", "/org/freedesktop/NetworkManager/Settings") diff --git a/examples/python/dbus/add-wifi-eap-connection.py b/examples/python/dbus/add-wifi-eap-connection.py index 4085ac31..e8ce6df9 100755 --- a/examples/python/dbus/add-wifi-eap-connection.py +++ b/examples/python/dbus/add-wifi-eap-connection.py @@ -20,7 +20,7 @@ import dbus, uuid def path_to_value(path): - return dbus.ByteArray("file://" + path + "\0") + return dbus.ByteArray("file://".encode("utf-8") + path.encode("utf-8") + "\0".encode("utf-8")) s_con = dbus.Dictionary({ 'type': '802-11-wireless', @@ -28,7 +28,7 @@ s_con = dbus.Dictionary({ 'id': 'My Wifi'}) s_wifi = dbus.Dictionary({ - 'ssid': dbus.ByteArray("homewifi"), + 'ssid': dbus.ByteArray("homewifi".encode("utf-8")), 'security': '802-11-wireless-security'}) s_wsec = dbus.Dictionary({'key-mgmt': 'wpa-eap'}) diff --git a/examples/python/dbus/add-wifi-psk-connection.py b/examples/python/dbus/add-wifi-psk-connection.py index 60cb2af9..d8268b1a 100755 --- a/examples/python/dbus/add-wifi-psk-connection.py +++ b/examples/python/dbus/add-wifi-psk-connection.py @@ -25,7 +25,7 @@ s_con = dbus.Dictionary({ 'id': 'My-WPA-PSK'}) s_wifi = dbus.Dictionary({ - 'ssid': dbus.ByteArray("best-wifi"), + 'ssid': dbus.ByteArray("best-wifi".encode("utf-8")), 'mode': 'infrastructure', }) diff --git a/examples/python/dbus/create-bond.py b/examples/python/dbus/create-bond.py index f36426ca..4600b9c2 100755 --- a/examples/python/dbus/create-bond.py +++ b/examples/python/dbus/create-bond.py @@ -26,7 +26,7 @@ import dbus, sys, uuid from dbus.mainloop.glib import DBusGMainLoop -import gobject +from gi.repository import GObject DBusGMainLoop(set_as_default=True) @@ -54,7 +54,7 @@ def create_bond(bond_name): 'connection': s_con, 'ipv4': s_ip4, 'ipv6': s_ip6}) - print "Creating bond connection: %s" % bond_name + print("Creating bond connection: %s" % bond_name) return add_connection(con) def create_slave(device, master): @@ -72,11 +72,11 @@ def create_slave(device, master): con = dbus.Dictionary({ '802-3-ethernet': s_wired, 'connection': s_con}) - print "Creating slave connection: %s" % slave_name + print("Creating slave connection: %s" % slave_name) add_connection(con) def usage(): - print "Usage: %s ..." % sys.argv[0] + print("Usage: %s ..." % sys.argv[0]) sys.exit(0) @@ -94,17 +94,17 @@ bus = dbus.SystemBus() proxy = bus.get_object("org.freedesktop.NetworkManager", "/org/freedesktop/NetworkManager") manager = dbus.Interface(proxy, "org.freedesktop.NetworkManager") ac = manager.ActivateConnection(bond_path, "/", "/") -print "Activating bond: %s (%s)" % (bond_name, ac) +print("Activating bond: %s (%s)" % (bond_name, ac)) # Monitor the active bond connection -loop = gobject.MainLoop() +loop = GObject.MainLoop() def properties_changed(props): if 'State' in props: if props['State'] == 2: - print "Succesfully connected" + print("Succesfully connected") loop.quit() if props['State'] == 3 or props['State'] == 4: - print "Bond activation failed" + print("Bond activation failed") loop.quit() obj = bus.get_object("org.freedesktop.NetworkManager", ac) diff --git a/examples/python/dbus/get-active-connection-uuids.py b/examples/python/dbus/get-active-connection-uuids.py index 6fe93d05..deb38dae 100755 --- a/examples/python/dbus/get-active-connection-uuids.py +++ b/examples/python/dbus/get-active-connection-uuids.py @@ -49,8 +49,8 @@ for a in active: 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']) + print("%s (%s) - %s" % (settings['connection']['id'], uuid, settings['connection']['type'])) if len(active) == 0: - print "No active connections" + print("No active connections") diff --git a/examples/python/dbus/is-wwan-default.py b/examples/python/dbus/is-wwan-default.py index a4a3ff8e..10ae31fc 100755 --- a/examples/python/dbus/is-wwan-default.py +++ b/examples/python/dbus/is-wwan-default.py @@ -36,7 +36,7 @@ bus = dbus.SystemBus() 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" + print("NetworkManager not running") sys.exit(1) # Get a proxy for the NetworkManager object @@ -46,11 +46,11 @@ props = dbus.Interface(proxy, DBUS_PROPS_IFACE) def found_connection_type(ctype): if ctype == '': - print "No active connection" + print("No active connection") elif ctype in ["gsm", "cdma", "bluetooth"]: - print "WWAN is default" + print("WWAN is default") else: - print "WWAN is not default" + print("WWAN is not default") sys.exit(0) # Shortcut #1, for NM 1.0 @@ -94,7 +94,7 @@ for a in active: break if default_is_wwan: - print "WWAN is default" + print("WWAN is default") else: - print "WWAN is not default" + print("WWAN is not default") diff --git a/examples/python/dbus/list-connections.py b/examples/python/dbus/list-connections.py index 120b744a..90aec3b3 100755 --- a/examples/python/dbus/list-connections.py +++ b/examples/python/dbus/list-connections.py @@ -35,7 +35,7 @@ def merge_secrets(proxy, config, setting_name): for setting in secrets: for key in secrets[setting]: config[setting_name][key] = secrets[setting][key] - except Exception, e: + except Exception as e: pass def dict_to_string(d, indent): @@ -64,9 +64,9 @@ def dict_to_string(d, indent): 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 "" + print(" Setting: %s" % setting_name) + print(dict_to_string(config[setting_name], " ")) + print("") def print_connections(): @@ -95,13 +95,13 @@ def print_connections(): # 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 " ------------------------------------------" + 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("") print_connections() diff --git a/examples/python/dbus/list-devices.py b/examples/python/dbus/list-devices.py index f35a8c8a..1afb5a45 100755 --- a/examples/python/dbus/list-devices.py +++ b/examples/python/dbus/list-devices.py @@ -69,20 +69,20 @@ 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("============================") - print "Interface: %s" % props['Interface'] - try: + print("Interface: %s" % props['Interface']) + try: devtype = devtypes[props['DeviceType']] except KeyError: devtype = "Unknown" - print "Type: %s" % devtype + print("Type: %s" % devtype) - print "Driver: %s" % props['Driver'] + print("Driver: %s" % props['Driver']) try: state = states[props['State']] except KeyError: state = "Unknown" - print "State: %s" % state + print("State: %s" % state) diff --git a/examples/python/dbus/nm-state.py b/examples/python/dbus/nm-state.py index 176090f7..68979efa 100755 --- a/examples/python/dbus/nm-state.py +++ b/examples/python/dbus/nm-state.py @@ -69,9 +69,9 @@ for d in devices: # and print them out if state == 100 : # activated - print "Device %s is activated" % name + print("Device %s is activated" % name) else: - print "Device %s is not activated (state=%s)" % (name, device_states[state]) + print("Device %s is not activated (state=%s)" % (name, device_states[state])) # Get active connection state @@ -91,4 +91,4 @@ for a in active: con_details = con_iface.GetSettings() con_name = con_details['connection']['id'] - print "Connection '%s' is %s" % (con_name, connectivity_states[state].lower()) + print("Connection '%s' is %s" % (con_name, connectivity_states[state].lower())) diff --git a/examples/python/dbus/show-bssids.py b/examples/python/dbus/show-bssids.py index 505e3d35..9776864f 100755 --- a/examples/python/dbus/show-bssids.py +++ b/examples/python/dbus/show-bssids.py @@ -32,7 +32,7 @@ manager = dbus.Interface(proxy, "org.freedesktop.NetworkManager") all_aps = [] -print "Associated APs:" +print("Associated APs:") # Get all network devices devices = manager.GetDevices() @@ -69,10 +69,10 @@ for d in devices: # Print the current AP's BSSID if path == connected_path: - print "%s (%s)" % (bssid, iface) + print("%s (%s)" % (bssid, iface)) # and print out all APs the wifi devices can see -print"\nFound APs:" +print("\nFound APs:") for bssid in all_aps: - print bssid + print(bssid) diff --git a/examples/python/dbus/update-ip4-method.py b/examples/python/dbus/update-ip4-method.py index 28a22289..505e808b 100755 --- a/examples/python/dbus/update-ip4-method.py +++ b/examples/python/dbus/update-ip4-method.py @@ -31,12 +31,12 @@ import dbus, sys if len(sys.argv) < 3: - print "Usage: %s [address prefix gateway]" % sys.argv[0] + print("Usage: %s [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]) + print("Usage: %s %s static address prefix [gateway]" % (sys.argv[0], sys.argv[1])) sys.exit(1) # Convert method to NM method diff --git a/examples/python/dbus/update-secrets.py b/examples/python/dbus/update-secrets.py index 13cac1b0..1fc73209 100755 --- a/examples/python/dbus/update-secrets.py +++ b/examples/python/dbus/update-secrets.py @@ -22,7 +22,7 @@ # 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 +# are associated with the connection using GetSecrets(), ask for new secret # values, and add them to the settings that we pass to Update(). # @@ -37,16 +37,16 @@ def change_secrets_in_one_setting(proxy, config, setting_name): # 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 + 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: + except Exception as e: #code = str(e).split(':')[0] - #print "Exception:", str(e) + #print("Exception:" + str(e)) pass def change_secrets(con_path, config): @@ -76,7 +76,7 @@ def find_connection(name): connection = dbus.Interface(con_proxy, "org.freedesktop.NetworkManager.Settings.Connection") try: config = connection.GetSettings() - except Exception, e: + except Exception as e: pass # Find connection by the id @@ -101,10 +101,10 @@ if len(sys.argv) != 2: # Find the connection con = find_connection(sys.argv[1]) -print "Connection found: ", con_path +print("Connection found: " + con_path) if con: - # Obtain new secrets and put then into connection dict + # Obtain new secrets and put then into connection dict change_secrets(con_path, con) # Change the connection with Update() diff --git a/examples/python/dbus/vpn.py b/examples/python/dbus/vpn.py index d60e470e..a21b82ff 100755 --- a/examples/python/dbus/vpn.py +++ b/examples/python/dbus/vpn.py @@ -61,7 +61,7 @@ def list_uuids(): 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']) + print("%s - %s (%s)" % (conn['uuid'], conn['id'], conn['type'])) def get_active_connection_path(uuid): @@ -102,7 +102,7 @@ def get_wifi_device_path(): def activate_connection(connection_path, device_path): def reply_handler(opath): - print "Success: device activating" + print("Success: device activating") sys.exit(0) def error_handler(*args): @@ -114,7 +114,7 @@ def activate_connection(connection_path, device_path): iface = dbus.Interface(proxy, dbus_interface='org.freedesktop.NetworkManager') iface.ActivateConnection('org.freedesktop.NetworkManager', connection_path, - device_path, + device_path, "/", reply_handler=reply_handler, error_handler=error_handler) @@ -126,26 +126,26 @@ if UID != 0: # Are we configured? if not len(CONNECTION_UUID): - print "missing 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" + print("couldn't find the connection") sys.exit(1) device_path = get_wifi_device_path() if not device_path: - print "no wifi device found" + print("no wifi device found") sys.exit(1) # Is it already activated? if get_active_connection_path(CONNECTION_UUID): - print "already connected" + print("already connected") sys.exit(0) -print "Activating connection..." +print("Activating connection...") activate_connection(connection_path, device_path) loop = gobject.MainLoop() loop.run() diff --git a/examples/python/dbus/wifi-active-ap.py b/examples/python/dbus/wifi-active-ap.py index 3b17c6f1..c0ed6710 100755 --- a/examples/python/dbus/wifi-active-ap.py +++ b/examples/python/dbus/wifi-active-ap.py @@ -32,7 +32,7 @@ proxy = bus.get_object(service_name, "/org/freedesktop/NetworkManager/Settings") settings = dbus.Interface(proxy, "org.freedesktop.NetworkManager.Settings") if len(sys.argv) != 2: - print "Usage: %s " % sys.argv[0] + print("Usage: %s " % sys.argv[0]) sys.exit(0) # Get the device object path based on interface name @@ -46,7 +46,7 @@ proxy = bus.get_object(service_name, devpath) props = dbus.Interface(proxy, "org.freedesktop.DBus.Properties") active_ap_path = props.Get("org.freedesktop.NetworkManager.Device.Wireless", "ActiveAccessPoint") if active_ap_path == "/": - print "%s is not currently associated" % sys.argv[1] + print("%s is not currently associated" % sys.argv[1]) sys.exit(0) # Get the active access point's SSID and BSSID @@ -60,7 +60,7 @@ ssid = "" for c in raw_ssid: ssid = ssid + chr(c) -print "%s is associated to '%s' (%s)" % (sys.argv[1], ssid, bssid) +print("%s is associated to '%s' (%s)" % (sys.argv[1], ssid, bssid)) sys.exit(0) diff --git a/examples/python/dbus/wifi-hotspot.py b/examples/python/dbus/wifi-hotspot.py index 10958af8..9b057a2c 100755 --- a/examples/python/dbus/wifi-hotspot.py +++ b/examples/python/dbus/wifi-hotspot.py @@ -34,7 +34,7 @@ s_con = dbus.Dictionary({ 'id': 'Test Hotspot'}) s_wifi = dbus.Dictionary({ - 'ssid': dbus.ByteArray("My Hotspot"), + 'ssid': dbus.ByteArray("My Hotspot".encode("utf-8")), 'mode': "ap", 'band': "bg", 'channel': dbus.UInt32(1)}) @@ -54,8 +54,8 @@ con = dbus.Dictionary({ 'ipv6': s_ip6 }) -def usage(): - print "Usage: %s [up|down]" % sys.argv[0] +def usage(): + print("Usage: %s [up|down]" % sys.argv[0]) sys.exit(0) bus = dbus.SystemBus() @@ -99,10 +99,10 @@ if operation == "up": while time.time() < start + 10: state = active_props.Get("org.freedesktop.NetworkManager.Connection.Active", "State") if state == 2: # NM_ACTIVE_CONNECTION_STATE_ACTIVATED - print "Access point started" + print("Access point started") sys.exit(0) time.sleep(1) - print "Failed to start access point" + print("Failed to start access point") elif operation == "down": device.Disconnect() else: diff --git a/examples/python/gi/add_connection.py b/examples/python/gi/add_connection.py index cfb40a9a..f5b5e63c 100755 --- a/examples/python/gi/add_connection.py +++ b/examples/python/gi/add_connection.py @@ -37,7 +37,7 @@ import sys, uuid main_loop = None def print_values(setting, key, value, flags, data): - print " %s.%s: %s" % (setting.get_name(), key, value) + print(" %s.%s: %s" % (setting.get_name(), key, value)) # create an Ethernet connection and return it def create_profile(name): @@ -70,7 +70,7 @@ def added_cb(client, result, data): try: client.add_connection_finish(result) print("The connection profile has been succesfully added to NetworkManager.") - except Exception, e: + except Exception as e: sys.stderr.write("Error: %s\n" % e) main_loop.quit() diff --git a/examples/python/gi/deactivate-all.py b/examples/python/gi/deactivate-all.py index 59842ac2..a4588522 100755 --- a/examples/python/gi/deactivate-all.py +++ b/examples/python/gi/deactivate-all.py @@ -78,6 +78,6 @@ if __name__ == "__main__": try: client.deactivate_connection(ac, None) sys.stdout.write("\033[32m -> succeeded\033[0m\n") - except Exception, e: + except Exception as e: sys.stderr.write("\033[31m -> failed\033[0m (%s)\n" % e.message) diff --git a/examples/python/gi/device-state-ip4config.py b/examples/python/gi/device-state-ip4config.py index 2a4a6221..b92a7b09 100755 --- a/examples/python/gi/device-state-ip4config.py +++ b/examples/python/gi/device-state-ip4config.py @@ -27,22 +27,22 @@ from gi.repository import GLib, NM # # This example shows how to get NMIP4Config from NMDevice after it is activated. -# +# # We listen to notify::ip4-config glib signal. This signal is trigered by D-Bus # PropertiesChanged for IP4Config that comes after StateChanged for NMDevice. # main_loop = None - + def do_notify(self, property): - print "notify: %s" % property + print("notify: %s" % property) ip4cfg = self.get_ip4_config() if ip4cfg is not None: - print "ip4-config: %s" % ip4cfg.get_path() + print("ip4-config: %s" % ip4cfg.get_path()) main_loop.quit() def state_changed(obj, arg1, arg2, arg3): - print "State changed: New: %d, Old: %d, Reason: %d" % (arg1, arg2, arg3) + print("State changed: New: %d, Old: %d, Reason: %d" % (arg1, arg2, arg3)) # Device is connected if arg1 == 100: obj.connect('notify::ip4-config', do_notify) @@ -57,8 +57,8 @@ if __name__ == "__main__": dev = c.get_device_by_iface(dev_iface) if dev is None: sys.exit('Device \'%s\' not found' % dev_iface) - print "Device: %s - %s" % (dev_iface, dev.get_device_type().value_name) - print "---------------------------------------" + print("Device: %s - %s" % (dev_iface, dev.get_device_type().value_name)) + print("---------------------------------------") dev.connect('state-changed', state_changed) main_loop = GLib.MainLoop() diff --git a/examples/python/gi/get-active-connections.py b/examples/python/gi/get-active-connections.py index 22c9eb4a..cee579f9 100755 --- a/examples/python/gi/get-active-connections.py +++ b/examples/python/gi/get-active-connections.py @@ -29,8 +29,8 @@ if __name__ == "__main__": client = NM.Client.new(None) acons = client.get_active_connections() for ac in acons: - print "%s (%s) - %s" % (ac.get_id(), ac.get_uuid(), ac.get_connection_type()) + print("%s (%s) - %s" % (ac.get_id(), ac.get_uuid(), ac.get_connection_type())) if len(acons) == 0: - print "No active connections" + print("No active connections") diff --git a/examples/python/gi/get_ips.py b/examples/python/gi/get_ips.py index 77e1d171..66d154f2 100755 --- a/examples/python/gi/get_ips.py +++ b/examples/python/gi/get_ips.py @@ -116,8 +116,8 @@ if __name__ == "__main__": dev = c.get_device_by_iface(dev_iface) if dev is None: sys.exit('Device \'%s\' not found' % dev_iface) - print "Device: %s - %s" % (dev_iface, dev.get_device_type().value_name) - print "---------------------------------------" + print("Device: %s - %s" % (dev_iface, dev.get_device_type().value_name)) + print("---------------------------------------") print("IPv4 addresses:") print("---------------") @@ -134,7 +134,7 @@ if __name__ == "__main__": show_routes(dev, socket.AF_INET) print - print "IPv6 addresses:" + print("IPv6 addresses:") print("---------------") show_addresses(dev, socket.AF_INET6) print @@ -144,17 +144,17 @@ if __name__ == "__main__": show_gateway(dev, socket.AF_INET6) print - print "IPv6 routes:" + print("IPv6 routes:") print("------------") show_routes(dev, socket.AF_INET6) print - print "IPv4 DNS:" + print("IPv4 DNS:") print("------------") show_dns(dev, socket.AF_INET) print - print "IPv6 DNS:" + print("IPv6 DNS:") print("------------") show_dns(dev, socket.AF_INET6) print diff --git a/examples/python/gi/list-connections.py b/examples/python/gi/list-connections.py index 32ea70f5..2139e8c1 100755 --- a/examples/python/gi/list-connections.py +++ b/examples/python/gi/list-connections.py @@ -27,7 +27,7 @@ from gi.repository import NM # This example asks settings service for all configured connections. def print_values(setting, key, value, flags, data): - print " %s.%s: %s" % (setting.get_name(), key, value) + print(" %s.%s: %s" % (setting.get_name(), key, value)) if __name__ == "__main__": # create Client object @@ -38,7 +38,7 @@ if __name__ == "__main__": # print the connections' details for c in connections: - print "=== %s : %s ===" % (c.get_id(), c.get_path()) + print("=== %s : %s ===" % (c.get_id(), c.get_path())) c.for_each_setting_value(print_values, None) - print "\n" + print("\n") diff --git a/examples/python/gi/show-wifi-networks.py b/examples/python/gi/show-wifi-networks.py index db49b555..4c7a126f 100755 --- a/examples/python/gi/show-wifi-networks.py +++ b/examples/python/gi/show-wifi-networks.py @@ -49,8 +49,8 @@ def print_device_info(device): if active_ap is not None: ssid = ssid_to_utf8(active_ap) info = "Device: %s | Driver: %s | Active AP: %s" % (dev.get_iface(), dev.get_driver(), ssid) - print info - print '=' * len(info) + print(info) + print('=' * len(info)) def mode_to_string(mode): if mode == getattr(NM, '80211Mode').INFRA: @@ -114,16 +114,16 @@ def print_ap_info(ap): flags = ap.get_flags() wpa_flags = ap.get_wpa_flags() rsn_flags = ap.get_rsn_flags() - print "SSID: %s" % (ssid_to_utf8(ap)) - print "BSSID: %s" % (ap.get_bssid()) - print "Frequency: %s" % (frequency) - print "Channel: %s" % (NM.utils_wifi_freq_to_channel(frequency)) - print "Mode: %s" % (mode_to_string(ap.get_mode())) - print "Flags: %s" % (flags_to_string(flags)) - print "WPA flags: %s" % (security_flags_to_string(wpa_flags)) - print "RSN flags: %s" % (security_flags_to_string(rsn_flags)) - print "Security: %s" % (flags_to_security(flags, wpa_flags, rsn_flags)) - print "Strength: %s %s%%" % (NM.utils_wifi_strength_bars(strength), strength) + print("SSID: %s" % (ssid_to_utf8(ap))) + print("BSSID: %s" % (ap.get_bssid())) + print("Frequency: %s" % (frequency)) + print("Channel: %s" % (NM.utils_wifi_freq_to_channel(frequency))) + print("Mode: %s" % (mode_to_string(ap.get_mode()))) + print("Flags: %s" % (flags_to_string(flags))) + print("WPA flags: %s" % (security_flags_to_string(wpa_flags))) + print("RSN flags: %s" % (security_flags_to_string(rsn_flags))) + print("Security: %s" % (flags_to_security(flags, wpa_flags, rsn_flags))) + print("Strength: %s %s%%" % (NM.utils_wifi_strength_bars(strength), strength)) print if __name__ == "__main__": diff --git a/examples/python/gi/update-ip4-method.py b/examples/python/gi/update-ip4-method.py index 12124599..3b2df72e 100755 --- a/examples/python/gi/update-ip4-method.py +++ b/examples/python/gi/update-ip4-method.py @@ -35,12 +35,12 @@ import sys, socket if __name__ == "__main__": # parse and validate arguments if len(sys.argv) < 3: - print "Usage: %s [address prefix gateway]" % sys.argv[0] + print("Usage: %s [address prefix gateway]" % sys.argv[0]) sys.exit(1) method = sys.argv[2] if (method == "static" or method == "manual") and len(sys.argv) < 5: - print "Usage: %s %s static address prefix [gateway]" % (sys.argv[0], sys.argv[1]) + print("Usage: %s %s static address prefix [gateway]" % (sys.argv[0], sys.argv[1])) sys.exit(1) uuid = sys.argv[1] @@ -81,7 +81,7 @@ if __name__ == "__main__": try: c.commit_changes(True, None) print("The connection profile has been updated.") - except Exception, e: + except Exception as e: sys.stderr.write("Error: %s\n" % e) break diff --git a/examples/python/nmex.py b/examples/python/nmex.py new file mode 100644 index 00000000..a85eecaf --- /dev/null +++ b/examples/python/nmex.py @@ -0,0 +1,72 @@ +#!/usr/bin/env python +# -*- Mode: Python; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- +# vim: ft=python ts=4 sts=4 sw=4 et ai + +# 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. +# +# You should have received a copy of the GNU General Public License +# along with this program. If not, see . +# +# Copyright 2018 Red Hat, Inc. + +############################################################################### +# nmex.py contains helper functions used by some examples. The helper functions +# should be simple and independent, so that the user can extract them easily +# when modifying the example to his needs. +############################################################################### + +def _sys_clock_gettime_ns_lazy(): + import ctypes + + class timespec(ctypes.Structure): + _fields_ = [ + ('tv_sec', ctypes.c_long), + ('tv_nsec', ctypes.c_long) + ] + + librt = ctypes.CDLL('librt.so.1', use_errno=True) + clock_gettime = librt.clock_gettime + clock_gettime.argtypes = [ctypes.c_int, ctypes.POINTER(timespec)] + + t = timespec() + def f(clock_id): + if clock_gettime(clock_id, ctypes.pointer(t)) != 0: + import os + errno_ = ctypes.get_errno() + raise OSError(errno_, os.strerror(errno_)) + return (t.tv_sec * 1000000000) + t.tv_nsec + return f + +_sys_clock_gettime_ns = None + +# call POSIX clock_gettime() and return it as integer (in nanoseconds) +def sys_clock_gettime_ns(clock_id): + global _sys_clock_gettime_ns + if _sys_clock_gettime_ns is None: + _sys_clock_gettime_ns = _sys_clock_gettime_ns_lazy() + return _sys_clock_gettime_ns(clock_id) + +def nm_boot_time_ns(): + # NetworkManager exposes some timestamps as CLOCK_BOOTTIME. + # Try that first (number 7). + try: + return sys_clock_gettime_ns(7) + except OSError as e: + # On systems, where this is not available, fallback to + # CLOCK_MONOTONIC (numeric 1). + # That is what NetworkManager does as well. + import errno + if e.errno == errno.EINVAL: + return sys_clock_gettime_ns(1) + raise +def nm_boot_time_us(): + return nm_boot_time_ns() / 1000 +def nm_boot_time_ms(): + return nm_boot_time_ns() / 1000000 +def nm_boot_time_s(): + return nm_boot_time_ns() / 1000000000 + +############################################################################### -- cgit 1.3.0-6-gf8a5