1 from Screen import Screen
2 from Components.ActionMap import ActionMap,NumberActionMap
3 from Screens.MessageBox import MessageBox
4 from Screens.Standby import *
5 from Components.ConfigList import ConfigListScreen
6 from Components.config import config, getConfigListEntry
7 from Components.Network import iNetwork
8 from Tools.Directories import resolveFilename, SCOPE_SKIN_IMAGE
9 from Components.Label import Label
10 from Components.Pixmap import Pixmap
11 from Tools.LoadPixmap import LoadPixmap
12 from Components.MenuList import MenuList
13 from Components.config import config, ConfigYesNo, ConfigIP, NoSave, ConfigNothing, ConfigSubsection, ConfigText, ConfigSelection, getConfigListEntry
14 from Components.PluginComponent import plugins
15 from Plugins.Plugin import PluginDescriptor
16 from enigma import eTimer, eConsoleAppContainer,gRGB
18 from Tools.Directories import resolveFilename, SCOPE_PLUGINS
27 return gRGB(int(str[1:], 0x10))
29 class NetworkAdapterSelection(Screen):
30 def __init__(self, session):
31 Screen.__init__(self, session)
32 iNetwork.getInterfaces()
33 self.wlan_errortext = _("No working wireless networkadapter found.\nPlease verify that you have attached a compatible WLAN USB Stick and your Network is configured correctly.")
34 self.lan_errortext = _("No working local networkadapter found.\nPlease verify that you have attached a network cable and your Network is configured correctly.")
35 self.adapters = [(iNetwork.getFriendlyAdapterName(x),x) for x in iNetwork.getAdapterList()]
36 if len(self.adapters) == 0:
37 self.onFirstExecBegin.append(self.NetworkFallback)
39 self["adapterlist"] = MenuList(self.adapters)
40 self["actions"] = ActionMap(["OkCancelActions"],
42 "ok": self.okbuttonClick,
46 if len(self.adapters) == 1:
47 self.onFirstExecBegin.append(self.okbuttonClick)
49 def okbuttonClick(self):
50 selection = self["adapterlist"].getCurrent()
51 if selection is not None:
52 self.session.openWithCallback(self.AdapterSetupClosed, AdapterSetupConfiguration, selection[1])
54 def AdapterSetupClosed(self, *ret):
57 def NetworkFallback(self):
58 if iNetwork.configuredInterfaces.has_key('wlan0') is True:
59 self.session.openWithCallback(self.ErrorMessageClosed, MessageBox, self.wlan_errortext, type = MessageBox.TYPE_INFO,timeout = 10)
61 self.session.openWithCallback(self.ErrorMessageClosed, MessageBox, self.lan_errortext, type = MessageBox.TYPE_INFO,timeout = 10)
63 def ErrorMessageClosed(self, *ret):
64 if iNetwork.configuredInterfaces.has_key('wlan0') is True:
65 self.session.openWithCallback(self.AdapterSetupClosed, AdapterSetupConfiguration, 'wlan0')
67 self.session.openWithCallback(self.AdapterSetupClosed, AdapterSetupConfiguration, 'eth0')
69 class NameserverSetup(Screen, ConfigListScreen):
71 def __init__(self, session):
72 Screen.__init__(self, session)
73 iNetwork.getInterfaces()
74 self.backupNameserverList = iNetwork.getNameserverList()[:]
75 print "backup-list:", self.backupNameserverList
77 self["ButtonGreentext"] = Label(_("Add"))
78 self["ButtonYellowtext"] = Label(_("Delete"))
79 self["ButtonRedtext"] = Label(_("Close"))
82 self["actions"] = ActionMap(["OkCancelActions", "ColorActions"],
85 "cancel": self.cancel,
92 ConfigListScreen.__init__(self, self.list)
95 def createConfig(self):
96 self.nameservers = iNetwork.getNameserverList()
97 self.nameserverEntries = []
99 for nameserver in self.nameservers:
100 self.nameserverEntries.append(NoSave(ConfigIP(default=nameserver)))
102 def createSetup(self):
105 for i in range(len(self.nameserverEntries)):
106 self.list.append(getConfigListEntry(_("Nameserver %d") % (i + 1), self.nameserverEntries[i]))
108 self["config"].list = self.list
109 self["config"].l.setList(self.list)
112 iNetwork.clearNameservers()
113 for nameserver in self.nameserverEntries:
114 iNetwork.addNameserver(nameserver.value)
115 iNetwork.writeNameserverConfig()
119 iNetwork.clearNameservers()
120 print "backup-list:", self.backupNameserverList
121 for nameserver in self.backupNameserverList:
122 iNetwork.addNameserver(nameserver)
126 iNetwork.addNameserver([0,0,0,0])
131 print "currentIndex:", self["config"].getCurrentIndex()
133 index = self["config"].getCurrentIndex()
134 if index < len(self.nameservers):
135 iNetwork.removeNameserver(self.nameservers[index])
140 class AdapterSetup(Screen, ConfigListScreen):
141 def __init__(self, session, iface):
142 Screen.__init__(self, session)
143 self.session = session
144 iNetwork.getInterfaces()
145 ## FIXME , workaround against current wizzard not able to send arguments
153 if self.iface == 'wlan0':
154 from Plugins.SystemPlugins.WirelessLan.Wlan import wpaSupplicant,Wlan
155 self.ws = wpaSupplicant()
157 list.append(_("WEP"))
158 list.append(_("WPA"))
159 list.append(_("WPA2"))
160 if iNetwork.getAdapterAttribute('wlan0', 'up') is True:
162 self.w = Wlan('wlan0')
163 aps = self.w.getNetworkList()
166 print "[Wlan.py] got Accespoints!"
171 a['essid'] = a['bssid']
172 nwlist.append( a['essid'])
173 nwlist.sort(key = lambda x: x[0])
176 nwlist.append("No Networks found")
180 nwlist.append("No Networks found")
182 config.plugins.wlan.essid = NoSave(ConfigSelection(nwlist, default = nwlist[0]))
183 config.plugins.wlan.encryption.enabled = NoSave(ConfigYesNo(default = False))
184 config.plugins.wlan.encryption.type = NoSave(ConfigSelection(list, default = _("WPA")))
185 config.plugins.wlan.encryption.psk = NoSave(ConfigText(default = "mysecurewlan", fixed_size = False))
188 self.dhcpConfigEntry = NoSave(ConfigYesNo(default=iNetwork.getAdapterAttribute(self.iface, "dhcp") or False))
189 self.hasGatewayConfigEntry = NoSave(ConfigYesNo(default=True))
190 self.ipConfigEntry = NoSave(ConfigIP(default=iNetwork.getAdapterAttribute(self.iface, "ip")) or [0,0,0,0])
191 self.netmaskConfigEntry = NoSave(ConfigIP(default=iNetwork.getAdapterAttribute(self.iface, "netmask") or [255,0,0,0]))
192 self.gatewayConfigEntry = NoSave(ConfigIP(default=iNetwork.getAdapterAttribute(self.iface, "gateway") or [0,0,0,0]))
193 nameserver = (iNetwork.getNameserverList() + [[0,0,0,0]] * 2)[0:2]
194 self.primaryDNS = NoSave(ConfigIP(default=nameserver[0]))
195 self.secondaryDNS = NoSave(ConfigIP(default=nameserver[1]))
197 self["actions"] = ActionMap(["SetupActions","ShortcutActions"],
200 "cancel": self.cancel,
202 "blue": self.KeyBlue,
206 ConfigListScreen.__init__(self, self.list)
208 self.onLayoutFinish.append(self.layoutFinished)
210 self["DNS1text"] = Label(_("Primary DNS"))
211 self["DNS2text"] = Label(_("Secondary DNS"))
212 self["DNS1"] = Label()
213 self["DNS2"] = Label()
215 self["introduction"] = Label(_("Current settings:"))
217 self["IPtext"] = Label(_("IP Address"))
218 self["Netmasktext"] = Label(_("Netmask"))
219 self["Gatewaytext"] = Label(_("Gateway"))
222 self["Mask"] = Label()
223 self["Gateway"] = Label()
225 self["BottomBG"] = Pixmap()
226 self["Adaptertext"] = Label(_("Network:"))
227 self["Adapter"] = Label()
228 self["introduction2"] = Label(_("Press OK to activate the settings."))
229 self["ButtonRed"] = Pixmap()
230 self["ButtonRedtext"] = Label(_("Close"))
231 self["ButtonBlue"] = Pixmap()
232 self["ButtonBluetext"] = Label(_("Edit DNS"))
234 def layoutFinished(self):
235 self["DNS1"].setText(self.primaryDNS.getText())
236 self["DNS2"].setText(self.secondaryDNS.getText())
237 print "self.ipConfigEntry.getText()--->>>",self.ipConfigEntry.getText()
238 if self.ipConfigEntry.getText() is not None:
239 self["IP"].setText(self.ipConfigEntry.getText())
241 self["IP"].setText([0,0,0,0])
242 self["Mask"].setText(self.netmaskConfigEntry.getText())
243 self["Gateway"].setText(self.gatewayConfigEntry.getText())
244 self["Adapter"].setText(iNetwork.getFriendlyAdapterName(self.iface))
246 def createSetup(self):
249 self.dhcpEntry = getConfigListEntry(_("Use DHCP"), self.dhcpConfigEntry)
250 self.list.append(self.dhcpEntry)
251 if not self.dhcpConfigEntry.value:
252 self.list.append(getConfigListEntry(_('IP Address'), self.ipConfigEntry))
253 self.list.append(getConfigListEntry(_('Netmask'), self.netmaskConfigEntry))
254 self.list.append(getConfigListEntry(_('Use a gateway'), self.hasGatewayConfigEntry))
255 if self.hasGatewayConfigEntry.value:
256 self.list.append(getConfigListEntry(_('Gateway'), self.gatewayConfigEntry))
259 self.extendedSetup = None
260 for p in plugins.getPlugins(PluginDescriptor.WHERE_NETWORKSETUP):
261 callFnc = p.__call__["ifaceSupported"](self.iface)
262 if callFnc is not None:
263 self.extended = callFnc
265 if p.__call__.has_key("configStrings"):
266 self.configStrings = p.__call__["configStrings"]
268 self.configStrings = None
270 self.list.append(getConfigListEntry(_("Network SSID"), config.plugins.wlan.essid))
271 self.encryptionEnabled = getConfigListEntry(_("Encryption"), config.plugins.wlan.encryption.enabled)
272 self.list.append(self.encryptionEnabled)
274 if config.plugins.wlan.encryption.enabled.value:
275 self.list.append(getConfigListEntry(_("Encryption Type"), config.plugins.wlan.encryption.type))
276 self.list.append(getConfigListEntry(_("Encryption Key"), config.plugins.wlan.encryption.psk))
279 self["config"].list = self.list
280 self["config"].l.setList(self.list)
283 self.session.open(NameserverSetup)
286 print self["config"].getCurrent()
287 if self["config"].getCurrent() == self.dhcpEntry:
291 ConfigListScreen.keyLeft(self)
295 ConfigListScreen.keyRight(self)
299 selection = self["config"].getCurrent()
300 if selection == self.extendedSetup:
301 self.extended(self.session, self.iface)
303 iNetwork.setAdapterAttribute(self.iface, "dhcp", self.dhcpConfigEntry.value)
304 iNetwork.setAdapterAttribute(self.iface, "ip", self.ipConfigEntry.value)
305 iNetwork.setAdapterAttribute(self.iface, "netmask", self.netmaskConfigEntry.value)
306 if self.hasGatewayConfigEntry.value:
307 iNetwork.setAdapterAttribute(self.iface, "gateway", self.gatewayConfigEntry.value)
309 iNetwork.removeAdapterAttribute(self.iface, "gateway")
311 if self.extended is not None and self.configStrings is not None:
312 iNetwork.setAdapterAttribute(self.iface, "configStrings", self.configStrings(self.iface))
313 self.ws.writeConfig()
315 iNetwork.deactivateNetworkConfig()
316 iNetwork.writeNetworkConfig()
317 iNetwork.activateNetworkConfig()
321 iNetwork.getInterfaces()
328 class AdapterSetupConfiguration(Screen):
330 def __init__(self, session,iface):
331 Screen.__init__(self, session)
333 self.session = session
334 self.mainmenu = self.genMainMenu()
335 self["menulist"] = MenuList(self.mainmenu)
336 self["description"] = Label()
337 self["IFtext"] = Label()
339 self["BottomBG"] = Label()
340 self["Statustext"] = Label()
341 self["statuspic_active"] = Pixmap()
342 self["statuspic_active"].hide()
343 self["statuspic_inactive"] = Pixmap()
344 self["statuspic_inactive"].hide()
345 self["BottomBG"] = Pixmap()
346 self["ButtonRed"] = Pixmap()
347 self["ButtonRedtext"] = Label(_("Close"))
349 self.oktext = _("Press OK on your remote control to continue.")
350 self.reboottext = _("Your Dreambox will restart after pressing OK on your remote control.")
351 self.errortext = _("No working wireless interface found.\n Please verify that you have attached a compatible WLAN USB Stick or enable you local network interface.")
353 self["actions"] = NumberActionMap(["WizardActions","ShortcutActions"],
364 iNetwork.getInterfaces()
365 self.onLayoutFinish.append(self.layoutFinished)
366 self.updateStatusbar()
369 if self["menulist"].getCurrent()[1] == 'edit':
370 if self.iface == 'wlan0':
371 from Plugins.SystemPlugins.WirelessLan.iwlibs import Wireless
372 ifobj = Wireless(self.iface) # a Wireless NIC Object
373 self.wlanresponse = ifobj.getStatistics()
374 if self.wlanresponse[0] != 19: # Wlan Interface found.
375 self.session.open(AdapterSetup,self.iface)
377 # Display Wlan not available Message
378 self.showErrorMessage()
380 self.session.open(AdapterSetup,self.iface)
381 if self["menulist"].getCurrent()[1] == 'test':
382 self.session.open(NetworkAdapterTest,self.iface)
383 if self["menulist"].getCurrent()[1] == 'dns':
384 self.session.open(NameserverSetup)
385 if self["menulist"].getCurrent()[1] == 'scanwlan':
386 from Plugins.SystemPlugins.WirelessLan.iwlibs import Wireless
387 ifobj = Wireless(self.iface) # a Wireless NIC Object
388 self.wlanresponse = ifobj.getStatistics()
389 if self.wlanresponse[0] != 19:
390 from Plugins.SystemPlugins.WirelessLan.plugin import WlanScan
391 self.session.open(WlanScan,self.iface)
393 # Display Wlan not available Message
394 self.showErrorMessage()
395 if self["menulist"].getCurrent()[1] == 'wlanstatus':
396 from Plugins.SystemPlugins.WirelessLan.iwlibs import Wireless
397 ifobj = Wireless(self.iface) # a Wireless NIC Object
398 self.wlanresponse = ifobj.getStatistics()
399 if self.wlanresponse[0] != 19:
400 from Plugins.SystemPlugins.WirelessLan.plugin import WlanStatus
401 self.session.open(WlanStatus,self.iface)
403 # Display Wlan not available Message
404 self.showErrorMessage()
405 if self["menulist"].getCurrent()[1] == 'lanrestart':
406 self.session.openWithCallback(self.restartLan, MessageBox, (_("Are you sure you want to restart your network interfaces?\n\n") + self.oktext ) )
407 if self["menulist"].getCurrent()[1] == 'enablewlan':
408 self.session.openWithCallback(self.enableWlan, MessageBox, _("Are you sure you want to enable WLAN support?\nConnect your Wlan USB Stick to your Dreambox and press OK.\n\n") )
409 if self["menulist"].getCurrent()[1] == 'enablelan':
410 self.session.openWithCallback(self.enableLan, MessageBox, (_("Are you sure you want to enable your local network?\n\n") + self.oktext ) )
411 if self["menulist"].getCurrent()[1] == 'openwizard':
412 from Plugins.SystemPlugins.NetworkWizard.NetworkWizard import NetworkWizard
413 self.session.openWithCallback(self.AdapterSetupClosed, NetworkWizard)
416 self["menulist"].up()
417 self.loadDescription()
420 self["menulist"].down()
421 self.loadDescription()
424 self["menulist"].pageUp()
425 self.loadDescription()
428 self["menulist"].pageDown()
429 self.loadDescription()
431 def layoutFinished(self):
433 self["menulist"].moveToIndex(idx)
434 self.loadDescription()
436 def loadDescription(self):
437 if self["menulist"].getCurrent()[1] == 'edit':
438 self["description"].setText(_("Edit the network configuration of your Dreambox.\n" ) + self.oktext )
439 if self["menulist"].getCurrent()[1] == 'test':
440 self["description"].setText(_("Test the network configuration of your Dreambox.\n" ) + self.oktext )
441 if self["menulist"].getCurrent()[1] == 'enablelan':
442 self["description"].setText(_("Enable the local network of your Dreambox.\n\n" ) + self.oktext )
443 if self["menulist"].getCurrent()[1] == 'dns':
444 self["description"].setText(_("Edit the Nameserver configuration of your Dreambox.\n" ) + self.oktext )
445 if self["menulist"].getCurrent()[1] == 'scanwlan':
446 self["description"].setText(_("Scan your network for wireless Access Points and connect to them using your WLAN USB Stick\n" ) + self.oktext )
447 if self["menulist"].getCurrent()[1] == 'wlanstatus':
448 self["description"].setText(_("Shows the state of your wireless LAN connection.\n" ) + self.oktext )
449 if self["menulist"].getCurrent()[1] == 'lanrestart':
450 self["description"].setText(_("Restart your network connection and interfaces.\n" ) + self.oktext )
451 if self["menulist"].getCurrent()[1] == 'enablewlan':
452 self["description"].setText(_("Pressing OK enables the built in wireless LAN support of your Dreambox.\nWlan USB Sticks with Zydas ZD1211B and RAlink RT73 Chipset are supported.\nConnect your Wlan USB Stick to your Dreambox before pressing OK.\n\n" ) + self.reboottext )
453 if self["menulist"].getCurrent()[1] == 'openwizard':
454 self["description"].setText(_("Use the Networkwizard to configure your Network\n" ) + self.oktext )
457 def updateStatusbar(self):
458 self["IFtext"].setText(_("Network:"))
459 self["IF"].setText(iNetwork.getFriendlyAdapterName(self.iface))
460 self["Statustext"].setText(_("Link:"))
462 if self.iface == 'wlan0':
464 from Plugins.SystemPlugins.WirelessLan.Wlan import Wlan, WlanList, wpaSupplicant
466 stats = w.getStatus()
467 if stats['BSSID'] == "00:00:00:00:00:00":
468 self["statuspic_active"].hide()
469 self["statuspic_inactive"].show()
471 self["statuspic_active"].show()
472 self["statuspic_inactive"].hide()
474 self["statuspic_active"].hide()
475 self["statuspic_inactive"].show()
477 self.getLinkState(self.iface)
482 def genMainMenu(self):
484 menu.append((_("Adapter settings"), "edit"))
485 menu.append((_("Nameserver settings"), "dns"))
486 menu.append((_("Network test"), "test"))
487 menu.append((_("Restart network"), "lanrestart"))
490 self.extendedSetup = None
491 for p in plugins.getPlugins(PluginDescriptor.WHERE_NETWORKSETUP):
492 callFnc = p.__call__["ifaceSupported"](self.iface)
493 if callFnc is not None:
494 menu.append((_("Scan Wireless Networks"), "scanwlan"))
495 menu.append((_("Show WLAN Status"), "wlanstatus"))
496 menu.append((_("Enable LAN"), "enablelan"))
497 if callFnc is None and iNetwork.ifaces.has_key('wlan0') is False:
498 menu.append((_("Enable WLAN"), "enablewlan"))
499 if callFnc is None and iNetwork.ifaces.has_key('wlan0') is True:
500 menu.append((_("Enable LAN"), "enablelan"))
502 if os.path.exists(resolveFilename(SCOPE_PLUGINS, "SystemPlugins/NetworkWizard/networkwizard.xml")):
503 menu.append((_("NetworkWizard"), "openwizard"));
506 def AdapterSetupClosed(self, *ret):
507 self.mainmenu = self.genMainMenu()
508 self["menulist"].l.setList(self.mainmenu)
510 def enableWlan(self, ret = False):
512 iNetwork.resetNetworkConfig('wlan')
513 iNetwork.getInterfaces()
514 if iNetwork.getAdapterAttribute('wlan0', 'up') is True:
516 self.session.openWithCallback(self.AdapterSetupClosed, AdapterSetup, 'wlan0')
518 self.session.openWithCallback(self.restartDreambox, MessageBox, _("Your wireless LAN Adapter could not be startet.\nDo you want to reboot your Dreambox to apply the new configuration?\n"))
521 def enableLan(self, ret = False):
523 iNetwork.resetNetworkConfig('lan')
524 iNetwork.getInterfaces()
525 if iNetwork.getAdapterAttribute('eth0', 'up') is True:
527 self.session.openWithCallback(self.AdapterSetupClosed, AdapterSetup, 'eth0')
529 self.session.openWithCallback(self.restartDreambox, MessageBox, _("Your local LAN Adapter could not be startet.\nDo you want to reboot your Dreambox to apply the new configuration?\n"))
532 def restartLan(self, ret = False):
534 iNetwork.restartNetwork()
536 def restartDreambox(self, ret = False):
538 TryQuitMainloop(self.session,2)
541 def getLinkState(self,iface):
542 iNetwork.getLinkState(iface,self.dataAvail)
544 def dataAvail(self,data):
545 self.output = data.strip()
546 result = self.output.split('\n')
547 pattern = re.compile("Link detected: yes")
549 if re.search(pattern, item):
550 self["statuspic_active"].show()
551 self["statuspic_inactive"].hide()
553 self["statuspic_active"].hide()
554 self["statuspic_inactive"].show()
556 def showErrorMessage(self):
557 self.session.open(MessageBox, self.errortext, type = MessageBox.TYPE_INFO,timeout = 10 )
560 class NetworkAdapterTest(Screen):
562 def __init__(self, session,iface):
563 Screen.__init__(self, session)
565 iNetwork.getInterfaces()
568 self["updown_actions"] = NumberActionMap(["WizardActions","ShortcutActions"],
572 "up": lambda: self.updownhandler('up'),
573 "down": lambda: self.updownhandler('down'),
577 self["shortcuts"] = ActionMap(["ShortcutActions","WizardActions"],
582 self["infoshortcuts"] = ActionMap(["ShortcutActions","WizardActions"],
584 "red": self.closeInfo,
585 "back": self.closeInfo,
587 self["shortcutsgreen"] = ActionMap(["ShortcutActions"],
589 "green": self.KeyGreen,
591 self["shortcutsgreen_restart"] = ActionMap(["ShortcutActions"],
593 "green": self.KeyGreenRestart,
595 self["shortcutsyellow"] = ActionMap(["ShortcutActions"],
597 "yellow": self.KeyYellow,
600 self["shortcutsgreen_restart"].setEnabled(False)
601 self["updown_actions"].setEnabled(False)
602 self["infoshortcuts"].setEnabled(False)
603 self.onClose.append(self.delTimer)
604 self.onLayoutFinish.append(self.layoutFinished)
605 self.steptimer = False
610 self.nextStepTimer = eTimer()
611 self.nextStepTimer.callback.append(self.nextStepTimerFire)
614 self["shortcuts"].setEnabled(True)
615 self["infoshortcuts"].setEnabled(False)
616 self["InfoText"].hide()
617 self["InfoTextBorder"].hide()
618 self["ButtonRedtext"].setText(_("Close"))
622 del self.nextStepTimer
624 def nextStepTimerFire(self):
626 self.nextstep= nextstep
627 self.nextStepTimer.stop()
628 self.steptimer = False
629 self.runTest(self.nextstep)
631 def updownhandler(self,direction):
633 if direction == 'up':
635 activebutton = activebutton -1
636 self.setActiveButton(activebutton)
637 if direction == 'down':
639 activebutton = activebutton +1
640 self.setActiveButton(activebutton)
642 def setActiveButton(self,button):
644 self["NetworkInfo"].show()
645 self["NetworkInfo_selected"].hide()
646 self["AdapterInfo"].hide()
647 self["AdapterInfo_selected"].show()
649 self["AdapterInfo"].show()
650 self["AdapterInfo_selected"].hide()
651 self["DhcpInfo"].show()
652 self["DhcpInfo_selected"].hide()
653 self["NetworkInfo"].hide()
654 self["NetworkInfo_selected"].show()
656 self["NetworkInfo"].show()
657 self["NetworkInfo_selected"].hide()
658 self["IPInfo"].show()
659 self["IPInfo_selected"].hide()
660 self["DhcpInfo"].hide()
661 self["DhcpInfo_selected"].show()
663 self["DhcpInfo"].show()
664 self["DhcpInfo_selected"].hide()
665 self["DNSInfo"].show()
666 self["DNSInfo_selected"].hide()
667 self["IPInfo"].hide()
668 self["IPInfo_selected"].show()
670 self["IPInfo"].show()
671 self["IPInfo_selected"].hide()
672 self["EditSettingsButton"].show()
673 self["EditSettingsButton_selected"].hide()
674 self["DNSInfo"].hide()
675 self["DNSInfo_selected"].show()
677 self["DNSInfo"].show()
678 self["DNSInfo_selected"].hide()
679 self["EditSettingsButton"].hide()
680 self["EditSettingsButton_selected"].show()
682 def runTest(self,next):
704 self.steptimer = True
705 self.nextStepTimer.start(3000)
708 self["Adapter"].setText(iNetwork.getFriendlyAdapterName(self.iface))
709 self["Adapter"].instance.setForegroundColor(getColor(Green))
710 self["AdapterInfo_Text"].instance.setForegroundColor(getColor(Black))
711 self["AdapterInfo_OK"].show()
712 self.steptimer = True
713 self.nextStepTimer.start(3000)
716 self.getLinkState(self.iface)
717 self["NetworkInfo_Text"].instance.setForegroundColor(getColor(Black))
718 self.steptimer = True
719 self.nextStepTimer.start(3000)
722 if iNetwork.getAdapterAttribute(self.iface, 'dhcp') is True:
723 self["Dhcp"].instance.setForegroundColor(getColor(Green))
724 self["Dhcp"].setText(_("enabled"))
725 self["DhcpInfo_OK"].show()
726 self["DhcpInfo_NOK"].hide()
728 self["Dhcp"].instance.setForegroundColor(getColor(Grey))
729 self["Dhcp"].setText(_("disabled"))
730 self["DhcpInfo_NOK"].show()
731 self["DhcpInfo_OK"].hide()
732 self["DhcpInfo_Text"].instance.setForegroundColor(getColor(Black))
733 self.steptimer = True
734 self.nextStepTimer.start(3000)
737 ret = iNetwork.checkNetworkState()
739 self["IP"].instance.setForegroundColor(getColor(Green))
740 self["IP"].setText(_("confirmed"))
741 self["IPInfo_OK"].show()
742 self["IPInfo_NOK"].hide()
744 self["IP"].instance.setForegroundColor(getColor(Grey))
745 self["IP"].setText(_("unconfirmed"))
746 self["IPInfo_NOK"].show()
747 self["IPInfo_OK"].hide()
748 self["IPInfo_Text"].instance.setForegroundColor(getColor(Black))
749 self.steptimer = True
750 self.nextStepTimer.start(3000)
753 self.steptimer = False
754 self.nextStepTimer.stop()
755 if len (iNetwork.getNameserverList()) != 0:
756 self["DNS"].instance.setForegroundColor(getColor(Green))
757 self["DNS"].setText(_("confirmed"))
758 self["DNSInfo_OK"].show()
759 self["DNSInfo_NOK"].hide()
761 self["DNS"].instance.setForegroundColor(getColor(Grey))
762 self["DNS"].setText(_("unconfirmed"))
763 self["DNSInfo_NOK"].show()
764 self["DNSInfo_OK"].hide()
766 self["DNSInfo_Text"].instance.setForegroundColor(getColor(Black))
767 self["EditSettings_Text"].show()
768 self["EditSettingsButton_selected"].show()
769 self["ButtonYellow_off"].show()
770 self["ButtonYellow"].hide()
771 self["ButtonGreentext"].setText(_("Restart test"))
772 self["ButtonGreen"].show()
773 self["ButtonGreen_off"].hide()
774 self["shortcutsgreen"].setEnabled(False)
775 self["shortcutsgreen_restart"].setEnabled(True)
776 self["shortcutsyellow"].setEnabled(False)
777 self["updown_actions"].setEnabled(True)
782 self["shortcutsgreen"].setEnabled(False)
783 self["shortcutsyellow"].setEnabled(True)
784 self["updown_actions"].setEnabled(False)
785 self["ButtonYellow_off"].hide()
786 self["ButtonYellow"].show()
787 self["ButtonGreen"].hide()
788 self["ButtonGreen_off"].show()
789 self.steptimer = True
790 self.nextStepTimer.start(1000)
792 def KeyGreenRestart(self):
795 self.layoutFinished()
796 self["Adapter"].setText((""))
797 self["Network"].setText((""))
798 self["Dhcp"].setText((""))
799 self["IP"].setText((""))
800 self["DNS"].setText((""))
801 self["AdapterInfo_Text"].instance.setForegroundColor(getColor(Grey))
802 self["NetworkInfo_Text"].instance.setForegroundColor(getColor(Grey))
803 self["DhcpInfo_Text"].instance.setForegroundColor(getColor(Grey))
804 self["IPInfo_Text"].instance.setForegroundColor(getColor(Grey))
805 self["DNSInfo_Text"].instance.setForegroundColor(getColor(Grey))
806 self["shortcutsgreen_restart"].setEnabled(False)
807 self["shortcutsgreen"].setEnabled(False)
808 self["shortcutsyellow"].setEnabled(True)
809 self["updown_actions"].setEnabled(False)
810 self["ButtonYellow_off"].hide()
811 self["ButtonYellow"].show()
812 self["ButtonGreen"].hide()
813 self["ButtonGreen_off"].show()
814 self.steptimer = True
815 self.nextStepTimer.start(1000)
819 self["infoshortcuts"].setEnabled(True)
820 self["shortcuts"].setEnabled(False)
821 if activebutton == 1: # Adapter Check
822 self["InfoText"].setText(_("This test detects your configured LAN-Adapter."))
823 self["InfoTextBorder"].show()
824 self["InfoText"].show()
825 self["ButtonRedtext"].setText(_("Back"))
826 if activebutton == 2: #LAN Check
827 self["InfoText"].setText(_("This test checks whether a network cable is connected to your LAN-Adapter.\nIf you get a \"disconnected\" message:\n- verify that a network cable is attached\n- verify that the cable is not broken"))
828 self["InfoTextBorder"].show()
829 self["InfoText"].show()
830 self["ButtonRedtext"].setText(_("Back"))
831 if activebutton == 3: #DHCP Check
832 self["InfoText"].setText(_("This test checks whether your LAN Adapter is set up for automatic IP Address configuration with DHCP.\nIf you get a \"disabled\" message:\n - then your LAN Adapter is configured for manual IP Setup\n- verify thay you have entered correct IP informations in the AdapterSetup dialog.\nIf you get an \"enabeld\" message:\n-verify that you have a configured and working DHCP Server in your network."))
833 self["InfoTextBorder"].show()
834 self["InfoText"].show()
835 self["ButtonRedtext"].setText(_("Back"))
836 if activebutton == 4: # IP Check
837 self["InfoText"].setText(_("This test checks whether a valid IP Address is found for your LAN Adapter.\nIf you get a \"unconfirmed\" message:\n- no valid IP Address was found\n- please check your DHCP, cabling and adapter setup"))
838 self["InfoTextBorder"].show()
839 self["InfoText"].show()
840 self["ButtonRedtext"].setText(_("Back"))
841 if activebutton == 5: # DNS Check
842 self["InfoText"].setText(_("This test checks for configured Nameservers.\nIf you get a \"unconfirmed\" message:\n- please check your DHCP, cabling and Adapter setup\n- if you configured your Nameservers manually please verify your entries in the \"Nameserver\" Configuration"))
843 self["InfoTextBorder"].show()
844 self["InfoText"].show()
845 self["ButtonRedtext"].setText(_("Back"))
846 if activebutton == 6: # Edit Settings
847 self.session.open(AdapterSetup,self.iface)
852 self["shortcutsgreen_restart"].setEnabled(True)
853 self["shortcutsgreen"].setEnabled(False)
854 self["shortcutsyellow"].setEnabled(False)
855 self["ButtonGreentext"].setText(_("Restart test"))
856 self["ButtonYellow_off"].show()
857 self["ButtonYellow"].hide()
858 self["ButtonGreen"].show()
859 self["ButtonGreen_off"].hide()
860 self.steptimer = False
861 self.nextStepTimer.stop()
863 def layoutFinished(self):
864 self["shortcutsyellow"].setEnabled(False)
865 self["AdapterInfo_selected"].hide()
866 self["AdapterInfo_OK"].hide()
868 self["NetworkInfo_selected"].hide()
869 self["NetworkInfo_OK"].hide()
870 self["NetworkInfo_NOK"].hide()
872 self["DhcpInfo_selected"].hide()
873 self["DhcpInfo_OK"].hide()
874 self["DhcpInfo_NOK"].hide()
876 self["IPInfo_selected"].hide()
877 self["IPInfo_OK"].hide()
878 self["IPInfo_NOK"].hide()
880 self["DNSInfo_selected"].hide()
881 self["DNSInfo_OK"].hide()
882 self["DNSInfo_NOK"].hide()
884 self["EditSettings_Text"].hide()
885 self["EditSettingsButton"].hide()
886 self["EditSettingsButton_selected"].hide()
887 self["ButtonYellow"].hide()
888 self["ButtonGreen_off"].hide()
889 self["InfoText"].hide()
890 self["InfoTextBorder"].hide()
893 self["Adaptertext"] = Label(_("LAN Adapter"))
894 self["Adapter"] = Label()
895 self["AdapterInfo"] = Pixmap()
896 self["AdapterInfo_selected"] = Pixmap()
897 self["AdapterInfo_Text"] = Label(_("Show Info"))
898 self["AdapterInfo_OK"] = Pixmap()
900 if self.iface == 'wlan0':
901 self["Networktext"] = Label(_("Wireless Network"))
903 self["Networktext"] = Label(_("Local Network"))
905 self["Network"] = Label()
906 self["NetworkInfo"] = Pixmap()
907 self["NetworkInfo_selected"] = Pixmap()
908 self["NetworkInfo_Text"] = Label(_("Show Info"))
909 self["NetworkInfo_OK"] = Pixmap()
910 self["NetworkInfo_NOK"] = Pixmap()
912 self["Dhcptext"] = Label(_("DHCP"))
913 self["Dhcp"] = Label()
914 self["DhcpInfo"] = Pixmap()
915 self["DhcpInfo_selected"] = Pixmap()
916 self["DhcpInfo_Text"] = Label(_("Show Info"))
917 self["DhcpInfo_OK"] = Pixmap()
918 self["DhcpInfo_NOK"] = Pixmap()
920 self["IPtext"] = Label(_("IP Address"))
922 self["IPInfo"] = Pixmap()
923 self["IPInfo_selected"] = Pixmap()
924 self["IPInfo_Text"] = Label(_("Show Info"))
925 self["IPInfo_OK"] = Pixmap()
926 self["IPInfo_NOK"] = Pixmap()
928 self["DNStext"] = Label(_("Nameserver"))
929 self["DNS"] = Label()
930 self["DNSInfo"] = Pixmap()
931 self["DNSInfo_selected"] = Pixmap()
932 self["DNSInfo_Text"] = Label(_("Show Info"))
933 self["DNSInfo_OK"] = Pixmap()
934 self["DNSInfo_NOK"] = Pixmap()
936 self["EditSettings_Text"] = Label(_("Edit settings"))
937 self["EditSettingsButton"] = Pixmap()
938 self["EditSettingsButton_selected"] = Pixmap()
940 self["ButtonRedtext"] = Label(_("Close"))
941 self["ButtonRed"] = Pixmap()
942 self["ButtonGreentext"] = Label(_("Start test"))
943 self["ButtonGreen"] = Pixmap()
944 self["ButtonGreen_off"] = Pixmap()
945 self["ButtonYellowtext"] = Label(_("Stop test"))
946 self["ButtonYellow"] = Pixmap()
947 self["ButtonYellow_off"] = Pixmap()
949 self["InfoTextBorder"] = Pixmap()
950 self["InfoText"] = Label()
952 def getLinkState(self,iface):
955 from Plugins.SystemPlugins.WirelessLan.Wlan import Wlan
957 stats = w.getStatus()
958 if stats['BSSID'] == "00:00:00:00:00:00":
959 self["Network"].instance.setForegroundColor(getColor(Grey))
960 self["Network"].setText(_("disconnected"))
961 self["NetworkInfo_OK"].hide()
962 self["NetworkInfo_NOK"].show()
964 self["Network"].instance.setForegroundColor(getColor(Green))
965 self["Network"].setText(_("connected"))
966 self["NetworkInfo_OK"].show()
967 self["NetworkInfo_NOK"].hide()
969 self["Network"].instance.setForegroundColor(getColor(Grey))
970 self["Network"].setText(_("disconnected"))
971 self["NetworkInfo_OK"].hide()
972 self["NetworkInfo_NOK"].show()
974 iNetwork.getLinkState(iface,self.dataAvail)
976 def dataAvail(self,data):
977 self.output = data.strip()
978 result = self.output.split('\n')
979 pattern = re.compile("Link detected: yes")
981 if re.search(pattern, item):
982 self["Network"].instance.setForegroundColor(getColor(Green))
983 self["Network"].setText(_("connected"))
984 self["NetworkInfo_OK"].show()
985 self["NetworkInfo_NOK"].hide()
987 self["Network"].instance.setForegroundColor(getColor(Grey))
988 self["Network"].setText(_("disconnected"))
989 self["NetworkInfo_OK"].hide()
990 self["NetworkInfo_NOK"].show()