1 from Screen import Screen
2 from Components.ActionMap import ActionMap
3 from Components.ConfigList import ConfigListScreen
4 from Components.config import config, getConfigListEntry
5 from Components.Network import iNetwork
6 from Components.Label import Label
7 from Components.MenuList import MenuList
8 from Components.config import config, ConfigYesNo, ConfigIP, NoSave, ConfigNothing
9 from Components.PluginComponent import plugins
10 from Plugins.Plugin import PluginDescriptor
12 class NetworkAdapterSelection(Screen):
13 def __init__(self, session):
14 Screen.__init__(self, session)
16 self.adapters = [(iNetwork.getFriendlyAdapterName(x),x) for x in iNetwork.getAdapterList()]
18 self["adapterlist"] = MenuList(self.adapters)
19 self["actions"] = ActionMap(["OkCancelActions"],
21 "ok": self.okbuttonClick,
25 if len(self.adapters) == 1:
26 self.onFirstExecBegin.append(self.okbuttonClick)
28 def okbuttonClick(self):
29 selection = self["adapterlist"].getCurrent()
30 print "SELECTION", selection
31 if selection is not None:
32 self.session.openWithCallback(self.AdapterSetupClosed, AdapterSetup, selection[1])
34 def AdapterSetupClosed(self, *ret):
35 if len(self.adapters) == 1: # just one network adapter.. close selection
38 class NameserverSetup(Screen, ConfigListScreen):
39 def __init__(self, session):
40 Screen.__init__(self, session)
41 self.backupNameserverList = iNetwork.getNameserverList()[:]
42 print "backup-list:", self.backupNameserverList
44 self["red"] = Label(_("Delete"))
45 self["green"] = Label(_("Add"))
49 self["actions"] = ActionMap(["OkCancelActions", "ColorActions"],
52 "cancel": self.cancel,
58 ConfigListScreen.__init__(self, self.list)
61 def createConfig(self):
62 self.nameservers = iNetwork.getNameserverList()
63 self.nameserverEntries = []
65 for nameserver in self.nameservers:
66 self.nameserverEntries.append(NoSave(ConfigIP(default=nameserver)))
68 def createSetup(self):
71 #self.nameserverConfigEntries = []
72 for i in range(len(self.nameserverEntries)):
73 self.list.append(getConfigListEntry(_("Nameserver %d") % (i + 1), self.nameserverEntries[i]))
75 self["config"].list = self.list
76 self["config"].l.setList(self.list)
79 iNetwork.clearNameservers()
80 for nameserver in self.nameserverEntries:
81 iNetwork.addNameserver(nameserver.value)
82 iNetwork.writeNameserverConfig()
86 iNetwork.clearNameservers()
87 print "backup-list:", self.backupNameserverList
88 for nameserver in self.backupNameserverList:
89 iNetwork.addNameserver(nameserver)
93 iNetwork.addNameserver([0,0,0,0])
98 print "currentIndex:", self["config"].getCurrentIndex()
100 index = self["config"].getCurrentIndex()
101 if index < len(self.nameservers):
102 iNetwork.removeNameserver(self.nameservers[index])
106 class AdapterSetup(Screen, ConfigListScreen):
107 def __init__(self, session, iface):
108 Screen.__init__(self, session)
112 print iNetwork.getAdapterAttribute(self.iface, "dhcp")
113 self.dhcpConfigEntry = NoSave(ConfigYesNo(default=iNetwork.getAdapterAttribute(self.iface, "dhcp")))
114 self.hasGatewayConfigEntry = NoSave(ConfigYesNo(default=True))
115 self.ipConfigEntry = NoSave(ConfigIP(default=iNetwork.getAdapterAttribute(self.iface, "ip")))
116 self.netmaskConfigEntry = NoSave(ConfigIP(default=iNetwork.getAdapterAttribute(self.iface, "netmask")))
117 self.gatewayConfigEntry = NoSave(ConfigIP(default=iNetwork.getAdapterAttribute(self.iface, "gateway")))
119 self["iface"] = Label(iNetwork.getFriendlyAdapterName(self.iface))
121 self["actions"] = ActionMap(["SetupActions"],
124 "cancel": self.cancel,
128 ConfigListScreen.__init__(self, self.list)
131 self["introduction"] = Label(_("Press OK to activate the settings."))
133 def createSetup(self):
136 self.dhcpEntry = getConfigListEntry(_("Use DHCP"), self.dhcpConfigEntry)
137 self.list.append(self.dhcpEntry)
138 if not self.dhcpConfigEntry.value:
139 self.list.append(getConfigListEntry(_('IP Address'), self.ipConfigEntry))
140 self.list.append(getConfigListEntry(_('Netmask'), self.netmaskConfigEntry))
141 self.list.append(getConfigListEntry(_('Use a gateway'), self.hasGatewayConfigEntry))
142 if self.hasGatewayConfigEntry.value:
143 self.list.append(getConfigListEntry(_('Gateway'), self.gatewayConfigEntry))
146 self.extendedSetup = None
147 for p in plugins.getPlugins(PluginDescriptor.WHERE_NETWORKSETUP):
148 callFnc = p.__call__["ifaceSupported"](self.iface)
149 if callFnc is not None:
150 self.extended = callFnc
152 if p.__call__.has_key("configStrings"):
153 self.configStrings = p.__call__["configStrings"]
155 self.configStrings = None
157 if p.__call__.has_key("menuEntryName"):
158 menuEntryName = p.__call__["menuEntryName"](self.iface)
160 menuEntryName = _('Extended Setup...')
161 self.extendedSetup = getConfigListEntry(menuEntryName, NoSave(ConfigNothing()))
162 self.list.append(self.extendedSetup)
164 self["config"].list = self.list
165 self["config"].l.setList(self.list)
168 print self["config"].getCurrent()
169 if self["config"].getCurrent() == self.dhcpEntry:
173 ConfigListScreen.keyLeft(self)
177 ConfigListScreen.keyRight(self)
181 selection = self["config"].getCurrent()
182 if selection == self.extendedSetup:
183 self.extended(self.session, self.iface)
185 iNetwork.setAdapterAttribute(self.iface, "dhcp", self.dhcpConfigEntry.value)
186 iNetwork.setAdapterAttribute(self.iface, "ip", self.ipConfigEntry.value)
187 iNetwork.setAdapterAttribute(self.iface, "netmask", self.netmaskConfigEntry.value)
188 if self.hasGatewayConfigEntry.value:
189 iNetwork.setAdapterAttribute(self.iface, "gateway", self.gatewayConfigEntry.value)
191 iNetwork.removeAdapterAttribute(self.iface, "gateway")
193 if self.extended is not None and self.configStrings is not None:
194 iNetwork.setAdapterAttribute(self.iface, "configStrings", self.configStrings(self.iface))
196 iNetwork.deactivateNetworkConfig()
197 iNetwork.writeNetworkConfig()
198 iNetwork.activateNetworkConfig()
202 iNetwork.getInterfaces()