def save(self): Device.save(self) conf = ConfDevice(self.DeviceId) conf["TYPE"] = "Ethernet" if not self.Alias: conf["NETTYPE"] = "lcs" ports = "" hardwarelist = getHardwareList() for hw in hardwarelist: if hw.Name == self.Device: if hw.MacAddress: conf["MACADDR"] = hw.MacAddress else: del conf["MACADDR"] if (hw.Card.IoPort and hw.Card.IoPort1 and hw.Card.IoPort2): ports = "%s,%s,%s" % (hw.Card.IoPort, hw.Card.IoPort1, hw.Card.IoPort2) break if ports: conf["SUBCHANNELS"] = ports if hw.Card.Options: conf["OPTIONS"] = hw.Card.Options else: if conf.has_key("OPTIONS"): del conf["OPTIONS"] conf.write()
def load(self, name): # pylint: disable-msg=W0613 """ load(devicename) load a modem definition """ conf = ConfDevice(name) Device.load(self, name) self.Dialup.load(conf, self)
def save(self): super(DevWireless, self).save() conf = ConfDevice(self.DeviceId) conf.fsf() self.Wireless.save(conf, self.DeviceId) conf.write() del conf
def load(self, name): Device.load(self, name) conf = ConfDevice(name) self.Type = LCS if conf.has_key("SUBCHANNELS"): hardwarelist = getHardwareList() hw = None for hw in hardwarelist: if hw.Name == self.Device and hw.Type == LCS: break else: i = hardwarelist.addHardware(LCS) hw = hardwarelist[i] hw.Status = HW_CONF hw.Name = self.Device hw.Type = LCS hw.Description = "lcs %s" % conf["SUBCHANNELS"] hw.createCard() hw.Card.ModuleName = "lcs" try: hw.MacAddress = conf["MACADDR"] except: pass try: ports = conf["SUBCHANNELS"].split(",") hw.Card.IoPort = ports[0] hw.Card.IoPort1 = ports[1] hw.Card.IoPort2 = ports[2] hw.Card.Options = conf["OPTIONS"] except: pass hw.commit(changed=False) hardwarelist.commit(changed=False)
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)
class DeviceList(Gdtlist): gdtlist_properties(Device) 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) def addDeviceType(self, mtype): df = getDeviceFactory() devclass = df.getDeviceClass(mtype) if devclass: newdev = devclass() self.append(newdev) # else: # FIXME: !! # generic_error_dialog() return newdev def test(self): pass def __repr__(self): return repr(self.__dict__) def tostr(self, prefix_string=None): "returns a string in gdt representation" #print "tostr %s " % prefix_string if prefix_string == None: prefix_string = self.__class__.__name__ mstr = "" for value in self: if isinstance(value, Device): mstr += value.tostr( "%s.%s.%s" % (prefix_string, value.Type, value.DeviceId)) return mstr def fromstr(self, vals, value): if len(vals) <= 1: return if vals[0] == "DeviceList": del vals[0] else: return for dev in self: if dev.DeviceId == vals[1]: if dev.Type != vals[0]: self.pop(dev) log.log(1, "Deleting device %s" % vals[1]) break dev.fromstr(vals[2:], value) # pylint: disable-msg=W0212 return dev = self.addDeviceType(vals[0]) dev.DeviceId = vals[1] dev.fromstr(vals[2:], value) def save(self): # FIXME: [163040] "Exception Occurred" when saving # fail gracefully, with informing, which file, and why from netconfpkg.NCDevice import ConfDevice from types import DictType self.commit() nwconf = ConfShellVar.ConfShellVar(getRoot() + SYSCONFNETWORK) if len(self) > 0: nwconf["NETWORKING"] = "yes" nwconf.write() # # clear all Dialer sections in wvdial.conf # before the new Dialer sections written # wvdialconf = ConfSMB.ConfSMB(filename=getRoot() + WVDIALCONF) for wvdialkey in wvdialconf.vars.keys(): if wvdialkey[:6] == 'Dialer': del wvdialconf[wvdialkey] wvdialconf.write() # # Clear all pap and chap-secrets generated by netconf # papconf = getPAPConf() chapconf = getCHAPConf() for key in papconf.keys(): if isinstance(papconf[key], DictType): for server in papconf[key].keys(): papconf.delallitem([key, server]) del papconf[key] for key in chapconf.keys(): if isinstance(chapconf[key], DictType): for server in chapconf[key].keys(): chapconf.delallitem([key, server]) del chapconf[key] # # traverse all devices in the list # for dev in self: # # really save the device # #if dev.changed: dev.save() papconf.write() chapconf.write() dirname = getRoot() + SYSCONFDEVICEDIR # # Remove old config files # try: mdir = os.listdir(dirname) except OSError, msg: raise IOError, 'Cannot save in ' \ + dirname + ': ' + str(msg) for entry in mdir: if not testFilename(dirname + entry): log.log(5, "not testFilename(%s)" % (dirname + entry)) continue if (len(entry) <= 6) or \ entry[:6] != 'ifcfg-': log.log(5, "not ifcfg %s" % (entry)) continue devid = entry[6:] for dev in self: if dev.DeviceId == devid: break else: # check for IPSEC conf = ConfDevice(devid, mdir=dirname) mtype = IPSEC if conf.has_key("TYPE"): mtype = conf["TYPE"] if mtype == IPSEC: log.log(5, "IPSEC %s" % (entry)) continue # now remove the file unlink(dirname + entry) unlink(getRoot() + OLDSYSCONFDEVICEDIR + \ '/ifcfg-' + devid) # remove old route files for entry in mdir: if not testFilename(dirname + entry): continue if (len(entry) <= 6) or \ entry[:6] != '.route': continue devid = entry[6:] for dev in self: if dev.DeviceId == devid: break else: # remove route file, if no routes defined unlink(dirname + entry) unlink(getRoot() + OLDSYSCONFDEVICEDIR + \ devid + '.route') # bug #78043 # we should have device specific gateways # fixed this way, until we have a way to mark the # default GATEWAY/GATEWAYDEV cfg = ConfShellVar.ConfShellVar(getRoot() + SYSCONFNETWORK) if cfg.has_key('GATEWAY'): del cfg['GATEWAY'] # bug #602688: don't remove GATEWAYDEV #if cfg.has_key('GATEWAYDEV'): # del cfg['GATEWAYDEV'] cfg.write() self.commit() self.setunmodified()
if not testFilename(dirname + entry): continue if (len(entry) <= 5) or \ entry[:5] != 'keys-': continue ipsecid = entry[5:] for ipsec in self: if ipsec.IPsecId == ipsecid: break else: # check for IPSEC from netconfpkg.NCDevice import ConfDevice conf = ConfDevice(ipsecid) mtype = None if conf.has_key("TYPE"): mtype = conf["TYPE"] if mtype: continue unlink(dirname + entry) unlink(getRoot() + OLDSYSCONFDEVICEDIR + '/keys-' + ipsecid) self.commit() self.setunmodified() def __repr__(self): return repr(self.__dict__)
def save(self): super(DevModem, self).save() conf = ConfDevice(self.DeviceId) self.Dialup.save(conf, self.DeviceId, self.oldname) conf.write()
def load(self, name): super(DevADSL, self).load(name) conf = ConfDevice(name) self.Dialup.load(conf, self)
def load(self, name): super(DevWireless, self).load(name) conf = ConfDevice(name) self.Wireless.load(conf, self.DeviceId) del conf