Example #1
0
    def setRange(self, start, end):
        s = self.getServer()
        masc = s[2]
        rede = s[4]
        
        from rede import Rede
        try:
            i = Rede(start, masc)
            f = Rede(end  , masc)
        except:
            return False

        if i.getRedeAsStr() <> rede:
            return False
        if f.getRedeAsStr() <> rede:
            return False
        
        section = 'range'
        c = Cfg()
        c.read(self.__configLTSPFile)
        if not c.has_section( section ):
            c.add_section( section )
        
        c.set(section, 'start', start)
        c.set(section, 'end'  , end)
        c.write( open(self.__configLTSPFile,'w')  )
        del c

        return True
Example #2
0
    def setMachine(self, mac, ip=None, localApps=False):
        mac = mac.strip()
        if len(mac.split(':')) <> 6:
            return False

        try:    ip = ip.strip()
        except: pass
        
        c = Cfg()
        c.read(self.__configLTSPFile)
        if not c.has_section(mac):
            c.add_section(mac)

        if ip is not None:
            from rede import Rede
            s = self.getServer()
            masc = s[2]
            rede = s[4]
            del s
            
            try:
                i = Rede(ip, masc)
            except:
                return False

            if i.getRedeAsStr() <> rede:
                return False
            
            c.set(mac, 'ip', ip)
        c.set(mac, 'localapps', str(localApps))
        c.write( open(self.__configLTSPFile,'w') )
        del c
        
        return True
Example #3
0
 def delMachine(self, mac):
     c = Cfg()
     c.read( self.__configLTSPFile )
     try:
         c.remove_section(mac)
         c.write( open(self.__configLTSPFile,'w') )
         return True
     except:
         return False
Example #4
0
    def getGlobalConfig(self, key):
        section = 'globalConfig'
        c = Cfg()
        c.read(self.__configLTSPFile)
        ret = ''
        if c.has_section( section ):
            ret = c.get(section, key)
        del c

        return ret
Example #5
0
 def setGlobalConfig(self, key, value):
     section = 'globalConfig'
     c = Cfg()
     c.read(self.__configLTSPFile)
     if not c.has_section( section ):
         c.add_section( section )
     c.set(section, key, value)
     c.write( open(self.__configLTSPFile,'w')  )
     del c
     
     return True
Example #6
0
 def delRange(self):
     section = 'range'
     c = Cfg()
     c.read(self.__configLTSPFile)
     ret = False
     if c.has_section( section ):
         c.remove_section( section )
         c.write( open(self.__configLTSPFile,'w')  )
         ret = True
     del c
     
     return ret
Example #7
0
    def getRange(self):
        section = 'range'
        c = Cfg()
        c.read(self.__configLTSPFile)

        ret = []
        if c.has_section( section ):
            ret.append( c.get(section, 'start') )
            ret.append( c.get(section, 'end') )

        del c

        return ret
Example #8
0
    def getServer(self):
        c = Cfg()
        c.read(self.__configLTSPFile)
        ret = []
        try:
            ret.append(c.get('server', 'iface'))     #0
            ret.append(c.get('server', 'ip'))        #1
            ret.append(c.get('server', 'masc'))      #2
            ret.append(c.get('server', 'broadcast')) #3
            ret.append(c.get('server', 'rede'))      #4
        except:
            ret = ['','','','','']
        del c

        return ret
Example #9
0
    def setServer(self, ip, masc, iface):
        from rede import Rede
        r = Rede(ip, masc)
        M = self.getMachines()
        
        c = Cfg()
        if not c.has_section('server'):
            c.add_section('server')
        c.set('server', 'ip', r.getIPAsStr())
        c.set('server', 'masc', r.getMascAsStr())
        c.set('server', 'rede', r.getRedeAsStr())
        c.set('server', 'broadcast', r.getBroadcastAsStr())
        c.set('server', 'iface', iface)
        c.write( open(self.__configLTSPFile,'w')  )
        
        for i in M:
            self.setMachine(i[0], i[1], i[2])

        del c
Example #10
0
 def getMachines(self):
     c = Cfg()
     c.read(self.__configLTSPFile)
     ret = []
     for section in c.sections():
         if section <> 'server':
             try:
                 local = c.get(section, 'localapps')
                 if local.upper().startswith('Y') or \
                    local.upper().startswith('S') or \
                    local.upper().startswith('T'):
                        local = True
                 else:
                        local = False
             except: local = False
             try:
                 ret.append( [section, c.get(section, 'ip'), local] )
             except: pass
     del c
     return ret
Example #11
0
    def writeDHCP(self):
        contents = []
        p = {}
        c = Cfg()
        c.read(self.__configLTSPFile)
        for i in ['ip','masc','rede', 'broadcast']:
            try:
                p[i] = c.get('server', i)
            except:
                pass
        # testando se existe server
        if not p.has_key('ip'):
            return False

        del c

        contents.append('# Auto-Configured by NetControl\n')
        contents.append("# Don't modify these lines, please use NetControl for this\n\n\n")
        contents.append('authoritative;\n\n')
        contents.append('subnet %s netmask %s {\n' % (p['rede'],p['masc']))
        r = self.getRange()
        if r <> []:
            contents.append('\trange %s %s;\n' % (r[0], r[1]))
        #contents.append('\toption domain-name %s;\n' % p['ip'])
        contents.append('\toption domain-name-servers %s;\n' % p['ip'])
        contents.append('\toption broadcast-address %s;\n' % p['broadcast'])
        contents.append('\toption routers %s;\n' % p['ip'])
        contents.append('\toption subnet-mask %s;\n' % p['masc'])
        contents.append('\toption root-path "/opt/ltsp/i386";\n')
        contents.append(self.__pxe)
        contents.append('\n')
        ident = 1
        for i in self.getMachines():
            contents.append('\thost client%d {\n' % ident)
            contents.append('\thardware ethernet %s;\n' % i[0])
            contents.append('\tfixed-address %s;\n' % i[1])
            contents.append('\t}\n\n')
            ident+=1
        contents.append('}\n')
        open(self.__fileTargetDHCP, 'w').writelines(contents)
        return True