forked from sailfishos/ofono
Some tests scripts were not ready to handle situations with more than one modem present. This change fixes the data context scripts.
58 lines
1.4 KiB
Python
Executable File
58 lines
1.4 KiB
Python
Executable File
#!/usr/bin/python3
|
|
|
|
import sys
|
|
import dbus
|
|
|
|
bus = dbus.SystemBus()
|
|
|
|
manager = dbus.Interface(bus.get_object('org.ofono', '/'), 'org.ofono.Manager')
|
|
|
|
if (len(sys.argv) == 3):
|
|
modem = sys.argv[1]
|
|
context_idx = int(sys.argv[2]) - 1
|
|
else:
|
|
modem = None
|
|
modems = manager.GetModems()
|
|
for path, properties in modems:
|
|
if "org.ofono.ConnectionManager" in properties["Interfaces"]:
|
|
modem = path
|
|
break
|
|
if (modem is None):
|
|
exit(2)
|
|
if (len(sys.argv) == 1):
|
|
context_idx = 0
|
|
elif (len(sys.argv) == 2):
|
|
context_idx = int(sys.argv[1]) - 1
|
|
else:
|
|
print("Usage: %s [modem] [context_number]" % (sys.argv[0]))
|
|
exit(1)
|
|
|
|
modemapi = dbus.Interface(bus.get_object('org.ofono', modem), 'org.ofono.Modem')
|
|
properties = modemapi.GetProperties()
|
|
|
|
if "org.ofono.ConnectionManager" not in properties["Interfaces"]:
|
|
print("org.ofono.ConnectionManager not found")
|
|
exit(2)
|
|
|
|
connman = dbus.Interface(bus.get_object('org.ofono', modem),
|
|
'org.ofono.ConnectionManager')
|
|
|
|
contexts = connman.GetContexts()
|
|
|
|
if (len(contexts) == 0):
|
|
print("No context available")
|
|
exit(1)
|
|
|
|
connman.SetProperty("Powered", dbus.Boolean(1))
|
|
|
|
path = contexts[context_idx][0]
|
|
|
|
context = dbus.Interface(bus.get_object('org.ofono', path),
|
|
'org.ofono.ConnectionContext')
|
|
|
|
try:
|
|
context.SetProperty("Active", dbus.Boolean(1), timeout = 100)
|
|
except dbus.DBusException as e:
|
|
print("Error activating %s: %s" % (path, str(e)))
|
|
exit(2)
|