Bug sur les changement de chambres (introduit lors de l'ide de mettre les

chambes dans l'historique) : les services n'taient pas redmarrs.
Changement dans la gestion des services  redmarrer.

darcs-hash:20041211234749-41617-6e3edef0736a44f9b28acee4e6608f83644a3d55.gz
This commit is contained in:
pauget 2004-12-12 00:47:49 +01:00
parent 29dca42b45
commit 291139c9a7

View file

@ -410,8 +410,9 @@ class crans_ldap :
except ldap.ALREADY_EXISTS : except ldap.ALREADY_EXISTS :
# Existe déja => rien à faire # Existe déja => rien à faire
pass pass
except : except ldap.TYPE_OR_VALUE_EXISTS :
print modlist # Pareil
pass
def search(self,expression,mode='') : def search(self,expression,mode='') :
""" """
@ -790,11 +791,11 @@ class base_classes_crans(crans_ldap) :
if not self._init_data : if not self._init_data :
modif='inscription' modif='inscription'
else : else :
if "chbre" in self.modifs: ### ON NE TOUCHE PAS A SELF.MODIFS, IL EST UTILISÉ PLUS LOIN !!!!!!!
self.modifs.remove("chbre")
self.modifs.append("chbre %s -> %s" % (self._init_data["chbre"][0],
self._data["chbre"][0]))
modif=', '.join(self.modifs) modif=', '.join(self.modifs)
if "chbre" in self.modifs:
modif.replace('chbre', "chbre %s -> %s" % (self._init_data["chbre"][0],
self._data["chbre"][0]))
timestamp = localtime() timestamp = localtime()
hist = "%s, %s" % ( time.strftime(date_format, timestamp), script_utilisateur ) hist = "%s, %s" % ( time.strftime(date_format, timestamp), script_utilisateur )
@ -858,23 +859,13 @@ class base_classes_crans(crans_ldap) :
raise RuntimeError(u'Entrée en double dans le champ %s' % champ) raise RuntimeError(u'Entrée en double dans le champ %s' % champ)
### Génération de la liste de services à redémarrer ### Génération de la liste de services à redémarrer
# Quasiement tout est traité dans les classes filles.
# Correspondance modif de la base -> service ayant besoin d'être redémarré
# Une grosse partie du traitement est délocalisé dans les classes filles.
serv = []
for m in self.modifs : for m in self.modifs :
if sre.match('blacklist_*',m) : if sre.match('blacklist_*',m) :
serv.append(m) services_to_restart(m)
elif m == 'chbre' and '????' in [ self._init_data.get("chbre",[''])[0] , self._data.get("chbre",[''])[0] ] :
serv.append('bl_chbre_invalide')
elif m == 'droits' :
serv.append('droits')
# Reinitialisation # Reinitialisation
self._init_data = self._data.copy() self._init_data = self._data.copy()
for s in serv :
self.services_to_restart(s)
def _delete(self,dn,comment='') : def _delete(self,dn,comment='') :
""" Sauvegarde puis destruction du dn (et des sous-dn) fourni """ """ Sauvegarde puis destruction du dn (et des sous-dn) fourni """
@ -1066,7 +1057,6 @@ class base_proprietaire(base_classes_crans) :
# Note : un peu trop de fonctions pour un club mais ce n'est pas génant # Note : un peu trop de fonctions pour un club mais ce n'est pas génant
ret ='' ret =''
serv = []
if self._init_data : if self._init_data :
nouveau =0 nouveau =0
# Reconfiguration switch si changement de chambre et si machine fixe # Reconfiguration switch si changement de chambre et si machine fixe
@ -1078,7 +1068,10 @@ class base_proprietaire(base_classes_crans) :
break break
else : else :
nouveau = 1 nouveau = 1
if 'chbre' in self.modifs and '????' in [ self._init_data.get("chbre",[''])[0] , self._init_data.get("chbre",[''])[0] ] :
serv.append('bl_chbre_invalide')
# Enregistrement # Enregistrement
self._save() self._save()
@ -1096,20 +1089,21 @@ class base_proprietaire(base_classes_crans) :
# Faut-il redémarrer plus de services que ceux traités dans _save ? # Faut-il redémarrer plus de services que ceux traités dans _save ?
if 'carteEtudiant+%s' % ann_scol in self.modifs \ if 'carteEtudiant+%s' % ann_scol in self.modifs \
or 'carteEtudiant-%s' % ann_scol in self.modifs \ or 'carteEtudiant-%s' % ann_scol in self.modifs \
and self.machines() and 'bl_carte_etudiant' not in serv : and self.machines() :
self.services_to_restart('bl_carte_etudiant') self.services_to_restart('bl_carte_etudiant')
if 'paiement+%s' % ann_scol in self.modifs \ if 'paiement+%s' % ann_scol in self.modifs \
or 'paiement-%s' % ann_scol in self.modifs : or 'paiement-%s' % ann_scol in self.modifs :
for m in self.machines() : for m in self.machines() :
if m.ipsec() and not 'conf_wifi' in serv : self.services_to_restart('firewall',[m.ip()] )
self.services_to_restart('firewall-komaz',[m.ip()] )
self.services_to_restart('dns')
if m.ipsec() :
self.services_to_restart('conf_wifi') self.services_to_restart('conf_wifi')
elif not self.chbre() in serv : self.services_to_restart('dhcp-nectaris')
else :
self.services_to_restart('switch',[self.chbre()]) self.services_to_restart('switch',[self.chbre()])
if self.machines() : self.services_to_restart('dhcp')
for s in ['dhcp', 'dhcp-nectaris', 'dns', 'firewall' ] :
if s not in serv :
serv.append(s)
# Vérification si changement de bât, ce qui obligerai un changement d'IP # Vérification si changement de bât, ce qui obligerai un changement d'IP
if 'chbre' in self.modifs and self.chbre()!='????' : if 'chbre' in self.modifs and self.chbre()!='????' :
@ -1129,8 +1123,8 @@ class base_proprietaire(base_classes_crans) :
ret += "\nChangement d'IP machine %s : " % m.nom() ret += "\nChangement d'IP machine %s : " % m.nom()
try : try :
ret += "%s -> %s" % ( ip, m.ip('<automatique>') ) ret += "%s -> %s" % ( ip, m.ip('<automatique>') )
r = m.save() m.save()
except c : except Exception, c :
ret += coul(u'ERREUR : %s' % c.args[0], rouge) ret += coul(u'ERREUR : %s' % c.args[0], rouge)
err = 1 err = 1
@ -1148,14 +1142,14 @@ class base_proprietaire(base_classes_crans) :
chgpass(self.dn) chgpass(self.dn)
else : else :
ret += coul(u' Il faudra penser à attribuer un mot de passe\n','jaune') ret += coul(u' Il faudra penser à attribuer un mot de passe\n','jaune')
# Modif des droits ?
if 'droits' in self.modifs :
self.services_to_restart('droits')
# Remise à zero # Remise à zero
self.modifs=[] self.modifs=[]
for s in serv :
self.services_to_restart(s)
return ret return ret
def _an(self,champ,action) : def _an(self,champ,action) :
@ -2043,7 +2037,7 @@ class machine(base_classes_crans) :
ret ='' ret =''
# Besion de redémarrer les firewalls ? # Besoin de redémarrer les firewalls ?
if 'ipHostNumber' in self.modifs or 'macAddress' in self.modifs : if 'ipHostNumber' in self.modifs or 'macAddress' in self.modifs :
reconf_ip = self._init_data.get('ipHostNumber',[]) reconf_ip = self._init_data.get('ipHostNumber',[])
reconf_ip += self._data.get('ipHostNumber',[]) reconf_ip += self._data.get('ipHostNumber',[])
@ -2067,7 +2061,7 @@ class machine(base_classes_crans) :
else : else :
self.services_to_restart('dhcp') self.services_to_restart('dhcp')
if 'ports' in self.modifs : if 'ports' in self.modifs :
self.services_to_restart('firewall-komaz', [ self.ip() ] ) self.services_to_restart('firewall-komaz-ports', [ self.ip() ] )
# Reconfiguration DNS ? # Reconfiguration DNS ?
if 'host' in self.modifs or 'ipHostNumber' in self.modifs or 'hostAlias' in self.modifs : if 'host' in self.modifs or 'ipHostNumber' in self.modifs or 'hostAlias' in self.modifs :