Remove obsolete file.
[connman] / 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("org.moblin.connman", "/"),
9                                         "org.moblin.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 "  passphrase <service> [passphrase]"
17         print "  connect <service>"
18         print "  disconnect <service>"
19         print "  remove <service>"
20         print ""
21         print "  scan [ <interface> ]"
22         print "  dev <interface>"
23         print "  dev <interface> scan"
24         print "  dev <interface> networks"
25         print "  dev <interface> connect <network>"
26         print "  dev <interface> remember <network>"
27         print "  dev <interface> disconnect [network]"
28         print "  dev <interface> policy [ignore|off|auto|manual]"
29         print "  dev <interface> powered [on|off]"
30         print "  dev <interface> priority [0-255]"
31         sys.exit(1)
32
33 def print_properties(path, properties):
34         print "[ %s ]" % (path)
35         for key in properties.keys():
36                 if key == "Networks":
37                         continue
38
39                 if key in ["Powered", "Scanning", "Connected",
40                                         "Available", "Remember", "Default"]:
41                         if properties[key] == dbus.Boolean(1):
42                                 val = "true"
43                         else:
44                                 val = "false"
45                 elif key in ["Strength", "Priority"]:
46                         val = int(properties[key])
47                 else:
48                         val = str(properties[key])
49
50                 print "     %s = %s" % (key, val)
51
52         if "Networks" in properties.keys():
53                 list = ""
54                 for path in properties["Networks"]:
55                         val = str(path)
56                         list = list + val[val.rfind("/") + 1:] + " "
57                 print "     Networks = [ %s]" % (list)
58
59 def print_networks(networks):
60         for path in networks:
61                 network = dbus.Interface(bus.get_object("org.moblin.connman", path),
62                                                 "org.moblin.connman.Network")
63
64                 properties = network.GetProperties()
65
66                 if properties["Connected"] == dbus.Boolean(1):
67                         connected = "*"
68                 else:
69                         connected = " "
70
71                 if "Name" in properties.keys():
72                         name = properties["Name"]
73                 else:
74                         name = ""
75
76                 strength = int(properties["Strength"])
77
78                 details = ""
79                 try:
80                         details += "{" + properties["WiFi.Mode"] + "} "
81                 except:
82                         pass
83                 try:
84                         details += "{" + properties["WiFi.Security"] + "} "
85                 except:
86                         pass
87                 if "WiFi.Passphrase" in properties.keys():
88                         if properties["WiFi.Passphrase"] != "":
89                                 details += "{passphrase present}"
90
91                 print "%s %-26s %3d%%  %s" % (connected,
92                                                 name, strength, details)
93
94 def select_network(networks, name):
95         for path in networks:
96                 network = dbus.Interface(bus.get_object("org.moblin.connman", path),
97                                                 "org.moblin.connman.Network")
98
99                 properties = network.GetProperties()
100
101                 if properties["Name"] != name:
102                         continue
103
104                 if properties["Connected"] == dbus.Boolean(1):
105                         print "Already connected to network %s" % (name)
106                         break
107
108                 print "Selecting network %s" % (name)
109
110                 network.Connect()
111
112 def remember_network(networks, name):
113         for path in networks:
114                 network = dbus.Interface(bus.get_object("org.moblin.connman", path),
115                                                 "org.moblin.connman.Network")
116
117                 properties = network.GetProperties()
118
119                 if properties["Name"] != name:
120                         continue
121
122                 if properties["Remember"] == dbus.Boolean(1):
123                         print "Already a known network %s" % (name)
124                         break
125
126                 print "Remembering network %s" % (name)
127
128                 network.SetProperty("Remember", dbus.Boolean(1))
129
130 def disconnect_network(networks, name):
131         for path in networks:
132                 network = dbus.Interface(bus.get_object("org.moblin.connman", path),
133                                                 "org.moblin.connman.Network")
134
135                 properties = network.GetProperties()
136
137                 if name != "" and properties["Name"] != name:
138                         continue
139
140                 if properties["Connected"] == dbus.Boolean(1):
141                         name = properties["Name"]
142                         print "Disconnecting from network %s" % (name)
143                         network.Disconnect()
144
145 def print_services(services):
146         for path in services:
147                 service = dbus.Interface(bus.get_object("org.moblin.connman", path),
148                                                 "org.moblin.connman.Service")
149
150                 properties = service.GetProperties()
151
152                 identifier = path[path.rfind("/") + 1:]
153
154                 if properties["Favorite"] == dbus.Boolean(1):
155                         favorite = "*"
156                 else:
157                         favorite = " "
158
159                 if "Name" in properties.keys():
160                         name = properties["Name"]
161                 else:
162                         name = "{" + properties["Type"] + "}"
163
164                 print "%s %-26s { %s }" % (favorite, name, identifier)
165
166 if sys.argv[1] == "state":
167         properties = manager.GetProperties()
168
169         print "System is %s" % (properties["State"])
170
171 elif sys.argv[1] in ["services", "list", "show"]:
172         properties = manager.GetProperties()
173
174         print_services(properties["Services"])
175
176 elif sys.argv[1] in ["passphrase", "pass"]:
177         if (len(sys.argv) < 3):
178                 print "Need at least service parameter"
179                 sys.exit(1)
180
181         path = "/profile/default/" + sys.argv[2]
182
183         service = dbus.Interface(bus.get_object("org.moblin.connman", path),
184                                                 "org.moblin.connman.Service")
185
186         if (len(sys.argv) > 3):
187                 passphrase = sys.argv[3]
188
189                 service.SetProperty("Passphrase", passphrase);
190
191                 print "Passphrase %s set for %s" % (passphrase, sys.argv[2])
192         else:
193                 properties = service.GetProperties()
194
195                 if "Name" in properties.keys():
196                         name = properties["Name"]
197                 else:
198                         name = "{" + properties["Type"] + "}"
199
200                 if "Passphrase" in properties.keys():
201                         passphrase = properties["Passphrase"]
202                 else:
203                         passphrase = "not set"
204
205                 print "Passphrase for %s is %s" % (name, passphrase)
206
207 elif sys.argv[1] in ["connect", "conn"]:
208         if (len(sys.argv) < 3):
209                 print "Need at least service parameter"
210                 sys.exit(1)
211
212         path = "/profile/default/" + sys.argv[2]
213
214         service = dbus.Interface(bus.get_object("org.moblin.connman", path),
215                                                 "org.moblin.connman.Service")
216
217         try:
218                 service.Connect(timeout=60000)
219         except dbus.DBusException, error:
220                 print "%s: %s" % (error._dbus_error_name, error.message)
221
222 elif sys.argv[1] in ["disconnect", "disc"]:
223         if (len(sys.argv) < 3):
224                 print "Need at least service parameter"
225                 sys.exit(1)
226
227         path = "/profile/default/" + sys.argv[2]
228
229         service = dbus.Interface(bus.get_object("org.moblin.connman", path),
230                                                 "org.moblin.connman.Service")
231
232         try:
233                 service.Disconnect()
234         except dbus.DBusException, error:
235                 print "%s: %s" % (error._dbus_error_name, error.message)
236
237 elif sys.argv[1] in ["remove"]:
238         if (len(sys.argv) < 3):
239                 print "Need at least service parameter"
240                 sys.exit(1)
241
242         path = "/profile/default/" + sys.argv[2]
243
244         service = dbus.Interface(bus.get_object("org.moblin.connman", path),
245                                                 "org.moblin.connman.Service")
246
247         properties = service.GetProperties()
248
249         if properties["Favorite"] == dbus.Boolean(0):
250                 print "Only favorite services can be removed"
251                 sys.exit(1)
252
253         try:
254                 service.Remove()
255         except dbus.DBusException, error:
256                 print "%s: %s" % (error._dbus_error_name, error.message)
257
258 elif sys.argv[1] == "scan":
259         properties = manager.GetProperties()
260
261         interface = ""
262         found = 0
263
264         if len(sys.argv) > 2:
265                 interface = sys.argv[2]
266
267         for path in properties["Devices"]:
268                 device = dbus.Interface(bus.get_object("org.moblin.connman", path),
269                                                 "org.moblin.connman.Device")
270
271                 properties = device.GetProperties()
272
273                 if interface != "" and properties["Interface"] != interface:
274                         continue
275
276                 if properties["Type"] in ["wifi", "wimax"]:
277                         interface = properties["Interface"]
278                         print "Propose scanning for device %s" % (interface)
279                         device.ProposeScan()
280                         found = 1
281                 elif interface != "":
282                         print "No scanning support for device %s" % (interface)
283                         found = 1
284
285         if found == 0:
286                 print "No such device"
287
288 elif sys.argv[1] == "dev":
289         properties = manager.GetProperties()
290
291         interface = ""
292         command = ""
293         value = ""
294         found = 0
295
296         if len(sys.argv) > 2:
297                 interface = sys.argv[2]
298                 if len(sys.argv) > 3:
299                         command = sys.argv[3]
300                         if len(sys.argv) > 4:
301                                 value = sys.argv[4]
302
303         for path in properties["Devices"]:
304                 device = dbus.Interface(bus.get_object("org.moblin.connman", path),
305                                                 "org.moblin.connman.Device")
306
307                 properties = device.GetProperties()
308
309                 if interface != "" and properties["Interface"] != interface:
310                         continue
311
312                 if command == "scan":
313                         if properties["Type"] in ["wifi", "wimax"]:
314                                 interface = properties["Interface"]
315                                 print "Scan for device %s" % (interface)
316                                 device.ProposeScan()
317                         else:
318                                 print "No scanning for device %s" % (interface)
319                 elif command in ["networks", "net"]:
320                         if "Networks" in properties.keys():
321                                 print_networks(properties["Networks"])
322                         else:
323                                 print "Device has no networks"
324                 elif command in ["connect", "conn"] and value != "":
325                         if "Networks" in properties.keys():
326                                 select_network(properties["Networks"], value)
327                         else:
328                                 print "Device can't connect networks"
329                 elif command in ["connect", "conn"]:
330                         print "Need to specify network"
331                 elif command in ["remember", "known"] and value != "":
332                         if "Networks" in properties.keys():
333                                 remember_network(properties["Networks"], value)
334                         else:
335                                 print "Device has no networks"
336                 elif command in ["remember", "known"]:
337                         print "Need to specify network"
338                 elif command in ["disconnect", "disc"] and value != "":
339                         if "Networks" in properties.keys():
340                                 disconnect_network(properties["Networks"], value)
341                         else:
342                                 print "Device has no networks"
343                 elif command in ["discconnect", "disc"]:
344                         if "Networks" in properties.keys():
345                                 disconnect_network(properties["Networks"], "")
346                         else:
347                                 print "Device has no networks"
348                 elif command == "policy" and value != "":
349                         policy = value
350                         device.SetProperty("Policy", policy)
351                 elif command == "policy":
352                         interface = properties["Interface"]
353                         policy = properties["Policy"]
354                         print "Policy of device %s is %s" % (interface, policy)
355                 elif command == "powered" and value != "":
356                         if value == "on":
357                                 powered = dbus.Boolean(1)
358                         elif value == "off":
359                                 powered = dbus.Boolean(0)
360                         else:
361                                 powered = dbus.Boolean(value)
362                         device.SetProperty("Powered", powered)
363                 elif command == "powered":
364                         interface = properties["Interface"]
365                         if properties["Powered"] == dbus.Boolean(1):
366                                 powered = "on"
367                         else:
368                                 powered = "off"
369                         print "Device %s is powered %s" % (interface, powered)
370                 elif command == "priority" and value != "":
371                         priority = int(value)
372                         device.SetProperty("Priority", priority)
373                 elif command == "priority":
374                         interface = properties["Interface"]
375                         priority = properties["Priority"]
376                         print "Device %s has priority of %d" % (interface, priority)
377                 elif command == "list" or command == "":
378                         print_properties(path, properties)
379                 else:
380                         print "Unknown command"
381
382 else:
383         print "Unknown command"