def setup(self): HardwareDialog.setup(self) mlist = [] modInfo = NCHardwareList.getModInfo() for i in modInfo.keys(): if modInfo[i]['type'] == "tr" and \ modInfo[i].has_key('description'): mlist.append(modInfo[i]['description']) mlist.sort() self.xml.get_widget("adapterComboBox").set_popdown_strings(mlist) nextdev = NCHardwareList.getNextDev("tr") self.xml.get_widget('tokenringDeviceEntry').set_text(nextdev)
def getConf(self): PROGNAME = 'system-config-network' import netconfpkg from netconfpkg import NC_functions NC_functions.prepareRoot(CHROOT) from netconfpkg import \ NCDeviceList, NCProfileList, \ NCHardwareList, NCIPsecList from netconfpkg.NC_functions import log NC_functions.setVerboseLevel(0) NC_functions.setDebugLevel(0) log.set_loglevel(NC_functions.getVerboseLevel()) devlists = [ # NCIPsecList.getIPsecList(), NCDeviceList.getDeviceList(), NCHardwareList.getHardwareList(), NCProfileList.getProfileList(), ] devstr = "" for devlist in devlists: devlist.load() devstr += str(devlist) return devstr
def __init__ (self, toplevel=None): glade_file = "TokenRingHardwareDruid.glade" if not os.path.exists(glade_file): glade_file = GLADEPATH + glade_file if not os.path.exists(glade_file): glade_file = NETCONFDIR + glade_file self.xml = gtk.glade.XML(glade_file, 'druid', domain=PROGNAME) xml_signal_autoconnect(self.xml, { "on_adapterEntry_changed" : self.on_adapterEntry_changed, "on_hardware_page_prepare" : self.on_hardware_page_prepare, "on_hardware_page_next" : self.on_hardware_page_next, "on_hardware_page_back" : self.on_hardware_page_back }) self.toplevel = toplevel self.hardwarelist = NCHardwareList.getHardwareList() self.hw = None self.has_tokenring = True self.druids = [] druid = self.xml.get_widget('druid') for I in druid.get_children(): druid.remove(I) self.druids.append(I) self.setup() self.hydrate()
def __init__(self): glade_file = "hardwaretype.glade" if not os.path.exists(glade_file): glade_file = GLADEPATH + glade_file if not os.path.exists(glade_file): glade_file = NETCONFDIR + glade_file self.xml = gtk.glade.XML(glade_file, None, domain=PROGNAME) xml_signal_autoconnect(self.xml, { "on_okButton_clicked" : self.on_okButton_clicked, "on_cancelButton_clicked" : self.on_cancelButton_clicked, }) self.dialog = self.xml.get_widget("Dialog") load_icon("network.xpm", self.dialog) self.Type = None machine = os.uname()[4] hardwarelist = NCHardwareList.getHardwareList() if machine == 's390' or machine == 's390x': devicetypes = [ ETHERNET, TOKENRING, QETH ] else: df = getHardwareFactory() devicetypes = df.keys() for hw in hardwarelist: if hw.Type == ISDN: devicetypes.remove(ISDN) break self.xml.get_widget( 'hardwareTypeCombo').set_popdown_strings(devicetypes) self.hydrate()
def hydrate(self): dialup = self.device.Dialup ecombo = self.xml.get_widget("ethernetDeviceComboBox") hwdesc = [] hwcurr = None hardwarelist = NCHardwareList.getHardwareList() for hw in hardwarelist: if hw.Type == "Ethernet": desc = str(hw.Name) + ' (' + hw.Description + ')' hwdesc.append(desc) if dialup and dialup.EthDevice and \ hw.Name == dialup.EthDevice: hwcurr = desc if len(hwdesc): hwdesc.sort() ecombo.set_popdown_strings(hwdesc) if not hwcurr and len(hwdesc): hwcurr = hwdesc[0] widget = self.xml.get_widget("ethernetDeviceEntry") if dialup and dialup.EthDevice: widget.set_text(hwcurr)
def on_cancel_interface(self, *args): # pylint: disable-msg=W0613 hardwarelist = NCHardwareList.getHardwareList() hardwarelist.rollback() devicelist = NCDeviceList.getDeviceList() devicelist.rollback() self.toplevel.destroy() self.canceled = True gtk.main_quit()
def __init__(self, toplevel=None, do_save=1, druid=None): InterfaceCreator.__init__(self, do_save=do_save) self.do_save = do_save self.toplevel = toplevel self.hardwarelist = NCHardwareList.getHardwareList() self.hw = None self.druids = [] self.xml = None
def setup(self): mlist = [] modInfo = NCHardwareList.getModInfo() for i in modInfo.keys(): if modInfo[i]['type'] == "tr" and \ modInfo[i].has_key('description'): mlist.append(modInfo[i]['description']) mlist.sort() self.xml.get_widget("adapterComboBox").set_popdown_strings(mlist)
def hydrate(self): if self.hw and self.hw.Name: self.xml.get_widget('tokenringDeviceEntry').set_text(self.hw.Name) self.xml.get_widget('adapterEntry').set_text(self.hw.Description) self.xml.get_widget('adapterEntry').set_sensitive(False) self.xml.get_widget('adapterComboBox').set_sensitive(False) else: nextdev = NCHardwareList.getNextDev("tr") self.xml.get_widget('tokenringDeviceEntry').set_text(nextdev)
def hydrate(self): if self.hw and self.hw.Name: self.xml.get_widget('ethernetDeviceEntry').set_text(self.hw.Name) self.xml.get_widget('adapterEntry').set_text(self.hw.Description) self.xml.get_widget('adapterEntry').set_sensitive(False) self.xml.get_widget('adapterComboBox').set_sensitive(False) else: nextDevice = NCHardwareList.getNextDev('eth') self.xml.get_widget('ethernetDeviceEntry').set_text(nextDevice)
def hydrate(self): if self.hw.Name: self.xml.get_widget('ethernetDeviceEntry').set_text(self.hw.Name) if self.hw.Card.IoPort: self.xml.get_widget('ioEntry').set_text(self.hw.Card.IoPort) if self.hw.Card.IoPort1: self.xml.get_widget('io1Entry').set_text(self.hw.Card.IoPort1) if self.hw.Card.IoPort2: self.xml.get_widget('io2Entry').set_text(self.hw.Card.IoPort2) if self.hw.Card.Options: self.xml.get_widget('optionsEntry').set_text( self.hw.Card.Options) if self.hw.MacAddress: self.xml.get_widget('macEntry').set_text(self.hw.MacAddress) else: hwlist = NCHardwareList.getHardwareList() nextDevice = NCHardwareList.getNextDev('eth') self.xml.get_widget('ethernetDeviceEntry').set_text(nextDevice)
def dehydrate(self): self.hw.Name = self.xml.get_widget('ethernetDeviceEntry').get_text() self.hw.Description = self.xml.get_widget('adapterEntry').get_text() if not self.hw.Type: self.hw.Type = ETHERNET self.hw.createCard() modInfo = NCHardwareList.getModInfo() if not self.hw.Card.ModuleName or self.hw.Card.ModuleName == "": self.hw.Card.ModuleName = _('Unknown') for i in modInfo.keys(): if modInfo[i].has_key('description') and \ modInfo[i]['description'] == self.hw.Description: self.hw.Card.ModuleName = i
def dehydrate(self): hardwarelist = NCHardwareList.getHardwareList() self.hw.Description = _('Generic Modem') modem_list = [] if not self.hw.Name: for i in hardwarelist: if i.Type == "Modem": modem_list.append(i.Name) if modem_list: for i in xrange(100): if modem_list.count("Modem" + str(i)) == 0: self.hw.Name = "Modem" + str(i) break else: self.hw.Name = "Modem0" self.hw.Modem.DeviceName = self.xml.get_widget(\ "modemDeviceEntry").get_text() self.hw.Modem.BaudRate = int(\ self.xml.get_widget("baudrateEntry").get_text()) flow = self.xml.get_widget("flowControlEntry").get_text() for i in modemFlowControls.keys(): if modemFlowControls[i] == flow: self.hw.Modem.FlowControl = i break Item = self.xml.get_widget("volumeMenu").get_child().get_label() if Item == _("Off"): self.hw.Modem.ModemVolume = 0 elif Item == _("Low"): self.hw.Modem.ModemVolume = 1 elif Item == _("Medium"): self.hw.Modem.ModemVolume = 2 elif Item == _("High"): self.hw.Modem.ModemVolume = 3 elif Item == _("Very High"): self.hw.Modem.ModemVolume = 4 else: self.hw.Modem.ModemVolume = 0 if self.xml.get_widget("toneDialingCB").get_active(): self.hw.Modem.DialCommand = "ATDT" else: self.hw.Modem.DialCommand = "ATDP" if len(self.hw.Modem.DeviceName)>5 and \ self.hw.Modem.DeviceName[:5] != '/dev/': self.hw.Modem.DeviceName = '/dev/' + self.hw.Modem.DeviceName
def on_hw_config_page_prepare(self, druid_page, druid): # pylint: disable-msg=W0613 hardwarelist = NCHardwareList.getHardwareList() clist = self.xml.get_widget("hardwareList") clist.clear() self.devlist = [] for hw in hardwarelist: if hw.Type == TOKENRING: desc = hw.Description + " (" + hw.Name + ")" clist.append([desc]) self.devlist.append(hw.Name) clist.append([_("Other Tokenring Card")]) clist.select_row(self.hw_sel, 0)
def dehydrate(self): if not self.has_tokenring: mid = self.hardwarelist.addHardware(TOKENRING) self.hw = self.hardwarelist[mid] self.hw.Type = TOKENRING self.hw.createCard() self.hw.Name = self.xml.get_widget('tokenringDeviceEntry').get_text() self.hw.Description = self.xml.get_widget('adapterEntry').get_text() modInfo = NCHardwareList.getModInfo() self.hw.Card.ModuleName = 'Unknown' for i in modInfo.keys(): if modInfo[i].has_key('description') and \ modInfo[i]['description'] == self.hw.Description: self.hw.Card.ModuleName = i
def dehydrate(self): HardwareDialog.dehydrate(self) self.hw.Name = self.xml.get_widget('tokenringDeviceEntry').get_text() self.hw.Description = self.xml.get_widget('adapterEntry').get_text() self.hw.Type = 'Token Ring' self.hw.createCard() modInfo = NCHardwareList.getModInfo() if not self.hw.Card.ModuleName or self.hw.Card.ModuleName == "": self.hw.Card.ModuleName = _('Unknown') for i in modInfo.keys(): if modInfo[i].has_key('description') and \ modInfo[i]['description'] == self.hw.Description: self.hw.Card.ModuleName = i
def dehydrate(self): if not self.has_ethernet: mid = self.hardwarelist.addHardware(ETHERNET) self.hw = self.hardwarelist[mid] self.hw.Type = 'Ethernet' self.hw.createCard() self.hw.Name = self.xml.get_widget('ethernetDeviceEntry').get_text() self.hw.Description = self.xml.get_widget('adapterEntry').get_text() modInfo = NCHardwareList.getModInfo() self.hw.Card.ModuleName = 'Unknown' for i in modInfo.keys(): if (modInfo[i].has_key('description') and \ modInfo[i]['description'] == self.hw.Description) or \ (self.hw.Description == i): self.hw.Card.ModuleName = i
def on_hw_config_page_prepare(self, druid_page, druid): hardwarelist = NCHardwareList.getHardwareList() hardwarelist.updateFromSystem() clist = self.xml.get_widget("hardwareList") clist.clear() self.devlist = [] for hw in hardwarelist: if hw.Type == WIRELESS: desc = hw.Description + " (" + hw.Name + ")" clist.append([desc]) self.devlist.append(hw.Name) clist.append([_("Other Wireless Card")]) clist.select_row(self.hw_sel, 0)
def on_finish_page_prepare(self, druid_page, druid): # pylint: disable-msg=W0613 hardwarelist = NCHardwareList.getHardwareList() for hw in hardwarelist: if hw.Type == self.connection_type: break dialup = self.device.Dialup # FIXME: Bad style for translation.. s = str( _("You have selected the following information:") + "\n\n" + " " + _("Ethernet device:") + " " + dialup.EthDevice + "\n" + " " + _("Provider name:") + " " + dialup.ProviderName + "\n" + " " + _("Login name:") + " " + dialup.Login) druid_page.set_text(s)
def on_finish_page_finish(self, druid_page, druid): hardwarelist = NCHardwareList.getHardwareList() hardwarelist.commit() self.devicelist.append(self.device) self.device.commit() for prof in self.profilelist: if prof.Active == False: continue prof.ActiveDevices.append(self.device.DeviceId) break self.profilelist.commit() self.devicelist.commit() self.toplevel.destroy() gtk.main_quit()
def on_finish_page_prepare(self, druid_page, druid): # pylint: disable-msg=W0613 hardwarelist = NCHardwareList.getHardwareList() description = "" for hw in hardwarelist: if hw.Type == self.connection_type: description = hw.Description break dialup = self.device.createDialup() s = _("You have selected the following information:") + \ "\n\n" + " " + \ _("Hardware:") + " " + description + "\n" + " " + \ _("Provider name:") + " " + dialup.ProviderName + \ "\n" + " " + \ _("Login name:") + " " + dialup.Login + "\n" + " " + \ _("Phone number:") + " " + dialup.PhoneNumber druid_page.set_text(s)
def hydrate(self): hardwarelist = NCHardwareList.getHardwareList() if self.hw.Modem.DeviceName != None: if not self.hw.Modem.DeviceName in modemDeviceList: modemDeviceList.insert(0, self.hw.Modem.DeviceName) self.xml.get_widget("modemDeviceEntryCombo" ).set_popdown_strings(modemDeviceList) self.xml.get_widget('modemDeviceEntry').set_text( self.hw.Modem.DeviceName) if self.hw.Modem.BaudRate != None: self.xml.get_widget('baudrateEntry').set_text( str(self.hw.Modem.BaudRate)) if (self.hw.Modem.FlowControl != None and modemFlowControls.has_key(self.hw.Modem.FlowControl)): self.xml.get_widget('flowControlEntry').set_text( modemFlowControls[self.hw.Modem.FlowControl]) else: self.xml.get_widget('flowControlEntry').set_text( modemFlowControls[CRTSCTS])
def on_finish_page_finish(self, druid_page, druid): # pylint: disable-msg=W0613 self.device.Device = getNewDialupDevice(NCDeviceList.getDeviceList(), self.device) hardwarelist = NCHardwareList.getHardwareList() hardwarelist.commit() self.devicelist.append(self.device) self.device.commit() for prof in self.profilelist: if prof.Active == False: continue prof.ActiveDevices.append(self.device.DeviceId) break self.profilelist.commit() self.devicelist.commit() self.save() self.toplevel.destroy() gtk.main_quit()
def on_finish_page_prepare(self, druid_page, druid): # pylint: disable-msg=W0613 self.device.DeviceId = self.device.Device if self.device.Alias: self.device.DeviceId = self.device.DeviceId + ":" \ + str(self.device.Alias) try: hwaddr = ethtool.get_hwaddr(self.device.Device) except IOError: pass else: self.device.HardwareAddress = hwaddr # FIXME: Bad style for translation s = str( _("You have selected the following information:") + "\n\n" + " " + _("Device:") + " " + str(self.device.DeviceId) + " ") hardwarelist = NCHardwareList.getHardwareList() for hw in hardwarelist: if hw.Name == self.device.Device: s = s + "(" + hw.Description + ")" break s = s + "\n" + " " if self.device.BootProto == "static": s = s + str( _("Address:") + " " + self.device.IP + "\n" + " " + _("Subnet mask:") + " " + self.device.Netmask + "\n" + " " + _("Default gateway address:") + " " + self.device.Gateway + "\n") else: s = s + str( _("Automatically obtain IP address settings with:") + " " + self.device.BootProto + "\n") druid_page.set_text(s)
def hydrate(self): DeviceConfigDialog.hydrate(self) sharedtcpip.dhcp_hydrate(self.sharedtcpip_xml, self.device) sharedtcpip.route_hydrate(self.sharedtcpip_xml, self.device) ecombo = self.xml.get_widget("tokenringDeviceComboBox") hwlist = NCHardwareList.getHardwareList() (hwcurr, hwdesc) = NC_functions.create_tokenring_combo(hwlist, self.device.Device) if len(hwdesc): ecombo.set_popdown_strings(hwdesc) widget = self.xml.get_widget("tokenringDeviceEntry") if self.device.Device: widget.set_text(hwcurr) #widget.set_position(0) if self.device.Alias != None: self.xml.get_widget("aliasSupportCB").set_active(True) self.xml.get_widget("aliasSpinBox").set_value(self.device.Alias) else: self.xml.get_widget("aliasSupportCB").set_active(False)
class Device(Device_base): Type = ETHERNET SubType = None Priority = 0 keyid = "DeviceId" __keydict = { 'Device': 'DEVICE', 'IP': 'IPADDR', 'Netmask': 'NETMASK', 'Gateway': 'GATEWAY', 'Hostname': 'DHCP_HOSTNAME', 'PrimaryDNS': 'DNS1', 'SecondaryDNS': 'DNS2', 'Domain': 'DOMAIN', 'BootProto': 'BOOTPROTO', 'Type': 'TYPE', 'HardwareAddress': 'HWADDR', } # The following variables can be in form of for example IPADDRn where n is integer __keydictn = ["IPADDR", "NETMASK", "GATEWAY"] __intkeydict = { 'Mtu': 'MTU', 'Prefix': 'PREFIX', } __intkeydictn = ["PREFIX"] __boolkeydict = { 'OnBoot': 'ONBOOT', 'OnParent': 'ONPARENT', 'NMControlled': 'NM_CONTROLLED', 'AllowUser': '******', 'AutoDNS': 'PEERDNS', 'Slave': 'SLAVE', 'IPv6Init': 'IPV6INIT', } def __init__(self): super(Device, self).__init__() self.oldname = None def getDialog(self): return None def getWizard(self): return None def isType(self, device): raise False def testDeviceId(self, value): if re.search(r"^[a-z|A-Z|0-9\_:]+$", value): return True return False def getDeviceAlias(self): devname = self.Device if self.Alias != None and self.Alias != "": devname = devname + ':' + str(self.Alias) return devname def getRealMtu(self): out = commands.getoutput('/sbin/ip link show %s 2>/dev/null' % self.Device) next = False val = 0 try: for k in out.split(): if next: val = int(k) break if k == "mtu": next = True except ValueError: pass return val def load(self, name): conf = ConfDevice(name) self.oldname = name if not conf.has_key("DEVICE"): aliaspos = name.find(':') if aliaspos != -1: from netconfpkg.NCDeviceList import getDeviceList # ok, we have to inherit all other data from our master for dev in getDeviceList(): if dev.Device == name[:aliaspos]: self.apply(dev) break self.Device = name self.DeviceId = name for selfkey in self.__keydict.keys(): confkey = self.__keydict[selfkey] if conf.has_key(confkey) and conf[confkey]: setattr(self, selfkey, conf[confkey]) else: # if confkey is for example IPADDR, we should try also IPADDR0, IPADDR1 etc. if confkey in self.__keydictn: for i in range(10): confkeyn = confkey + str(i) if conf.has_key(confkeyn) and len(conf[confkeyn]): setattr(self, selfkey, conf[confkeyn]) break for selfkey in self.__intkeydict.keys(): confkey = self.__intkeydict[selfkey] if conf.has_key(confkey) and len(conf[confkey]): setattr(self, selfkey, conf[confkey]) else: if confkey in self.__intkeydictn: for i in range(10): confkeyn = confkey + str(i) if conf.has_key(confkeyn) and len(conf[confkeyn]): setattr(self, selfkey, conf[confkeyn]) break for selfkey in self.__boolkeydict.keys(): confkey = self.__boolkeydict[selfkey] if conf.has_key(confkey): if conf[confkey] == 'yes': setattr(self, selfkey, True) #print >> sys.stderr, self.DeviceId, selfkey, "True" #setattr(self, selfkey, True) else: setattr(self, selfkey, False) #print >> sys.stderr, self.DeviceId, selfkey, "False" #setattr(self, selfkey, False) # we need to deal with options which have default value 'yes' like NM_CONTROLLED else: if confkey != "NM_CONTROLLED": setattr(self, selfkey, False) #setattr(self, selfkey, False) # if PREFIX exists it takes preference over NETMASK if hasattr(self, 'Prefix') and len(self.Prefix): prefix = int(self.Prefix) if prefix >= 0 and prefix <= 32: netmask_str = socket.inet_ntoa( struct.pack(">I", 0xFFFFFFFF & (0xFFFFFFFF << (32 - prefix)))) self.Netmask = netmask_str if not conf.has_key("PEERDNS"): del self.AutoDNS if not self.Slave: del self.Slave if not self.Gateway: try: cfg = ConfShellVar.ConfShellVar(getRoot() + SYSCONFNETWORK) if (cfg.has_key('GATEWAY') and ((not cfg.has_key('GATEWAYDEV')) or cfg['GATEWAYDEV'] == self.Device)): gw = cfg['GATEWAY'] if gw and self.Netmask: try: network = commands.getoutput('ipcalc --network ' + str(self.IP) + ' ' + str(self.Netmask) + ' 2>/dev/null') out = commands.getoutput('ipcalc --network ' + str(gw) + ' ' + str(self.Netmask) + ' 2>/dev/null') if out == network: self.Gateway = str(gw) except: pass except EnvironmentError, msg: NC_functions.generic_error_dialog(str(msg)) try: aliaspos = self.Device.find(':') if aliaspos != -1: self.Alias = int(self.Device[aliaspos + 1:]) self.Device = self.Device[:aliaspos] except TypeError: NC_functions.generic_error_dialog( _("%s, " "Device not specified " "or alias not a number!") % self.DeviceId) #raise TypeError, _("Device not specified or alias not a number!") except ValueError: NC_functions.generic_error_dialog( _("%s, " "Device not specified " "or alias not a number!") % self.DeviceId) if not self.Alias: del self.OnParent if self.BootProto == None: if self.IP: self.BootProto = "none" else: self.BootProto = 'dhcp' if not self.Type or self.Type == "" or self.Type == _("Unknown"): from netconfpkg import NCHardwareList hwlist = NCHardwareList.getHardwareList() for hw in hwlist: if hw.Name == self.Device: self.Type = hw.Type break else: self.Type = NC_functions.getDeviceType(self.Device) if conf.has_key("RESOLV_MODS"): if conf["RESOLV_MODS"] != "no": self.AutoDNS = True else: self.AutoDNS = False # move old <id>.route files to route-<id> mfile = str(getRoot() + SYSCONFDEVICEDIR + self.DeviceId + '.route') if os.path.isfile(mfile): NC_functions.rename( mfile, getRoot() + SYSCONFDEVICEDIR + 'route-' + self.DeviceId) # load routes rconf = ConfRoute(name) for key in rconf.keys(): if key.startswith("ADDRESS"): try: p = int(key[7:]) except: continue route = Route() self.createStaticRoutes() self.StaticRoutes.append(route) route.Address = rconf['ADDRESS' + str(p)] if rconf.has_key("NETMASK" + str(p)): route.Netmask = rconf['NETMASK' + str(p)] if rconf.has_key("GATEWAY" + str(p)): route.Gateway = rconf['GATEWAY' + str(p)] self.commit() self.setunmodified()
def __init__(self, device): self.device = device glade_file = "DeviceTypeDialog.glade" if not os.path.exists(glade_file): glade_file = GLADEPATH + glade_file if not os.path.exists(glade_file): glade_file = NETCONFDIR + glade_file self.xml = gtk.glade.XML(glade_file, None, domain=PROGNAME) xml_signal_autoconnect( self.xml, { "on_okButton_clicked": self.on_okButton_clicked, "on_cancelButton_clicked": self.on_cancelButton_clicked, }) self.dialog = self.xml.get_widget("Dialog") load_icon("network.xpm", self.dialog) devicetypes = deviceTypes[:] devicetypes.remove(LO) hardwarelist = NCHardwareList.getHardwareList() machine = os.uname()[4] ethernetFound = False modemFound = False isdnFound = False tokenringFound = False adslFound = False wirelessFound = False for hw in hardwarelist: if hw.Type == MODEM: modemFound = True elif hw.Type == ISDN: isdnFound = True elif hw.Type == ETHERNET: ethernetFound = True adslFound = True wirelessFound = True elif hw.Type == TOKENRING: tokenringFound = True if machine == 's390' or machine == 's390x': modemFound = False isdnFound = False adslFound = False wirelessFound = False if not modemFound: devicetypes.remove(MODEM) if not isdnFound: devicetypes.remove(ISDN) if not ethernetFound: devicetypes.remove(ETHERNET) if not adslFound: devicetypes.remove(DSL) if not tokenringFound: devicetypes.remove(TOKENRING) if not wirelessFound: devicetypes.remove(WIRELESS) omenu = self.xml.get_widget('deviceTypeOption') omenu.remove_menu() menu = gtk.Menu() for device_name in devicetypes: menu_item = gtk.MenuItem(device_name) menu_item.set_data("device", device_name) menu_item.show() menu.append(menu_item) menu.show() omenu.set_menu(menu) omenu.grab_focus() self.hydrate()
if self.device.Alias: self.device.DeviceId = self.device.DeviceId + ":" \ + str(self.device.Alias) try: hwaddr = ethtool.get_hwaddr(self.device.Device) except IOError, err: pass else: self.device.HardwareAddress = hwaddr # FIXME: Bad style for translation s = _("You have selected the following information:") + "\n\n"\ + _("Device:") + " " + str(self.device.DeviceId) + " " hardwarelist = NCHardwareList.getHardwareList() for hw in hardwarelist: if hw.Name == self.device.Device: s = s + "(" + hw.Description + ")" break s = s + "\n" if (self.device.BootProto == "static" or self.device.BootProto == "none"): s = s + str( _("Address:") + " " + (self.device.IP or '') + "\n" + _("Subnet mask:") + " " + (self.device.Netmask or '') + "\n" + _("Default gateway address:") + " " + (self.device.Gateway or '') + "\n")
def saveHardware(self): from netconfpkg import NCHardwareList hardwarelist = NCHardwareList.getHardwareList() hardwarelist.save() hardwarelist.setunmodified()
def load(self): from netconfpkg.NCDevice import ConfDevice updateNetworkScripts() self.__delslice__(0, len(self)) df = getDeviceFactory() devdir = getRoot() + SYSCONFDEVICEDIR devices = [] log.log(5, "Checking %s" % devdir) if os.path.isdir(devdir): devices = ConfDevices() if not devices: log.log(5, "Checking %s" % devdir) devdir = getRoot() + OLDSYSCONFDEVICEDIR devices = ConfDevices(devdir) for dev in devices: log.log(5, "Checking %s" % dev) if dev == 'lo': continue conf = ConfDevice(dev, devdir) mtype = None device = None # take a peek in the config file if conf.has_key("TYPE"): mtype = conf["TYPE"] if conf.has_key("DEVICE"): device = conf["DEVICE"] if conf.has_key("NETTYPE"): if conf["NETTYPE"] == "qeth": mtype = QETH if conf["NETTYPE"] == "lcs": mtype = LCS del conf if mtype == "IPSEC": continue if not mtype or mtype == "" or mtype == _("Unknown"): from netconfpkg import NCHardwareList hwlist = NCHardwareList.getHardwareList() for hw in hwlist: if hw.Name == device: mtype = hw.Type break else: mtype = getDeviceType(device) devclass = df.getDeviceClass(mtype) if devclass: newdev = devclass() newdev.load(dev) self.append(newdev) # try: # newdev.load(dev) # except BaseException, e: # # FIXME: better exception handling # generic_error_dialog (_("Error loading file %s\n%s") # % (devdir + # "/ifcfg-" + dev, str(e)), # dialog_type="error") # else: # self.append(newdev) else: log.log(1, "NO DEVICE CLASS FOUND FOR %s" % dev) d = Device() self.append(d) d.load(dev) self.commit() self.setunmodified() chdev = {} # the initscripts do not like '-' for dev in self: newDeviceId = re.sub('-', '_', dev.DeviceId) if newDeviceId != dev.DeviceId: chdev[dev.DeviceId] = newDeviceId #log.log(4, "%s != %s" % (newDeviceId, dev.DeviceId)) # Fixed change device names in active list of all profiles import netconfpkg.NCProfileList profilelist = netconfpkg.NCProfileList.getProfileList() for prof in profilelist: #log.log(4, str(prof.ActiveDevices)) if dev.DeviceId in prof.ActiveDevices: pos = prof.ActiveDevices.index(dev.DeviceId) prof.ActiveDevices[pos] = newDeviceId #log.log(4, "changed %s" % (prof.ActiveDevices[pos])) #log.log(4, str(prof.ActiveDevices)) prof.commit() dev.DeviceId = newDeviceId dev.commit() dev.setunmodified() if len(chdev.keys()): s = _("Changed the following Nicknames due to the initscripts:\n") for n, d in chdev.items(): s += "%s -> %s\n" % (n, d) generic_longinfo_dialog(_("Nicknames changed"), s)