service: Send D-Bus reply for Manager.ConnectService when service is ready
[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 "  passphrase <service> [passphrase]"
17         print "  autoconnect <service> [autoconnect]"
18         print "  connect <service>"
19         print "  disconnect <service>"
20         print "  remove <service>"
21         print ""
22         print "  scan [type]"
23         print "  enable <type>"
24         print "  disable <type>"
25         print "  offlinemode [on|off]"
26         sys.exit(1)
27
28 def print_services(services):
29         for path in services:
30                 service = dbus.Interface(bus.get_object("net.connman", path),
31                                                 "net.connman.Service")
32
33                 properties = service.GetProperties()
34
35                 identifier = path[path.rfind("/") + 1:]
36
37                 if properties["Favorite"] == dbus.Boolean(1):
38                         favorite = "*"
39                 else:
40                         favorite = " "
41
42                 if "Name" in properties.keys():
43                         name = properties["Name"]
44                 else:
45                         name = "{" + properties["Type"] + "}"
46
47                 print "%s %-26s { %s }" % (favorite, name, identifier)
48
49 if sys.argv[1] == "state":
50         properties = manager.GetProperties()
51
52         print "System is %s" % (properties["State"])
53
54 elif sys.argv[1] in ["services", "list", "show"]:
55         properties = manager.GetProperties()
56
57         print_services(properties["Services"])
58
59 elif sys.argv[1] in ["passphrase", "pass"]:
60         if (len(sys.argv) < 3):
61                 print "Need at least service parameter"
62                 sys.exit(1)
63
64         path = "/profile/default/" + sys.argv[2]
65
66         service = dbus.Interface(bus.get_object("net.connman", path),
67                                                 "net.connman.Service")
68
69         if (len(sys.argv) > 3):
70                 passphrase = sys.argv[3]
71
72                 service.SetProperty("Passphrase", passphrase);
73
74                 print "Passphrase %s set for %s" % (passphrase, sys.argv[2])
75         else:
76                 properties = service.GetProperties()
77
78                 if "Name" in properties.keys():
79                         name = properties["Name"]
80                 else:
81                         name = "{" + properties["Type"] + "}"
82
83                 if "Passphrase" in properties.keys():
84                         passphrase = properties["Passphrase"]
85                 else:
86                         passphrase = "not set"
87
88                 print "Passphrase for %s is %s" % (name, passphrase)
89
90 elif sys.argv[1] in ["autoconnect", "autoconn"]:
91         if (len(sys.argv) < 3):
92                 print "Need at least service parameter"
93                 sys.exit(1)
94
95         path = "/profile/default/" + sys.argv[2]
96
97         service = dbus.Interface(bus.get_object("net.connman", path),
98                                                 "net.connman.Service")
99
100         if (len(sys.argv) > 3):
101                 flag = sys.argv[3].strip().lower()
102                 autoconnect = dbus.Boolean(flag not in ['false', 'f', 'n', '0'])
103
104                 service.SetProperty("AutoConnect", autoconnect);
105
106                 print "Auto connect %s for %s" % (autoconnect, 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 "AutoConnect" in properties.keys():
116                         autoconnect = properties["AutoConnect"]
117                 else:
118                         autoconnect = dbus.Boolean(0)
119
120                 print "Auto connect %s for %s" % (autoconnect, name)
121
122 elif sys.argv[1] in ["connect", "conn"]:
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         try:
133                 service.Connect(timeout=60000)
134         except dbus.DBusException, error:
135                 print "%s: %s" % (error._dbus_error_name, error.message)
136
137 elif sys.argv[1] in ["disconnect", "disc"]:
138         if (len(sys.argv) < 3):
139                 print "Need at least service parameter"
140                 sys.exit(1)
141
142         path = "/profile/default/" + sys.argv[2]
143
144         service = dbus.Interface(bus.get_object("net.connman", path),
145                                                 "net.connman.Service")
146
147         try:
148                 service.Disconnect()
149         except dbus.DBusException, error:
150                 print "%s: %s" % (error._dbus_error_name, error.message)
151
152 elif sys.argv[1] in ["remove"]:
153         if (len(sys.argv) < 3):
154                 print "Need at least service parameter"
155                 sys.exit(1)
156
157         path = "/profile/default/" + sys.argv[2]
158
159         service = dbus.Interface(bus.get_object("net.connman", path),
160                                                 "net.connman.Service")
161
162         properties = service.GetProperties()
163
164         if properties["Favorite"] == dbus.Boolean(0):
165                 print "Only favorite services can be removed"
166                 sys.exit(1)
167
168         try:
169                 service.Remove()
170         except dbus.DBusException, error:
171                 print "%s: %s" % (error._dbus_error_name, error.message)
172
173 elif sys.argv[1] == "scan":
174         if len(sys.argv) > 2:
175                 manager.RequestScan(sys.argv[2])
176         else:
177                 manager.RequestScan("")
178
179 elif sys.argv[1] == "enable":
180         if len(sys.argv) > 2:
181                 manager.EnableTechnology(sys.argv[2])
182         else:
183                 manager.EnableTechnology("")
184
185 elif sys.argv[1] == "disable":
186         if len(sys.argv) > 2:
187                 manager.DisableTechnology(sys.argv[2])
188         else:
189                 manager.DisableTechnology("")
190
191 elif sys.argv[1] in ["offlinemode", "flightmode"]:
192         if len(sys.argv) > 2:
193                 if sys.argv[2] == "on":
194                         active = dbus.Boolean(1)
195                 elif sys.argv[2] == "off":
196                         active = dbus.Boolean(0)
197                 else:
198                         active = dbus.Boolean(sys.argv[2])
199                 manager.SetProperty("OfflineMode", active)
200         else:
201                 properties = manager.GetProperties()
202                 print "Offline mode is %s" % (properties["OfflineMode"])
203
204 else:
205         print "Unknown command"