bus = dbus.SystemBus()
-manager = dbus.Interface(bus.get_object("org.moblin.connman", "/"),
- "org.moblin.connman.Manager")
+manager = dbus.Interface(bus.get_object("net.connman", "/"),
+ "net.connman.Manager")
if len(sys.argv) < 2:
- print "Usage: %s <command>" % (sys.argv[0])
- print ""
- print " state"
- print " services"
- print " apn <service> [apn]"
- print " passphrase <service> [passphrase]"
- print " autoconnect <service> [autoconnect]"
- print " connect <service>"
- print " disconnect <service>"
- print " remove <service>"
- print ""
- print " scan [type]"
- print " enable <type>"
- print " disable <type>"
- print " offlinemode [on|off]"
- print ""
- print " dev <interface>"
- print " dev <interface> scan"
- print " dev <interface> networks"
- print " dev <interface> connect <network>"
- print " dev <interface> disconnect [network]"
- print " dev <interface> powered [on|off]"
+ print("Usage: %s <command>" % (sys.argv[0]))
+ print("")
+ print(" state")
+ print(" services")
+ print(" autoconnect <service> [autoconnect]")
+ print(" connect <service>")
+ print(" disconnect <service>")
+ print(" remove <service>")
+ print("")
+ print(" scan <type>")
+ print(" enable <type>")
+ print(" disable <type>")
+ print(" offlinemode [on|off]")
sys.exit(1)
-def print_properties(path, properties):
- print "[ %s ]" % (path)
- for key in properties.keys():
- if key == "Networks":
- continue
-
- if key in ["Powered", "Scanning", "Connected",
- "Available", "Remember", "Default"]:
- if properties[key] == dbus.Boolean(1):
- val = "true"
- else:
- val = "false"
- elif key in ["Strength", "Priority"]:
- val = int(properties[key])
- else:
- val = str(properties[key])
-
- print " %s = %s" % (key, val)
-
- if "Networks" in properties.keys():
- list = ""
- for path in properties["Networks"]:
- val = str(path)
- list = list + val[val.rfind("/") + 1:] + " "
- print " Networks = [ %s]" % (list)
-
-def print_networks(networks):
- for path in networks:
- network = dbus.Interface(bus.get_object("org.moblin.connman", path),
- "org.moblin.connman.Network")
-
- properties = network.GetProperties()
-
- if properties["Connected"] == dbus.Boolean(1):
- connected = "*"
- else:
- connected = " "
-
- if "Name" in properties.keys():
- name = properties["Name"]
- else:
- name = ""
-
- strength = int(properties["Strength"])
-
- details = ""
- try:
- details += "{" + properties["WiFi.Mode"] + "} "
- except:
- pass
- try:
- details += "{" + properties["WiFi.Security"] + "} "
- except:
- pass
- if "WiFi.Passphrase" in properties.keys():
- if properties["WiFi.Passphrase"] != "":
- details += "{passphrase present}"
-
- print "%s %-26s %3d%% %s" % (connected,
- name, strength, details)
-
-def select_network(networks, name):
- for path in networks:
- network = dbus.Interface(bus.get_object("org.moblin.connman", path),
- "org.moblin.connman.Network")
-
- properties = network.GetProperties()
-
- if properties["Name"] != name:
- continue
-
- if properties["Connected"] == dbus.Boolean(1):
- print "Already connected to network %s" % (name)
- break
-
- print "Selecting network %s" % (name)
-
- network.Connect()
-
-def disconnect_network(networks, name):
- for path in networks:
- network = dbus.Interface(bus.get_object("org.moblin.connman", path),
- "org.moblin.connman.Network")
-
- properties = network.GetProperties()
-
- if name != "" and properties["Name"] != name:
- continue
-
- if properties["Connected"] == dbus.Boolean(1):
- name = properties["Name"]
- print "Disconnecting from network %s" % (name)
- network.Disconnect()
-
def print_services(services):
- for path in services:
- service = dbus.Interface(bus.get_object("org.moblin.connman", path),
- "org.moblin.connman.Service")
-
- properties = service.GetProperties()
-
+ for path, properties in services:
identifier = path[path.rfind("/") + 1:]
+ state = " "
+ autoconnect = " "
if properties["Favorite"] == dbus.Boolean(1):
favorite = "*"
+
+ if properties["AutoConnect"] == dbus.Boolean(1):
+ autoconnect = " A"
+ else:
+ autoconnect = " "
+
+ if properties["State"] == "ready":
+ state = "R"
+ elif properties["State"] == "online":
+ state = "O"
else:
favorite = " "
- if "Name" in properties.keys():
+ if "Name" in list(properties.keys()):
name = properties["Name"]
else:
name = "{" + properties["Type"] + "}"
- print "%s %-26s { %s }" % (favorite, name, identifier)
+ print("%s%s%s %-26s { %s }" % (favorite, autoconnect, state,
+ name, identifier))
if sys.argv[1] == "state":
properties = manager.GetProperties()
- print "System is %s" % (properties["State"])
+ print("System is %s" % (properties["State"]))
elif sys.argv[1] in ["services", "list", "show"]:
- properties = manager.GetProperties()
-
- print_services(properties["Services"])
-
-elif sys.argv[1] in ["apn"]:
- if (len(sys.argv) < 3):
- print "Need at least service parameter"
- sys.exit(1)
-
- path = "/profile/default/" + sys.argv[2]
-
- service = dbus.Interface(bus.get_object("org.moblin.connman", path),
- "org.moblin.connman.Service")
-
- if (len(sys.argv) > 3):
- apn = sys.argv[3]
-
- service.SetProperty("APN", apn);
-
- print "APN %s set for %s" % (apn, sys.argv[2])
- else:
- properties = service.GetProperties()
-
- if "Name" in properties.keys():
- name = properties["Name"]
- else:
- name = "{" + properties["Type"] + "}"
-
- if "APN" in properties.keys():
- apn = properties["APN"]
- else:
- apn = "not set"
-
- print "APN for %s is %s" % (name, apn)
-
-elif sys.argv[1] in ["passphrase", "pass"]:
- if (len(sys.argv) < 3):
- print "Need at least service parameter"
- sys.exit(1)
-
- path = "/profile/default/" + sys.argv[2]
-
- service = dbus.Interface(bus.get_object("org.moblin.connman", path),
- "org.moblin.connman.Service")
-
- if (len(sys.argv) > 3):
- passphrase = sys.argv[3]
-
- service.SetProperty("Passphrase", passphrase);
-
- print "Passphrase %s set for %s" % (passphrase, sys.argv[2])
- else:
- properties = service.GetProperties()
-
- if "Name" in properties.keys():
- name = properties["Name"]
- else:
- name = "{" + properties["Type"] + "}"
-
- if "Passphrase" in properties.keys():
- passphrase = properties["Passphrase"]
- else:
- passphrase = "not set"
-
- print "Passphrase for %s is %s" % (name, passphrase)
+ print_services(manager.GetServices())
elif sys.argv[1] in ["autoconnect", "autoconn"]:
if (len(sys.argv) < 3):
- print "Need at least service parameter"
+ print("Need at least service parameter")
sys.exit(1)
- path = "/profile/default/" + sys.argv[2]
+ path = "/net/connman/service/" + sys.argv[2]
- service = dbus.Interface(bus.get_object("org.moblin.connman", path),
- "org.moblin.connman.Service")
+ service = dbus.Interface(bus.get_object("net.connman", path),
+ "net.connman.Service")
if (len(sys.argv) > 3):
- autoconnect = dbus.Boolean(sys.argv[3])
+ flag = sys.argv[3].strip().lower()
+ autoconnect = dbus.Boolean(flag not in ['false', 'f', 'n', '0'])
service.SetProperty("AutoConnect", autoconnect);
- print "Auto connect %s for %s" % (autoconnect, sys.argv[2])
+ print("Auto connect %s for %s" % (autoconnect, sys.argv[2]))
else:
properties = service.GetProperties()
- if "Name" in properties.keys():
+ if "Name" in list(properties.keys()):
name = properties["Name"]
else:
name = "{" + properties["Type"] + "}"
- if "AutoConnect" in properties.keys():
+ if "AutoConnect" in list(properties.keys()):
autoconnect = properties["AutoConnect"]
else:
autoconnect = dbus.Boolean(0)
- print "Auto connect %s for %s" % (autoconnect, name)
+ print("Auto connect %s for %s" % (autoconnect, name))
elif sys.argv[1] in ["connect", "conn"]:
if (len(sys.argv) < 3):
- print "Need at least service parameter"
+ print("Need at least service parameter")
sys.exit(1)
- path = "/profile/default/" + sys.argv[2]
+ path = "/net/connman/service/" + sys.argv[2]
- service = dbus.Interface(bus.get_object("org.moblin.connman", path),
- "org.moblin.connman.Service")
+ service = dbus.Interface(bus.get_object("net.connman", path),
+ "net.connman.Service")
try:
service.Connect(timeout=60000)
- except dbus.DBusException, error:
- print "%s: %s" % (error._dbus_error_name, error.message)
+ except dbus.DBusException as error:
+ print("%s: %s" % (error._dbus_error_name, error.message))
elif sys.argv[1] in ["disconnect", "disc"]:
if (len(sys.argv) < 3):
- print "Need at least service parameter"
+ print("Need at least service parameter")
sys.exit(1)
- path = "/profile/default/" + sys.argv[2]
+ path = "/net/connman/service/" + sys.argv[2]
- service = dbus.Interface(bus.get_object("org.moblin.connman", path),
- "org.moblin.connman.Service")
+ service = dbus.Interface(bus.get_object("net.connman", path),
+ "net.connman.Service")
try:
service.Disconnect()
- except dbus.DBusException, error:
- print "%s: %s" % (error._dbus_error_name, error.message)
+ except dbus.DBusException as error:
+ print("%s: %s" % (error._dbus_error_name, error.message))
elif sys.argv[1] in ["remove"]:
if (len(sys.argv) < 3):
- print "Need at least service parameter"
+ print("Need at least service parameter")
sys.exit(1)
- path = "/profile/default/" + sys.argv[2]
+ path = "/net/connman/service/" + sys.argv[2]
- service = dbus.Interface(bus.get_object("org.moblin.connman", path),
- "org.moblin.connman.Service")
+ service = dbus.Interface(bus.get_object("net.connman", path),
+ "net.connman.Service")
properties = service.GetProperties()
if properties["Favorite"] == dbus.Boolean(0):
- print "Only favorite services can be removed"
+ print("Only favorite services can be removed")
sys.exit(1)
try:
service.Remove()
- except dbus.DBusException, error:
- print "%s: %s" % (error._dbus_error_name, error.message)
+ except dbus.DBusException as error:
+ print("%s: %s" % (error._dbus_error_name, error.message))
elif sys.argv[1] == "scan":
- if len(sys.argv) > 2:
- manager.RequestScan(sys.argv[2])
+ if len(sys.argv) == 3:
+ path = "/net/connman/technology/" + sys.argv[2]
+ technology = dbus.Interface(bus.get_object("net.connman", path),
+ "net.connman.Technology")
+ technology.Scan()
else:
- manager.RequestScan("")
+ print("'%s' takes two arguments" % sys.argv[1])
elif sys.argv[1] == "enable":
- if len(sys.argv) > 2:
- manager.EnableTechnology(sys.argv[2])
+ if len(sys.argv) == 3:
+ path = "/net/connman/technology/" + sys.argv[2]
+ technology = dbus.Interface(bus.get_object("net.connman", path),
+ "net.connman.Technology")
+ technology.SetProperty("Powered", True)
else:
- manager.EnableTechnology("")
+ print("'%s' takes two arguments" % sys.argv[1])
elif sys.argv[1] == "disable":
- if len(sys.argv) > 2:
- manager.DisableTechnology(sys.argv[2])
+ if len(sys.argv) == 3:
+ path = "/net/connman/technology/" + sys.argv[2]
+ technology = dbus.Interface(bus.get_object("net.connman", path),
+ "net.connman.Technology")
+ technology.SetProperty("Powered", False)
else:
- manager.DisableTechnology("")
+ print("'%s' takes two arguments" % sys.argv[1])
+
elif sys.argv[1] in ["offlinemode", "flightmode"]:
- if len(sys.argv) > 2:
- if sys.argv[2] == "on":
+ if len(sys.argv) == 3:
+ if sys.argv[2] == "on" or sys.argv[2] == "1" or sys.argv[2] == "yes":
active = dbus.Boolean(1)
- elif sys.argv[2] == "off":
+ elif sys.argv[2] == "off" or sys.argv[2] == "0" or sys.argv[2] == "no":
active = dbus.Boolean(0)
else:
- active = dbus.Boolean(sys.argv[2])
+ print("Use either 'on', '1', 'yes', 'off', '0' or 'no'")
+ exit()
+
manager.SetProperty("OfflineMode", active)
- else:
+ elif len(sys.argv) == 2:
properties = manager.GetProperties()
- print "Offline mode is %s" % (properties["OfflineMode"])
-
-elif sys.argv[1] == "dev":
- properties = manager.GetProperties()
-
- interface = ""
- command = ""
- value = ""
- found = 0
-
- if len(sys.argv) > 2:
- interface = sys.argv[2]
- if len(sys.argv) > 3:
- command = sys.argv[3]
- if len(sys.argv) > 4:
- value = sys.argv[4]
-
- for path in properties["Devices"]:
- device = dbus.Interface(bus.get_object("org.moblin.connman", path),
- "org.moblin.connman.Device")
-
- properties = device.GetProperties()
-
- if interface != "" and properties["Interface"] != interface:
- continue
-
- if command == "scan":
- if properties["Type"] in ["wifi", "wimax"]:
- interface = properties["Interface"]
- print "Scan for device %s" % (interface)
- device.ProposeScan()
- else:
- print "No scanning for device %s" % (interface)
- elif command in ["networks", "net"]:
- if "Networks" in properties.keys():
- print_networks(properties["Networks"])
- else:
- print "Device has no networks"
- elif command in ["connect", "conn"] and value != "":
- if "Networks" in properties.keys():
- select_network(properties["Networks"], value)
- else:
- print "Device can't connect networks"
- elif command in ["connect", "conn"]:
- print "Need to specify network"
- elif command in ["disconnect", "disc"] and value != "":
- if "Networks" in properties.keys():
- disconnect_network(properties["Networks"], value)
- else:
- print "Device has no networks"
- elif command in ["discconnect", "disc"]:
- if "Networks" in properties.keys():
- disconnect_network(properties["Networks"], "")
- else:
- print "Device has no networks"
- elif command == "powered" and value != "":
- if value == "on":
- powered = dbus.Boolean(1)
- elif value == "off":
- powered = dbus.Boolean(0)
- else:
- powered = dbus.Boolean(value)
- device.SetProperty("Powered", powered)
- elif command == "powered":
- interface = properties["Interface"]
- if properties["Powered"] == dbus.Boolean(1):
- powered = "on"
- else:
- powered = "off"
- print "Device %s is powered %s" % (interface, powered)
- elif command == "list" or command == "":
- print_properties(path, properties)
- else:
- print "Unknown command"
+ print("Offline mode is %s" % (properties["OfflineMode"]))
+ else:
+ print("'%s' takes max. two arguments" % sys.argv[1])
else:
- print "Unknown command"
+ print("Unknown command")