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 :
# Existe déja => rien à faire
pass
except :
print modlist
except ldap.TYPE_OR_VALUE_EXISTS :
# Pareil
pass
def search(self,expression,mode='') :
"""
@ -790,11 +791,11 @@ class base_classes_crans(crans_ldap) :
if not self._init_data :
modif='inscription'
else :
if "chbre" in self.modifs:
self.modifs.remove("chbre")
self.modifs.append("chbre %s -> %s" % (self._init_data["chbre"][0],
self._data["chbre"][0]))
### ON NE TOUCHE PAS A SELF.MODIFS, IL EST UTILISÉ PLUS LOIN !!!!!!!
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()
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)
### Génération de la liste de services à redémarrer
# 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 = []
# Quasiement tout est traité dans les classes filles.
for m in self.modifs :
if sre.match('blacklist_*',m) :
serv.append(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')
services_to_restart(m)
# Reinitialisation
self._init_data = self._data.copy()
for s in serv :
self.services_to_restart(s)
def _delete(self,dn,comment='') :
""" 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
ret =''
serv = []
if self._init_data :
nouveau =0
# Reconfiguration switch si changement de chambre et si machine fixe
@ -1078,7 +1068,10 @@ class base_proprietaire(base_classes_crans) :
break
else :
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
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 ?
if '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')
if 'paiement+%s' % ann_scol in self.modifs \
or 'paiement-%s' % ann_scol in self.modifs :
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')
elif not self.chbre() in serv :
self.services_to_restart('dhcp-nectaris')
else :
self.services_to_restart('switch',[self.chbre()])
if self.machines() :
for s in ['dhcp', 'dhcp-nectaris', 'dns', 'firewall' ] :
if s not in serv :
serv.append(s)
self.services_to_restart('dhcp')
# Vérification si changement de bât, ce qui obligerai un changement d'IP
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()
try :
ret += "%s -> %s" % ( ip, m.ip('<automatique>') )
r = m.save()
except c :
m.save()
except Exception, c :
ret += coul(u'ERREUR : %s' % c.args[0], rouge)
err = 1
@ -1148,14 +1142,14 @@ class base_proprietaire(base_classes_crans) :
chgpass(self.dn)
else :
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
self.modifs=[]
for s in serv :
self.services_to_restart(s)
return ret
def _an(self,champ,action) :
@ -2043,7 +2037,7 @@ class machine(base_classes_crans) :
ret =''
# Besion de redémarrer les firewalls ?
# 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',[])
@ -2067,7 +2061,7 @@ class machine(base_classes_crans) :
else :
self.services_to_restart('dhcp')
if 'ports' in self.modifs :
self.services_to_restart('firewall-komaz', [ self.ip() ] )
self.services_to_restart('firewall-komaz-ports', [ self.ip() ] )
# Reconfiguration DNS ?
if 'host' in self.modifs or 'ipHostNumber' in self.modifs or 'hostAlias' in self.modifs :