#!/usr/bin/python import dbus def extract_values(values): val = "{" for key in values.keys(): val += " " + key + "=" if key in ["PrefixLength"]: val += "%s" % (int(values[key])) else: if key in ["Servers", "Excludes"]: val += extract_list(values[key]) else: val += str(values[key]) val += " }" return val def extract_list(list): val = "[" for i in list: val += " " + str(i) val += " ]" return val bus = dbus.SystemBus() manager = dbus.Interface(bus.get_object("net.connman", "/"), "net.connman.Manager") properties = manager.GetProperties() def print_properties(key, value): if key == "Profiles": interface = "net.connman.Profile" elif key == "Services": interface = "net.connman.Service" elif key == "Technologies": interface = "net.connman.Technology" else: return print "%s" % (key) for path in value: print " %s" % (path) obj = dbus.Interface(bus.get_object("net.connman", path), interface) properties = obj.GetProperties() for key in properties.keys(): if key in ["Services", "Technologies"]: continue elif key in ["Powered", "Scanning", "Connected", "Available", "Remember", "Default", "Favorite", "Immutable", "AutoConnect", "LoginRequired", "SetupRequired", "PassphraseRequired"]: if properties[key] == dbus.Boolean(1): val = "true" else: val = "false" elif key in ["IPv4", "IPv4.Configuration", "IPv6", "IPv6.Configuration", "Proxy", "Proxy.Configuration", "Ethernet", "Provider"]: val = extract_values(properties[key]) elif key in ["Nameservers", "Nameservers.Configuration", "Domains", "Domains.Configuration", "Security"]: val = extract_list(properties[key]) elif key in ["Strength", "Priority"]: val = int(properties[key]) elif key in ["Tethering"]: if properties[key] == dbus.Boolean(1): val = "true" else: val = "false" else: val = str(properties[key]) print " %s = %s" % (key, val) if "Services" in properties.keys(): list = "" for path in properties["Services"]: val = str(path) list = list + val[val.rfind("/") + 1:] + " " print " Services = [ %s]" % (list) for key in properties.keys(): if key in ["Profiles", "Services", "Technologies"]: print_properties(key, properties[key]) elif key in ["AvailableTechnologies", "EnabledTechnologies", "ConnectedTechnologies", "AvailableDebugs", "EnabledDebugs"]: print "%s" % (key) list = "" for val in properties[key]: list = list + val + " " print " [ %s]" % (list) elif key in ["OfflineMode", "Tethering"]: print "%s" % (key) if properties[key] == dbus.Boolean(1): print " true" else: print " false" elif key in ["DefaultTechnology"]: print "%s" % (key) if properties[key] == "": print " " else: print " %s" % (properties[key]) else: print "%s" % (key) print " %s" % (properties[key])