Modification dans les services redmarrer pour le firewall de komaz et les

dhcp.

darcs-hash:20041210180212-41617-0f3f65c62e732e162fa3373c24ea33455ee51e47.gz
This commit is contained in:
pauget 2004-12-10 19:02:12 +01:00
parent acde64b755
commit 13c6a6d874
2 changed files with 44 additions and 34 deletions

View file

@ -302,7 +302,7 @@ Subject: Modifications sur une machine du CR@NS
from gen_confs.bind import dns from gen_confs.bind import dns
inst.append([dns(),"dns"]) inst.append([dns(),"dns"])
if 'dhcp' in to_do.keys() : if 'dhcp' in to_do.keys() or 'dhcp-nectaris' in to_do.keys() :
from gen_confs.dhcpd import dhcp from gen_confs.dhcpd import dhcp
inst.append([dhcp(),"dhcp"]) inst.append([dhcp(),"dhcp"])

View file

@ -410,6 +410,8 @@ class crans_ldap :
except ldap.ALREADY_EXISTS : except ldap.ALREADY_EXISTS :
# Existe déja => rien à faire # Existe déja => rien à faire
pass pass
except :
print modlist
def search(self,expression,mode='') : def search(self,expression,mode='') :
""" """
@ -858,27 +860,15 @@ class base_classes_crans(crans_ldap) :
### Génération de la liste de services à redémarrer ### Génération de la liste de services à redémarrer
# Correspondance modif de la base -> service ayant besoin d'être redémarré # Correspondance modif de la base -> service ayant besoin d'être redémarré
# pour paiement et carte d'étudiant : traitement dans la classe adhérent # Une grosse partie du traitement est délocalisé dans les classes filles.
# car il faut vérifier l'existance de machines
annuaire_modif_service = { 'host' : [ 'dhcp', 'dhcp-nectaris', 'dns' ],
'ipHostNumber' : [ 'dhcp', 'dhcp-nectaris', 'dns', 'firewall' ],
'macAddress' : [ 'dhcp', 'dhcp-nectaris', 'dns', 'firewall' ],
'ipsec' : [ 'conf_wifi' ],
'hostAlias' : [ 'dns' ] ,
'droits' : [ 'droits' ] ,
'ports' : [ 'firewall-komaz' ] ,
}
serv = [] serv = []
for m in self.modifs : for m in self.modifs :
if sre.match('blacklist_*',m) : if sre.match('blacklist_*',m) :
serv.append(m) serv.append(m)
elif m == 'chbre' and '????' in [ self._init_data.get("chbre",[''])[0] , self._data.get("chbre",[''])[0] ] : elif m == 'chbre' and '????' in [ self._init_data.get("chbre",[''])[0] , self._data.get("chbre",[''])[0] ] :
serv.append('bl_chbre_invalide') serv.append('bl_chbre_invalide')
else : elif m == 'droits' :
for s in annuaire_modif_service.get(m,[]) : serv.append('droits')
if s not in serv :
serv.append(s)
# Reinitialisation # Reinitialisation
self._init_data = self._data.copy() self._init_data = self._data.copy()
@ -2053,21 +2043,42 @@ class machine(base_classes_crans) :
ret ='' ret =''
# Besion 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',[])
else :
reconf_ip = []
# Enregistrement # Enregistrement
self._save() self._save()
# Clef IPsec # Clef IPsec
if 'ipsec' in self.modifs : if 'ipsec' in self.modifs :
ret += coul(u'Clef IPsec de la machine : %s\n' % self.ipsec(),'cyan') ret += coul(u'Clef IPsec de la machine : %s\n' % self.ipsec(),'cyan')
elif 'macAddress' in self.modifs and self.__typ == 'fixe' : self.services_to_restart('conf_wifi')
# Reconfiguration switch necessaire
self.services_to_restart('switch',[self.proprietaire().chbre()])
# Reconfiguration firewalls et dhcps
if reconf_ip :
self.services_to_restart('firewall' , reconf_ip)
self.services_to_restart('firewall-komaz' , reconf_ip)
if self.__typ == 'wifi' :
self.services_to_restart('dhcp-nectaris')
else :
self.services_to_restart('dhcp')
if 'ports' in self.modifs :
self.services_to_restart('firewall-komaz', [ self.ip() ] )
# Reconfiguration DNS ?
if 'host' in self.modifs or 'ipHostNumber' in self.modifs or 'hostAlias' in self.modifs :
self.services_to_restart('dns')
# Reconfiguration bornes wifi ?
if 'canal' in self.modifs or 'puissance' in self.modifs : if 'canal' in self.modifs or 'puissance' in self.modifs :
self.services_to_restart('bornes_wifi',[self.nom()]) self.services_to_restart('bornes_wifi',[self.nom()])
# Reconfiguration clients wifi ?
if self.__typ == 'wifi' and ( 'ipHostNumber' in self.modifs or 'host' in self.modifs ) : if self.__typ == 'wifi' and ( 'ipHostNumber' in self.modifs or 'host' in self.modifs ) :
# Reconfiguration clients wifi necessaire
self.services_to_restart('conf_wifi') self.services_to_restart('conf_wifi')
# Regénération blackliste nécessaire ? # Regénération blackliste nécessaire ?
@ -2076,12 +2087,9 @@ class machine(base_classes_crans) :
for s in bl : for s in bl :
self.services_to_restart(s,[ self.ip() ] ) self.services_to_restart(s,[ self.ip() ] )
# Regénération de l'autostatus ? # Regénération de l'autostatus et mail de changmement ?
if self.proprietaire().__class__ == crans : if self.proprietaire().__class__ == crans :
self.services_to_restart('autostatus') self.services_to_restart('autostatus')
# On envoie un mail pour annoncer le changement
if self.proprietaire().__class__ == crans :
self.services_to_restart('mail_modification_machine',[self.ip()]) self.services_to_restart('mail_modification_machine',[self.ip()])
# Remise à zéro # Remise à zéro
@ -2097,19 +2105,21 @@ class machine(base_classes_crans) :
if self.proprietaire().__class__ == crans and not isadm : if self.proprietaire().__class__ == crans and not isadm :
raise EnvironmentError(u'Il faut être administrateur pour effectuer cette opération.') raise EnvironmentError(u'Il faut être administrateur pour effectuer cette opération.')
if self.__typ == 'wifi' :
self.services_to_restart('conf_wifi')
elif self.__typ == 'fixe' :
self.services_to_restart('switch',[ self.proprietaire().chbre() ])
self.proprio = self.__proprietaire.Nom() # On met dans un coin le nom du proprio self.proprio = self.__proprietaire.Nom() # On met dans un coin le nom du proprio
self.__proprietaire = None # On oublie le propriétaire self.__proprietaire = None # On oublie le propriétaire
self._delete(self.dn,comment) self._delete(self.dn,comment)
self.services_to_restart('dhcp') # Services à redémarrer
if self.__typ == 'wifi' :
self.services_to_restart('conf_wifi')
self.services_to_restart('dhcp-nectaris') self.services_to_restart('dhcp-nectaris')
else :
self.services_to_restart('dhcp')
self.services_to_restart('dns') self.services_to_restart('dns')
self.services_to_restart('firewall',[ self.nom() ]) self.services_to_restart('firewall',[ self.ip() ])
self.services_to_restart('firewall-komaz',[ self.ip() ])
def portTCPin(self,ports=None) : def portTCPin(self,ports=None) :
""" Ports TCP ouverts depuis l'extérieur pour la machine """ """ Ports TCP ouverts depuis l'extérieur pour la machine """