diff --git a/gestion/ldap_crans.py b/gestion/ldap_crans.py index ac8ce242..e8eb17ac 100755 --- a/gestion/ldap_crans.py +++ b/gestion/ldap_crans.py @@ -2295,14 +2295,14 @@ class Machine(base_classes_crans): Un nom de machine valide ne comporte que des caractères alphabétiques minuscules et le - """ - if new==None: - return decode(self._data.get('host',[''])[0]) + if new == None: + return decode(self._data.get('host', [''])[0]) - new = self.__host_alias('nom de machine',new) - self._set('host',[new]) + new = self.__host_alias('nom de machine', new) + self._set('host', [new]) return new.split('.')[0] - def prise(self,new=None): + def prise(self, new=None): """ Retourne ou défini la prise associée à la machine La définition n'est possible que si la machine est une machine de l'assoce. @@ -2310,7 +2310,7 @@ class Machine(base_classes_crans): """ if new == None: if self.proprietaire().__class__ == crans: - return decode(self._data.get('prise',['N/A'])[0]) + return decode(self._data.get('prise', ['N/A'])[0]) else: chbre = self.proprietaire().chbre() if chbre and chbre[0].lower() in annuaires.chbre_prises.keys(): @@ -2321,48 +2321,49 @@ class Machine(base_classes_crans): # Attribution de la prise new=preattr(new)[1] - if new == 'N/A' : - if self._data.has_key('prise') : - self._set('prise',[]) + if new == 'N/A': + if self._data.has_key('prise'): + self._set('prise', []) self._data.pop('prise') return - if not sre.match('^[a-cg-jmp][0-6][0-5][0-9]$',new.lower()): + if not sre.match('^[a-cg-jmp][0-6][0-5][0-9]$', new.lower()): raise ValueError('Prise incorrecte') - self._set('prise',[new.upper()]) + self._set('prise', [new.upper()]) return new - def alias(self,new=None): + def alias(self, new=None): """ Création ou visualisation des alias d'une machine. Même sytème d'argument que la méthode info. """ if not self._data.has_key('hostAlias'): - self._data['hostAlias']=[] + self._data['hostAlias'] = [] liste = list(self._data['hostAlias']) - if new==None: return map(decode,liste) + if new == None: + return map(decode, liste) - if type(new)==list: + if type(new) == list: # Modif index = new[0] new = new[1] - if new=='': + if new == '': liste.pop(index) - self._set('hostAlias',liste) + self._set('hostAlias', liste) return liste else: - index=-1 + index = -1 # Test si valide - new = self.__host_alias('alias',new) + new = self.__host_alias('alias', new) if index!=-1: liste[index] = new else: - liste = liste + [ new ] + liste = liste + [new] - self._set('hostAlias',liste) + self._set('hostAlias', liste) return liste def ip(self, ip=None): @@ -2372,7 +2373,7 @@ class Machine(base_classes_crans): Si l'IP n'est pas définie retourne . Si ip= attribue la permière IP libre du sous réseau. """ - if ip==None: + if ip == None: if self._data.has_key('ipHostNumber'): return decode(self._data['ipHostNumber'][0]) elif self.proprietaire().__class__ == crans and self.__typ != 'borne': @@ -2401,12 +2402,12 @@ class Machine(base_classes_crans): except: raise RuntimeError(u'Impossible de trouver le réseau où placer la machine.') - if ip=='': + if ip == '': pool_ip = [] # Pool d'IP à tester for ne in net: ip = ne.split('/')[0] ip = ip.split('.') - n=[] + n = [] for i in ip: n.append(int(i)) while 1: @@ -2415,9 +2416,9 @@ class Machine(base_classes_crans): else: n[2] += 1 n[3] = 0 - if n[2]==255: break + if n[2] == 255: break ip = "%d.%d.%d.%d" % tuple(n) - if not iptools.AddrInNet(ip,ne): + if not iptools.AddrInNet(ip, ne): # On est allé trop loin break pool_ip.append(ip) @@ -2432,14 +2433,14 @@ class Machine(base_classes_crans): break if not len(pool_ip): - raise RuntimeError(u'Plus d\'IP libres dans %s.' % string.join(net,' et ') ) + raise RuntimeError(u'Plus d\'IP libres dans %s.' % string.join(net, ' et ')) else: # L'ip est elle dans le bon sous réseau ? # (accessoirement teste si l'IP est valide et ne correspond pas # à l'adresse de broadcast ou de réseau) if not iptools.AddrInNet(ip,net): - raise ValueError(u'IP invalide ou en dehors du sous réseau alloué.',1) + raise ValueError(u'IP invalide ou en dehors du sous réseau alloué.', 1) # Reformatage ip = iptools.DecToQuad(iptools.QuadToDec(ip)) # L'ip est-elle déja allouée ? @@ -2449,7 +2450,7 @@ class Machine(base_classes_crans): # Lock ip self.lock('ipHostNumber',ip) - self._set('ipHostNumber',[ip]) + self._set('ipHostNumber', [ip]) return ip def exempt(self, new=None): @@ -2484,11 +2485,11 @@ class Machine(base_classes_crans): # On ajoute pas de réseau vide return liste # Ajout à la liste - liste = liste + [ new ] + liste = liste + [new] else: raise TypeError - self._set('exempt',liste) + self._set('exempt', liste) return liste def proprietaire(self): @@ -2496,11 +2497,11 @@ class Machine(base_classes_crans): retroune le propriétaire de la machine (classe adherent, club ou crans ou invite) """ if not self.__proprietaire: - res = self.conn.search_s(','.join(self.dn.split(',')[1:]),0) - if 'adherent' in res[0][1]['objectClass'] : - self.__proprietaire = adherent(res[0],self._modifiable,self.conn) - elif 'club' in res[0][1]['objectClass'] : - self.__proprietaire = club(res[0],self._modifiable,self.conn) + res = self.conn.search_s(','.join(self.dn.split(',')[1:]), 0) + if 'adherent' in res[0][1]['objectClass']: + self.__proprietaire = adherent(res[0], self._modifiable, self.conn) + elif 'club' in res[0][1]['objectClass']: + self.__proprietaire = club(res[0], self._modifiable, self.conn) elif 'invite' in res[0][0]: self.__proprietaire = invite(self.conn) else: @@ -2513,24 +2514,24 @@ class Machine(base_classes_crans): Enregistre la machine courante dans la base LDAP Retourne une chaîne indiquant les opération effectuées. """ - if self.proprietaire().__class__ == crans and not ( isadm or user_tests.getuser() == 'www-data' ): + if self.proprietaire().__class__ == crans and not (isadm or user_tests.getuser() == 'www-data'): raise EnvironmentError(u'Il faut être administrateur pour effectuer cette opération.') if not self._init_data: # Nouvelle machine => configuration prise - self.services_to_restart('switch',[self.proprietaire().chbre()]) + self.services_to_restart('switch', [self.proprietaire().chbre()]) - ret ='' + ret = '' # Besoin de redémarrer les firewalls ? if 'ipHostNumber' in self.modifs or 'macAddress' in self.modifs: - reconf_ip = self._init_data.get('ipHostNumber',[]) - reconf_ip += self._data.get('ipHostNumber',[]) + reconf_ip = self._init_data.get('ipHostNumber', []) + reconf_ip += self._data.get('ipHostNumber', []) else: reconf_ip = [] # On vire les doublons dans reconf_ip - reconf_ip = list(dict(zip(reconf_ip,[None]*len(reconf_ip)))) + reconf_ip = list(dict(zip(reconf_ip, [None]*len(reconf_ip)))) # Enregistrement self._save() @@ -2542,14 +2543,14 @@ class Machine(base_classes_crans): # Reconfiguration firewalls et dhcps if reconf_ip: - self.services_to_restart('macip',reconf_ip ) + self.services_to_restart('macip', reconf_ip) if self.__typ == 'wifi' : self.services_to_restart('ragnarok-dhcp') else: self.services_to_restart('rouge-dhcp') if 'ports' in self.modifs: - self.services_to_restart('komaz-ports', [ self.ip() ] ) - self.services_to_restart('mail_modif',['ip=%s' % self.ip()]) + self.services_to_restart('komaz-ports', [self.ip()]) + self.services_to_restart('mail_modif', ['ip=%s' % self.ip()]) # Reconfiguration DNS ? if 'host' in self.modifs or 'ipHostNumber' in self.modifs or 'hostAlias' in self.modifs: @@ -2560,19 +2561,20 @@ class Machine(base_classes_crans): self.services_to_restart('conf_wifi_ng') # Reconfiguration clients wifi ? - if self.__typ in ('wifi','borne') and ( 'ipHostNumber' in self.modifs or 'host' in self.modifs or 'macAddress' in self.modifs ): + if self.__typ in ('wifi', 'borne') \ + and ('ipHostNumber' in self.modifs or 'host' in self.modifs or 'macAddress' in self.modifs): self.services_to_restart('conf_wifi_ng') # Regénération blackliste nécessaire ? bl = self.blacklist_actif() - if bl and ( 'ipHostNumber' in self.modifs or 'host' in self.modifs ): + if bl and ('ipHostNumber' in self.modifs or 'host' in self.modifs): for s in bl: - self.services_to_restart(s,[ self.ip() ] ) + self.services_to_restart(s, [self.ip()]) # Regénération de l'autostatus et mail de changmement ? if self.proprietaire().__class__ == crans: self.services_to_restart('autostatus') - self.services_to_restart('mail_modif',['ip=%s' % self.ip()]) + self.services_to_restart('mail_modif', ['ip=%s' % self.ip()]) # Synchronisation avec la base pgsql pour les exemptions if 'exempt' in self.modifs or ('ipHostNumber' in self.modifs and self.exempt()): @@ -2586,19 +2588,19 @@ class Machine(base_classes_crans): self.modifs = {} # Message de sortie - ret += coul(u"Machine %s enregistrée avec succès." % self._data['host'][0],'vert') + ret += coul(u"Machine %s enregistrée avec succès." % self._data['host'][0], 'vert') return ret - def delete(self,comment=''): + def delete(self, comment=''): """ Destruction de la machines """ if self.proprietaire().__class__ == crans and not isadm: raise EnvironmentError(u'Il faut être administrateur pour effectuer cette opération.') self.proprio = self.__proprietaire.Nom() # On met dans un coin le nom du proprio - self.__proprietaire = None # On oublie le propriétaire - self._delete(self.dn,comment) + self.__proprietaire = None # On oublie le propriétaire + self._delete(self.dn, comment) # Services à redémarrer if self.__typ == 'wifi' : @@ -2612,28 +2614,31 @@ class Machine(base_classes_crans): self.services_to_restart('surveillance_machines') self.services_to_restart('dns') - self.services_to_restart('macip',[self.ip()] ) + self.services_to_restart('macip', [self.ip()]) - def portTCPin(self,ports=None): + def portTCPin(self, ports=None): """ Ports TCP ouverts depuis l'extérieur pour la machine """ - return self.__port(ports,'portTCPin') - def portTCPout(self,ports=None): + return self.__port(ports, 'portTCPin') + + def portTCPout(self, ports=None): """ Ports TCP ouverts vers l'extérieur pour la machine """ - return self.__port(ports,'portTCPout') - def portUDPin(self,ports=None): + return self.__port(ports, 'portTCPout') + + def portUDPin(self, ports=None): """ Ports UDP ouverts vers l'extérieur pour la machine """ - return self.__port(ports,'portUDPin') - def portUDPout(self,ports=None): + return self.__port(ports, 'portUDPin') + + def portUDPout(self, ports=None): """ Ports UDP ouverts vers l'extérieur pour la machine """ - return self.__port(ports,'portUDPout') + return self.__port(ports, 'portUDPout') - def __port(self,ports,champ): + def __port(self, ports, champ): if ports == None: - return self._data.get(champ,[''])[0] + return self._data.get(champ, [''])[0] ports = preattr(ports)[1] - if ports and self._data.get(champ)!=ports: - self._data[champ] = [ ports ] + if ports and self._data.get(champ) != ports: + self._data[champ] = [ports] if 'ports' not in self.modifs: self.modifs.setdefault('ports', None) elif self._data.has_key(champ):