summaryrefslogtreecommitdiff
path: root/test/test-manager
blob: a29eaf757e21cccca54756ab4fa7106444be90f7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
#!/usr/bin/python

import dbus

def extract_values(values):
	val = "{"
	for key in values.keys():
		val += " " + key + "="
		if key in ["PrefixLength"]:
			val += "%s" % (int(values[key]))
		else:
			if key in ["Servers", "Excludes"]:
				val += extract_list(values[key])
			else:
				val += str(values[key])
	val += " }"
	return val

def extract_list(list):
	val = "["
	for i in list:
		val += " " + str(i)
	val += " ]"
	return val

bus = dbus.SystemBus()

manager = dbus.Interface(bus.get_object("net.connman", "/"),
					"net.connman.Manager")

properties = manager.GetProperties()

def print_properties(key, value):
	if key == "Profiles":
		interface = "net.connman.Profile"
	elif key == "Services":
		interface = "net.connman.Service"
	elif key == "Technologies":
		interface = "net.connman.Technology"
	else:
		return

	print "%s" % (key)
	for path in value:
		print "    %s" % (path)
		obj = dbus.Interface(bus.get_object("net.connman", path),
								interface)

		properties = obj.GetProperties()

		for key in properties.keys():
			if key in ["Services", "Technologies"]:
				continue

			elif key in ["Powered", "Scanning", "Connected",
					"Available", "Remember", "Default",
					"Favorite", "Immutable", "AutoConnect",
						"LoginRequired", "SetupRequired",
						"PassphraseRequired"]:
				if properties[key] == dbus.Boolean(1):
					val = "true"
				else:
					val = "false"

			elif key in ["IPv4", "IPv4.Configuration",
					"IPv6", "IPv6.Configuration",
						"Proxy", "Proxy.Configuration",
							"Ethernet", "Provider"]:
				val = extract_values(properties[key])

			elif key in ["Nameservers", "Nameservers.Configuration",
					"Domains", "Domains.Configuration",
						"Security"]:
				val = extract_list(properties[key])

			elif key in ["Strength", "Priority"]:
				val = int(properties[key])

			elif key in ["Tethering"]:
				if properties[key] == dbus.Boolean(1):
					val = "true"
				else:
					val = "false"
			else:
				val = str(properties[key])

			print "        %s = %s" % (key, val)

		if "Services" in properties.keys():
			list = ""
			for path in properties["Services"]:
				val = str(path)
				list = list + val[val.rfind("/") + 1:] + " "
			print "        Services = [ %s]" % (list)


for key in properties.keys():
	if key in ["Profiles", "Services", "Technologies"]:
		print_properties(key, properties[key])
	elif key in ["AvailableTechnologies", "EnabledTechnologies",
					"ConnectedTechnologies",
				"AvailableDebugs", "EnabledDebugs"]:
		print "%s" % (key)
		list = ""
		for val in properties[key]:
			list = list + val + " "
		print "    [ %s]" % (list)
	elif key in ["OfflineMode", "Tethering"]:
		print "%s" % (key)
		if properties[key] == dbus.Boolean(1):
			print "    true"
		else:
			print "    false"
	elif key in ["DefaultTechnology"]:
		print "%s" % (key)
		if properties[key] == "":
			print "    <none>"
		else:
			print "    %s" % (properties[key])
	else:
		print "%s" % (key)
		print "    %s" % (properties[key])