Change service name from org.moblin.connman to net.connman
[framework/connectivity/connman.git] / test / test-connman
1 #!/usr/bin/python
2
3 import sys
4 import dbus
5
6 bus = dbus.SystemBus()
7
8 manager = dbus.Interface(bus.get_object("net.connman", "/"),
9                                         "net.connman.Manager")
10
11 if len(sys.argv) < 2:
12         print "Usage: %s <command>" % (sys.argv[0])
13         print ""
14         print "  state"
15         print "  services"
16         print "  apn <service> [apn]"
17         print "  passphrase <service> [passphrase]"
18         print "  autoconnect <service> [autoconnect]"
19         print "  connect <service>"
20         print "  disconnect <service>"
21         print "  remove <service>"
22         print ""
23         print "  scan [type]"
24         print "  enable <type>"
25         print "  disable <type>"
26         print "  offlinemode [on|off]"
27         sys.exit(1)
28
29 def print_services(services):
30         for path in services:
31                 service = dbus.Interface(bus.get_object("net.connman", path),
32                                                 "net.connman.Service")
33
34                 properties = service.GetProperties()
35
36                 identifier = path[path.rfind("/") + 1:]
37
38                 if properties["Favorite"] == dbus.Boolean(1):
39                         favorite = "*"
40                 else:
41                         favorite = " "
42
43                 if "Name" in properties.keys():
44                         name = properties["Name"]
45                 else:
46                         name = "{" + properties["Type"] + "}"
47
48                 print "%s %-26s { %s }" % (favorite, name, identifier)
49
50 if sys.argv[1] == "state":
51         properties = manager.GetProperties()
52
53         print "System is %s" % (properties["State"])
54
55 elif sys.argv[1] in ["services", "list", "show"]:
56         properties = manager.GetProperties()
57
58         print_services(properties["Services"])
59
60 elif sys.argv[1] in ["apn"]:
61         if (len(sys.argv) < 3):
62                 print "Need at least service parameter"
63                 sys.exit(1)
64
65         path = "/profile/default/" + sys.argv[2]
66
67         service = dbus.Interface(bus.get_object("net.connman", path),
68                                                 "net.connman.Service")
69
70         if (len(sys.argv) > 3):
71                 apn = sys.argv[3]
72
73                 service.SetProperty("APN", apn);
74
75                 print "APN %s set for %s" % (apn, sys.argv[2])
76         else:
77                 properties = service.GetProperties()
78
79                 if "Name" in properties.keys():
80                         name = properties["Name"]
81                 else:
82                         name = "{" + properties["Type"] + "}"
83
84                 if "APN" in properties.keys():
85                         apn = properties["APN"]
86                 else:
87                         apn = "not set"
88
89                 print "APN for %s is %s" % (name, apn)
90
91 elif sys.argv[1] in ["passphrase", "pass"]:
92         if (len(sys.argv) < 3):
93                 print "Need at least service parameter"
94                 sys.exit(1)
95
96         path = "/profile/default/" + sys.argv[2]
97
98         service = dbus.Interface(bus.get_object("net.connman", path),
99                                                 "net.connman.Service")
100
101         if (len(sys.argv) > 3):
102                 passphrase = sys.argv[3]
103
104                 service.SetProperty("Passphrase", passphrase);
105
106                 print "Passphrase %s set for %s" % (passphrase, sys.argv[2])
107         else:
108                 properties = service.GetProperties()
109
110                 if "Name" in properties.keys():
111                         name = properties["Name"]
112                 else:
113                         name = "{" + properties["Type"] + "}"
114
115                 if "Passphrase" in properties.keys():
116                         passphrase = properties["Passphrase"]
117                 else:
118                         passphrase = "not set"
119
120                 print "Passphrase for %s is %s" % (name, passphrase)
121
122 elif sys.argv[1] in ["autoconnect", "autoconn"]:
123         if (len(sys.argv) < 3):
124                 print "Need at least service parameter"
125                 sys.exit(1)
126
127         path = "/profile/default/" + sys.argv[2]
128
129         service = dbus.Interface(bus.get_object("net.connman", path),
130                                                 "net.connman.Service")
131
132         if (len(sys.argv) > 3):
133                 flag = sys.argv[3].strip().lower()
134                 autoconnect = dbus.Boolean(flag not in ['false', 'f', 'n', '0'])
135
136                 service.SetProperty("AutoConnect", autoconnect);
137
138                 print "Auto connect %s for %s" % (autoconnect, sys.argv[2])
139         else:
140                 properties = service.GetProperties()
141
142                 if "Name" in properties.keys():
143                         name = properties["Name"]
144                 else:
145                         name = "{" + properties["Type"] + "}"
146
147                 if "AutoConnect" in properties.keys():
148                         autoconnect = properties["AutoConnect"]
149                 else:
150                         autoconnect = dbus.Boolean(0)
151
152                 print "Auto connect %s for %s" % (autoconnect, name)
153
154 elif sys.argv[1] in ["connect", "conn"]:
155         if (len(sys.argv) < 3):
156                 print "Need at least service parameter"
157                 sys.exit(1)
158
159         path = "/profile/default/" + sys.argv[2]
160
161         service = dbus.Interface(bus.get_object("net.connman", path),
162                                                 "net.connman.Service")
163
164         try:
165                 service.Connect(timeout=60000)
166         except dbus.DBusException, error:
167                 print "%s: %s" % (error._dbus_error_name, error.message)
168
169 elif sys.argv[1] in ["disconnect", "disc"]:
170         if (len(sys.argv) < 3):
171                 print "Need at least service parameter"
172                 sys.exit(1)
173
174         path = "/profile/default/" + sys.argv[2]
175
176         service = dbus.Interface(bus.get_object("net.connman", path),
177                                                 "net.connman.Service")
178
179         try:
180                 service.Disconnect()
181         except dbus.DBusException, error:
182                 print "%s: %s" % (error._dbus_error_name, error.message)
183
184 elif sys.argv[1] in ["remove"]:
185         if (len(sys.argv) < 3):
186                 print "Need at least service parameter"
187                 sys.exit(1)
188
189         path = "/profile/default/" + sys.argv[2]
190
191         service = dbus.Interface(bus.get_object("net.connman", path),
192                                                 "net.connman.Service")
193
194         properties = service.GetProperties()
195
196         if properties["Favorite"] == dbus.Boolean(0):
197                 print "Only favorite services can be removed"
198                 sys.exit(1)
199
200         try:
201                 service.Remove()
202         except dbus.DBusException, error:
203                 print "%s: %s" % (error._dbus_error_name, error.message)
204
205 elif sys.argv[1] == "scan":
206         if len(sys.argv) > 2:
207                 manager.RequestScan(sys.argv[2])
208         else:
209                 manager.RequestScan("")
210
211 elif sys.argv[1] == "enable":
212         if len(sys.argv) > 2:
213                 manager.EnableTechnology(sys.argv[2])
214         else:
215                 manager.EnableTechnology("")
216
217 elif sys.argv[1] == "disable":
218         if len(sys.argv) > 2:
219                 manager.DisableTechnology(sys.argv[2])
220         else:
221                 manager.DisableTechnology("")
222
223 elif sys.argv[1] in ["offlinemode", "flightmode"]:
224         if len(sys.argv) > 2:
225                 if sys.argv[2] == "on":
226                         active = dbus.Boolean(1)
227                 elif sys.argv[2] == "off":
228                         active = dbus.Boolean(0)
229                 else:
230                         active = dbus.Boolean(sys.argv[2])
231                 manager.SetProperty("OfflineMode", active)
232         else:
233                 properties = manager.GetProperties()
234                 print "Offline mode is %s" % (properties["OfflineMode"])
235
236 else:
237         print "Unknown command"