Rewrote from scratch.
[cnetworkmanager.git] / device07.py
blob0de25904ac10f7848a75dbad2a5127520ad0f574
1 from device import cDevice, cDeviceEth
2 from manager import NMI
3 from ap07 import cAP_07
4 from util import *
5 import dbus
7 class cDevice_07(cDevice):
8 def DeviceType0(self):
9 if self.dt is None:
10 self.dt = self.get_property("DeviceType")
11 if self.dt == 1:
12 self.__class__ = cDeviceEth_07
13 elif self.dt == 2:
14 self.__class__ = cDeviceWifi_07
15 elif self.dt == 3:
16 self.__class__ = cDeviceGSM_07
17 return self.dt
19 NM_DEVICE_STATE = [
20 "UNKNOWN", "UNMANAGED", "UNAVAILABLE", "DISCONNECTED", "PREPARE",
21 "CONFIG", "NEED_AUTH", "IP_CONFIG", "ACTIVATED", "FAILED",]
23 def Dump(self):
24 cDevice.Dump(self)
26 # "Ip4Config", only for NM_DEVICE_STATE_ACTIVATED
27 self.dump_props(["Udi", "Interface", "Driver",])
28 addr = self.get_property("Ip4Address")
29 print " Ip4Address:", self.ip_str(addr)
30 caps = self.get_property("Capabilities")
31 print " Capabilities:", bitmask_str(self.NM_DEVICE_CAP, caps)
32 state = self.NM_DEVICE_STATE[self.get_property("State")]
33 print " Dev State:", state
34 if state == "ACTIVATED":
35 self.DumpIp4Config(self.get_property("Ip4Config"))
37 dt = self.DeviceType()
38 print " Dev Type:", dt
39 self.DumpMore()
41 class cDeviceEth_07(cDevice_07, cDeviceEth):
42 def DumpMore(self):
43 self.dump_props(["HwAddress", "Speed", "Carrier"])
45 class cDeviceGSM_07(cDevice_07):
46 def DumpMore(self):
47 self.dump_props([])
49 class cDeviceWifi_07(cDevice_07):
50 NM_802_11_DEVICE_CAP = {1:"CIPHER_WEP40", 2:"CIPHER_WEP104",
51 4:"CIPHER_TKIP", 8:"CIPHER_CCMP",
52 16:"WPA", 32:"RSN",}
54 def APs(self):
55 self.wdevi = dbus.Interface(self.obj, NMI + ".Device.Wireless")
56 aps = self.wdevi.GetAccessPoints()
57 return map(cAP_07, aps)
59 def DumpMore(self):
60 print " Dev Mode:", self.IW_MODE[self.get_property("Mode")]
61 wcaps = self.get_property("WirelessCapabilities")
62 print " Wifi Capabilities:", bitmask_str(self.NM_802_11_DEVICE_CAP, wcaps)
63 self.dump_props(["HwAddress", "Bitrate", "ActiveAccessPoint"])
64 #FIXME pass options otherwise
65 # if self.options.ap:
66 if True:
67 print " Access Points"
68 for ap in self.APs():
69 ap.Dump()