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
13 class NetworkAdapterSelection(Screen):
14 def __init__(self, session):
15 Screen.__init__(self, session)
17 self["adapterlist"] = MenuList(iNetwork.getAdapterList())
19 self["actions"] = ActionMap(["OkCancelActions"],
21 "ok": self.okbuttonClick ,
25 def okbuttonClick(self):
26 selection = self["adapterlist"].getCurrent()
27 print "selection:", selection
28 if selection is not None:
29 self.session.open(AdapterSetup, selection)
31 class NameserverSetup(Screen, ConfigListScreen):
32 def __init__(self, session):
33 Screen.__init__(self, session)
34 self.backupNameserverList = iNetwork.getNameserverList()[:]
35 print "backup-list:", self.backupNameserverList
37 self["red"] = Label(_("Delete"))
38 self["green"] = Label(_("Add"))
42 self["actions"] = ActionMap(["OkCancelActions", "ColorActions"],
45 "cancel": self.cancel,
51 ConfigListScreen.__init__(self, self.list)
54 def createConfig(self):
55 self.nameservers = iNetwork.getNameserverList()
56 self.nameserverEntries = []
58 for nameserver in self.nameservers:
59 self.nameserverEntries.append(NoSave(ConfigIP(default=nameserver)))
61 def createSetup(self):
64 #self.nameserverConfigEntries = []
65 for i in range(len(self.nameserverEntries)):
66 self.list.append(getConfigListEntry(_("Nameserver %d") % (i + 1), self.nameserverEntries[i]))
68 self["config"].list = self.list
69 self["config"].l.setList(self.list)
72 iNetwork.clearNameservers()
73 for nameserver in self.nameserverEntries:
74 iNetwork.addNameserver(nameserver.value)
75 iNetwork.writeNameserverConfig()
79 iNetwork.clearNameservers()
80 print "backup-list:", self.backupNameserverList
81 for nameserver in self.backupNameserverList:
82 iNetwork.addNameserver(nameserver)
86 iNetwork.addNameserver([0,0,0,0])
91 print "currentIndex:", self["config"].getCurrentIndex()
93 index = self["config"].getCurrentIndex()
94 if index < len(self.nameservers):
95 iNetwork.removeNameserver(self.nameservers[index])
100 class AdapterSetup(Screen, ConfigListScreen):
101 def __init__(self, session, iface):
102 Screen.__init__(self, session)
106 print iNetwork.getAdapterAttribute(self.iface, "dhcp")
107 self.dhcpConfigEntry = NoSave(ConfigYesNo(default=iNetwork.getAdapterAttribute(self.iface, "dhcp")))
108 self.hasGatewayConfigEntry = NoSave(ConfigYesNo(default=True))
109 self.ipConfigEntry = NoSave(ConfigIP(default=iNetwork.getAdapterAttribute(self.iface, "ip")))
110 self.netmaskConfigEntry = NoSave(ConfigIP(default=iNetwork.getAdapterAttribute(self.iface, "netmask")))
111 self.gatewayConfigEntry = NoSave(ConfigIP(default=iNetwork.getAdapterAttribute(self.iface, "gateway")))
113 self["iface"] = Label(iNetwork.getAdapterName(self.iface))
115 self["actions"] = ActionMap(["SetupActions"],
118 "cancel": self.cancel,
122 ConfigListScreen.__init__(self, self.list)
125 self["introduction"] = Label(_("Press OK to activate the settings."))
127 def createSetup(self):
130 self.dhcpEntry = getConfigListEntry(_("Use DHCP"), self.dhcpConfigEntry)
131 self.list.append(self.dhcpEntry)
132 if not self.dhcpConfigEntry.value:
133 self.list.append(getConfigListEntry(_('IP Address'), self.ipConfigEntry))
134 self.list.append(getConfigListEntry(_('Netmask'), self.netmaskConfigEntry))
135 self.list.append(getConfigListEntry(_('Use a gateway'), self.hasGatewayConfigEntry))
136 if self.hasGatewayConfigEntry.value:
137 self.list.append(getConfigListEntry(_('Gateway'), self.gatewayConfigEntry))
140 self.extendedSetup = None
141 for p in plugins.getPlugins(PluginDescriptor.WHERE_NETWORKSETUP):
142 callFnc = p.__call__["ifaceSupported"](self.iface)
143 if callFnc is not None:
144 self.extended = callFnc
146 if p.__call__.has_key("configStrings"):
147 self.configStrings = p.__call__["configStrings"]
149 self.configStrings = None
151 if p.__call__.has_key("menuEntryName"):
152 menuEntryName = p.__call__["menuEntryName"](self.iface)
154 menuEntryName = _('Extended Setup...')
155 self.extendedSetup = getConfigListEntry(menuEntryName, NoSave(ConfigNothing()))
156 self.list.append(self.extendedSetup)
158 self["config"].list = self.list
159 self["config"].l.setList(self.list)
162 print self["config"].getCurrent()
163 if self["config"].getCurrent() == self.dhcpEntry:
167 ConfigListScreen.keyLeft(self)
171 ConfigListScreen.keyRight(self)
175 selection = self["config"].getCurrent()
176 if selection == self.extendedSetup:
177 self.extended(self.session, self.iface)
179 iNetwork.setAdapterAttribute(self.iface, "dhcp", self.dhcpConfigEntry.value)
180 iNetwork.setAdapterAttribute(self.iface, "ip", self.ipConfigEntry.value)
181 iNetwork.setAdapterAttribute(self.iface, "netmask", self.netmaskConfigEntry.value)
182 if self.hasGatewayConfigEntry.value:
183 iNetwork.setAdapterAttribute(self.iface, "gateway", self.gatewayConfigEntry.value)
185 iNetwork.removeAdapterAttribute(self.iface, "gateway")
187 if self.extended is not None and self.configStrings is not None:
188 iNetwork.setAdapterAttribute(self.iface, "configStrings", self.configStrings(self.iface))
190 iNetwork.deactivateNetworkConfig()
191 iNetwork.writeNetworkConfig()
192 iNetwork.activateNetworkConfig()
196 iNetwork.getInterfaces()