petite modifs, on peut automatiquement envoyer un mail certaines personnes

en cas de crash d'un serveur...
merci  xabi pour ses ides ;-)

darcs-hash:20041213235540-4ec08-e751947201d72686ad162fabc1dff4efb4ec7e55.gz
This commit is contained in:
chove 2004-12-14 00:55:40 +01:00
parent 87a57fa3cb
commit 8e69382001

View file

@ -94,11 +94,15 @@ class autostatus(gen_config) :
# format [ nom, ip, port(0=ping), description ]
services_exterieurs = {}
services_exterieurs ['Jussieu'] = [ 'Jussieu', '195.83.118.1', 21, 'Le serveur <a href="ftp://ftp.lip6.fr">FTP</a> de Jussieu. (France)' ]
services_exterieurs ['Free'] = [ 'Free', '213.228.0.141', 21, 'Le serveur <a href="ftp://ftp.free.fr">FTP</a> de free. (France)' ]
services_exterieurs ['Voila'] = [ 'Voila', '195.101.94.80', 80, 'Est-ce que <a href="http://www.voila.fr">Voila</a> fonctionne ? (France)' ]
services_exterieurs ['Yahoo!'] = [ 'Yahoo!', '66.94.230.39', 80, 'Est-ce que <a href="http://www.yahoo.com">Yahoo!</a> fonctionne ? (USA)' ]
services_exterieurs ['Altalavista'] = [ 'Altavista', '216.155.200.155', 80, 'Est-ce que <a href="http://www.altavista.com">Altavista</a> fonctionne ? (USA)' ]
services_exterieurs ['Jussieu'] = [ 'Jussieu', '195.83.118.1', 21, 'Le serveur <a href="ftp://ftp.lip6.fr">FTP</a> de Jussieu. (France)', 'nobody']
services_exterieurs ['Free'] = [ 'Free', '213.228.0.141', 21, 'Le serveur <a href="ftp://ftp.free.fr">FTP</a> de free. (France)', 'nobody' ]
services_exterieurs ['Voila'] = [ 'Voila', '195.101.94.80', 80, 'Est-ce que <a href="http://www.voila.fr">Voila</a> fonctionne ? (France)', 'nobody' ]
services_exterieurs ['Yahoo!'] = [ 'Yahoo!', '66.94.230.39', 80, 'Est-ce que <a href="http://www.yahoo.com">Yahoo!</a> fonctionne ? (USA)', 'nobody' ]
services_exterieurs ['Altalavista'] = [ 'Altavista', '216.155.200.155', 80, 'Est-ce que <a href="http://www.altavista.com">Altavista</a> fonctionne ? (USA)', 'nobody' ]
# personnes à informer pour l'indiponibilité de certains serveurs
contact = {}
contact ['pegase.crans.org'] = 'pessoles@crans.org'
# service à redémarer
restart_cmd = ""
@ -119,6 +123,13 @@ class autostatus(gen_config) :
append = append + " ".join( dico[i] ) + "\n"
return append.encode('iso-8859-15')
def mail_contact (self, nom) :
# retourne le mail à qui envoyer les avis pour un serveur
if nom in self.contact.keys() :
return self.contact[nom]
else :
return 'nobody'
def _gen (self) :
# machines crans
@ -145,12 +156,12 @@ class autostatus(gen_config) :
if m.info() :
# on regarde si c'est une borne de batiment
if ( m.info()[0][0:3] == "Au " ) and ( len(m.info()[0]) == 5 ) :
bornes[ "1-" + m.info()[0][4]+m.info()[0][3] + "-" + m.nom() ] = [ m.nom().split(".")[0] , m.nom() , 'none' , 'nobody' , m.info()[0] ]
bornes[ "1-" + m.info()[0][4]+m.info()[0][3] + "-" + m.nom() ] = [ m.nom().split(".")[0] , m.nom() , 'none' , self.mail_contact(m.nom()) , m.info()[0] ]
else :
bornes[ "2-" + m.info()[0] + m.nom() ] = [ m.nom().split(".")[0] , m.nom() , 'none' , 'nobody' , m.info()[0] ]
bornes[ "2-" + m.info()[0] + m.nom() ] = [ m.nom().split(".")[0] , m.nom() , 'none' , self.mail_contact(m.nom()) , m.info()[0] ]
else :
# on met les bornes non définies à la fin (ordre alphabétique)
bornes[ "3-" + m.nom() ] = [ m.nom().split(".")[0] , m.nom() , 'none' , 'nobody' , 'Inutilise' ]
bornes[ "3-" + m.nom() ] = [ m.nom().split(".")[0] , m.nom() , 'none' , self.mail_contact(m.nom()) , 'Inutilise' ]
# les switchs
elif m.info() and 'switch' in m.info()[0].lower() :
@ -166,15 +177,15 @@ class autostatus(gen_config) :
index = 'a' + m.nom().split(".")[0]
# on ajoute au dictionnaire
switchs[ index ] = [ m.nom().split(".")[0] , m.nom() , 'none' , 'nobody' , m.info()[0] ]
switchs[ index ] = [ m.nom().split(".")[0] , m.nom() , 'none' , self.mail_contact(m.nom()) , m.info()[0] ]
# la ferme
elif '.ferme.crans.org' in m.nom() :
nom = m.nom().split(".")[0]
nom = ".".join(m.nom().split(".")[0:2])
if m.info() :
ferme[ nom ] = [ nom , m.nom() , 'none' , 'nobody' , m.info()[0] ]
ferme[ nom ] = [ nom , m.nom() , 'none' , self.mail_contact(m.nom()) , m.info()[0] ]
else :
ferme[ nom ] = [ nom , m.nom() , 'none' , 'nobody' , 'Infos non disponibles' ]
ferme[ nom ] = [ nom , m.nom() , 'none' , self.mail_contact(m.nom()) , 'Infos non disponibles' ]
# les serveurs
else :
@ -183,9 +194,9 @@ class autostatus(gen_config) :
else :
nom = m.nom().split(".")[0]
if m.info() :
serveurs[ nom ] = [ nom , m.nom() , 'none' , 'nobody' , m.info()[0] ]
serveurs[ nom ] = [ nom , m.nom() , 'none' , self.mail_contact(m.nom()) , m.info()[0] ]
else :
serveurs[ nom ] = [ nom , m.nom() , 'none' , 'nobody' , 'Infos non disponibles' ]
serveurs[ nom ] = [ nom , m.nom() , 'none' , self.mail_contact(m.nom()) , 'Infos non disponibles' ]
# route vers l'extérieur
########################
@ -232,7 +243,7 @@ class autostatus(gen_config) :
# on l'ajoute à la route
if route_to_ext :
route_to_ext += '\n'
route_to_ext += '%s %s %s nobody@crans.org %s' % (tmp_name, tmp_ip, tmp_depends, tmp_desc)
route_to_ext += '%s %s %s %s %s' % (tmp_name, tmp_ip, tmp_depends,self.mail_contact(tmp_name),tmp_desc)
# services extérieurs
#####################
@ -241,9 +252,9 @@ class autostatus(gen_config) :
for key in self.services_exterieurs.keys() :
s = self.services_exterieurs[key]
if s[2] :
services_exterieurs[ key ] = [ s[0] + ':' + str(s[2]), s[1] , depends_to_ext, 'nobody' , s[3] ]
services_exterieurs[ key ] = [ s[0] + ':' + str(s[2]), s[1] , depends_to_ext, s[4] , s[3] ]
else :
services_exterieurs[ key ] = [ s[0] , s[1] , depends_to_ext, 'nobody' , s[3] ]
services_exterieurs[ key ] = [ s[0] , s[1] , depends_to_ext, s[4] , s[3] ]
# génération du fichier
#######################