test: Add support of hidden service input into simple-agent
[platform/upstream/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 "  autoconnect <service> [autoconnect]"
17         print "  connect <service>"
18         print "  disconnect <service>"
19         print "  remove <service>"
20         print ""
21         print "  scan <type>"
22         print "  enable <type>"
23         print "  disable <type>"
24         print "  offlinemode [on|off]"
25         sys.exit(1)
26
27 def print_services(services):
28         for path, properties in services:
29                 identifier = path[path.rfind("/") + 1:]
30
31                 if properties["Favorite"] == dbus.Boolean(1):
32                         favorite = "*"
33                 else:
34                         favorite = " "
35
36                 if "Name" in properties.keys():
37                         name = properties["Name"]
38                 else:
39                         name = "{" + properties["Type"] + "}"
40
41                 print "%s %-26s { %s }" % (favorite, name, identifier)
42
43 if sys.argv[1] == "state":
44         properties = manager.GetProperties()
45
46         print "System is %s" % (properties["State"])
47
48 elif sys.argv[1] in ["services", "list", "show"]:
49         print_services(manager.GetServices())
50
51 elif sys.argv[1] in ["autoconnect", "autoconn"]:
52         if (len(sys.argv) < 3):
53                 print "Need at least service parameter"
54                 sys.exit(1)
55
56         path = "/net/connman/service/" + sys.argv[2]
57
58         service = dbus.Interface(bus.get_object("net.connman", path),
59                                                 "net.connman.Service")
60
61         if (len(sys.argv) > 3):
62                 flag = sys.argv[3].strip().lower()
63                 autoconnect = dbus.Boolean(flag not in ['false', 'f', 'n', '0'])
64
65                 service.SetProperty("AutoConnect", autoconnect);
66
67                 print "Auto connect %s for %s" % (autoconnect, sys.argv[2])
68         else:
69                 properties = service.GetProperties()
70
71                 if "Name" in properties.keys():
72                         name = properties["Name"]
73                 else:
74                         name = "{" + properties["Type"] + "}"
75
76                 if "AutoConnect" in properties.keys():
77                         autoconnect = properties["AutoConnect"]
78                 else:
79                         autoconnect = dbus.Boolean(0)
80
81                 print "Auto connect %s for %s" % (autoconnect, name)
82
83 elif sys.argv[1] in ["connect", "conn"]:
84         if (len(sys.argv) < 3):
85                 print "Need at least service parameter"
86                 sys.exit(1)
87
88         path = "/net/connman/service/" + sys.argv[2]
89
90         service = dbus.Interface(bus.get_object("net.connman", path),
91                                                 "net.connman.Service")
92
93         try:
94                 service.Connect(timeout=60000)
95         except dbus.DBusException, error:
96                 print "%s: %s" % (error._dbus_error_name, error.message)
97
98 elif sys.argv[1] in ["disconnect", "disc"]:
99         if (len(sys.argv) < 3):
100                 print "Need at least service parameter"
101                 sys.exit(1)
102
103         path = "/net/connman/service/" + sys.argv[2]
104
105         service = dbus.Interface(bus.get_object("net.connman", path),
106                                                 "net.connman.Service")
107
108         try:
109                 service.Disconnect()
110         except dbus.DBusException, error:
111                 print "%s: %s" % (error._dbus_error_name, error.message)
112
113 elif sys.argv[1] in ["remove"]:
114         if (len(sys.argv) < 3):
115                 print "Need at least service parameter"
116                 sys.exit(1)
117
118         path = "/net/connman/service/" + sys.argv[2]
119
120         service = dbus.Interface(bus.get_object("net.connman", path),
121                                                 "net.connman.Service")
122
123         properties = service.GetProperties()
124
125         if properties["Favorite"] == dbus.Boolean(0):
126                 print "Only favorite services can be removed"
127                 sys.exit(1)
128
129         try:
130                 service.Remove()
131         except dbus.DBusException, error:
132                 print "%s: %s" % (error._dbus_error_name, error.message)
133
134 elif sys.argv[1] == "scan":
135         if len(sys.argv) > 2:
136                 path = "/net/connman/technology/" + sys.argv[2]
137                 technology = dbus.Interface(bus.get_object("net.connman", path),
138                                                 "net.connman.Technology")
139                 technology.Scan()
140
141 elif sys.argv[1] == "enable":
142         if len(sys.argv) > 2:
143                 path = "/net/connman/technology/" + sys.argv[2]
144                 technology = dbus.Interface(bus.get_object("net.connman", path),
145                                             "net.connman.Technology")
146                 technology.SetProperty("Powered", True)
147
148 elif sys.argv[1] == "disable":
149         if len(sys.argv) > 2:
150                 path = "/net/connman/technology/" + sys.argv[2]
151                 technology = dbus.Interface(bus.get_object("net.connman", path),
152                                             "net.connman.Technology")
153                 technology.SetProperty("Powered", False)
154
155 elif sys.argv[1] in ["offlinemode", "flightmode"]:
156         if len(sys.argv) > 2:
157                 if sys.argv[2] == "on":
158                         active = dbus.Boolean(1)
159                 elif sys.argv[2] == "off":
160                         active = dbus.Boolean(0)
161                 else:
162                         active = dbus.Boolean(sys.argv[2])
163                 manager.SetProperty("OfflineMode", active)
164         else:
165                 properties = manager.GetProperties()
166                 print "Offline mode is %s" % (properties["OfflineMode"])
167
168 else:
169         print "Unknown command"