diff --git a/gestion/gen_confs/supervison.py b/gestion/gen_confs/supervison.py
index 55cbb3f2..e41b0deb 100755
--- a/gestion/gen_confs/supervison.py
+++ b/gestion/gen_confs/supervison.py
@@ -75,259 +75,3 @@ Subject: %(Subject)s
'Text' : texte.encode('iso8859-15') } )
conn.quit()
print OK
-
-class autostatus(gen_config) :
- # CONFIGURATION #
- #################
-
- # fichier de l'autostatus
- CONFFILE = '/etc/autostatus/hosts'
-
- # machines crans à ne pas mettre dans l'autostatus
- exclude = ["non-configure.wifi.crans.org"]
-
- # matrice du fichier d'autostatus
- matrice = """
-# Format : name address depend,list contact description
-
-# routeurs vers l'extérieur #
-#############################
-
-%%HTML:
Routeurs, dans l'ordre où ils sont entre le crans et l'extérieur : |
-
-%(route)s
-
-# serveurs du crans #
-#####################
-
-%%HTML: |
-%%HTML: Serveurs : |
-
-%(serveurs)s
-
-# ferme #
-#########
-
-%%HTML: |
-%%HTML: La ferme, diffusion de la télé : |
-
-%(ferme)s
-
-# switchs #
-###########
-
-%%HTML: |
-%%HTML: Switchs : |
-
-%(switchs)s
-
-# bornes wifi #
-###############
-
-%%HTML: |
-%%HTML: Bornes wifi : |
-
-%(bornes)s
-
-# Sites web et Services #
-#########################
-
-%%HTML: |
-%%HTML: Sites web et Services HORS de l'ENS: |
-%%HTML: (21:FTP ; 80:HTTP ; 119:news ; 5190:port du protocole ICQ) |
-
-%(exterieur)s
-"""
- # quelque descriptions de routeurs triés par IP (pour la route vers l'extérieur)
-
- infos_routeurs = {}
- infos_routeurs [ '138.231.136.4' ] = ['Komaz', 'Routeur principal du CRANS']
- infos_routeurs [ '138.231.135.5' ] = ['IRTS', 'Routeur de l\'ENS assurant la liaison CRANS<->ENS']
- infos_routeurs [ '138.231.132.1' ] = ['gateway', 'Routeur de l\'ENS']
- infos_routeurs [ '138.231.176.1' ] = ['Pioneer', 'Routeur principal de l\'ENS']
- infos_routeurs [ '193.49.65.1' ] = ['RenaterCachan1' , 'Routeur Renater' ]
- infos_routeurs [ '193.51.181.186' ] = ['RenaterCachan2', 'Routeur Renater']
- infos_routeurs [ '193.51.180.166' ] = ['RenaterJussieu1', 'Routeur Renater']
- infos_routeurs [ '193.51.180.158' ] = ['RenaterJussieu2', 'Routeur Renater']
-
- # services extérieurs (triés par clé de dictionnaire)
- # format [ nom, ip, port(0=ping), description ]
-
- services_exterieurs = {}
- services_exterieurs ['Jussieu'] = [ 'Jussieu', '195.83.118.1', 21, 'Le serveur FTP de Jussieu. (France)', 'nobody']
- services_exterieurs ['Free'] = [ 'Free', '213.228.0.141', 21, 'Le serveur FTP de free. (France)', 'nobody' ]
- services_exterieurs ['Voila'] = [ 'Voila', '195.101.94.80', 80, 'Est-ce que Voila fonctionne ? (France)', 'nobody' ]
- services_exterieurs ['Yahoo!'] = [ 'Yahoo!', '66.94.230.39', 80, 'Est-ce que Yahoo! fonctionne ? (USA)', 'nobody' ]
- services_exterieurs ['Altalavista'] = [ 'Altavista', '216.155.200.155', 80, 'Est-ce que Altavista fonctionne ? (USA)', 'nobody' ]
-
- # personnes à informer pour l'indiponibilité de certains serveurs
- contact = {}
- contact ['pegase.crans.org'] = 'pessoles@crans.org'
-
- # service à redémarer
- restart_cmd = ""
-
- # FIN DE LA CONFIGURATION
-
- def __str__ (self) :
- return "autostatus"
-
- def make_config (self, dico ) :
- """
- Transforme le dico en suite lignes de configuration
- """
- liste = dico.keys()
- liste.sort()
- append = ""
- for i in liste :
- 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
- ################
-
- machines = crans().machines()
-
- # tri des machines par type
- bornes = {}
- switchs = {}
- serveurs = {}
- ferme = {}
-
- # tri des machines
- for m in machines :
-
- # machine exclue
- if m.nom() in self.exclude :
- continue
-
- # les bornes
- if m.canal() :
- # C'est une borne
- 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' , self.mail_contact(m.nom()) , m.info()[0] ]
- else :
- 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' , self.mail_contact(m.nom()) , 'Inutilise' ]
-
- # les switchs
- elif m.info() and 'switch' in m.info()[0].lower() :
-
- # est ce que c'est un batiment
- if 'bat' == m.nom()[0:3] :
- index = '1-' + m.nom().split(".")[0]
- else :
- index = '0-' + m.nom().split(".")[0]
-
- # on ajoute au dictionnaire
- 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 = ".".join(m.nom().split(".")[0:2])
- if m.info() :
- ferme[ nom ] = [ nom , m.nom() , 'none' , self.mail_contact(m.nom()) , m.info()[0] ]
- else :
- ferme[ nom ] = [ nom , m.nom() , 'none' , self.mail_contact(m.nom()) , 'Infos non disponibles' ]
-
- # les serveurs
- else :
- if ".wifi.crans.org" in m.nom() :
- nom = m.nom().split(".")[0] + ".wifi"
- else :
- nom = m.nom().split(".")[0]
- if m.info() :
- serveurs[ nom ] = [ nom , m.nom() , 'none' , self.mail_contact(m.nom()) , m.info()[0] ]
- else :
- serveurs[ nom ] = [ nom , m.nom() , 'none' , self.mail_contact(m.nom()) , 'Infos non disponibles' ]
-
- # route vers l'extérieur
- ########################
-
- # on récupère la route vers l'extérieur
- traceroute = commands.getoutput("/usr/bin/traceroute www.free.fr 2> /dev/null | sed 's/\*//g' | sed 's/ */ /g' | sed 's/^ //g' | sed 's/[(,)]//g' | cut -d ' ' -f 2,3").split("\n")
-
- # initialisation des variables
- in_renater = 0
- route_to_ext = ''
- depends_to_ext = ''
-
- for routeur in traceroute :
-
- # on commence à rentrer dans la chaine des routeurs renater
- if 'renater.fr' in routeur :
- in_renater = 1
-
- # on est plus dans les routeurs renater donc on arrête
- if in_renater and not 'renater.fr' in routeur :
- continue
-
- # ajout du routeur
-
- # ip
- tmp_ip = routeur.split(' ')[1]
-
- # nom & desciption
- if routeur.split(' ')[1] in self.infos_routeurs.keys() :
- tmp_name = self.infos_routeurs[tmp_ip][0]
- tmp_desc = self.infos_routeurs[tmp_ip][1]
- else :
- tmp_name = routeur.split(' ')[0].split('.')[0]
- tmp_desc = 'Pas de description'
-
- # dépendances
- if not depends_to_ext :
- tmp_depends = 'none'
- depends_to_ext = tmp_name
- else :
- tmp_depends = depends_to_ext
- depends_to_ext += ',' + tmp_name
-
- # on l'ajoute à la route
- if route_to_ext :
- route_to_ext += '\n'
- route_to_ext += '%s %s %s %s %s' % (tmp_name, tmp_ip, tmp_depends,self.mail_contact(tmp_name),tmp_desc)
-
- # services extérieurs
- #####################
-
- services_exterieurs = {}
- 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, s[4] , s[3] ]
- else :
- services_exterieurs[ key ] = [ s[0] , s[1] , depends_to_ext, s[4] , s[3] ]
-
- # génération du fichier
- #######################
-
- file = self._open_conf(self.CONFFILE, "#")
-
- # génère le dictionnaire pour les modifications
- dico = {}
- dico['switchs'] = self.make_config(switchs)
- dico['bornes'] = self.make_config(bornes)
- dico['serveurs'] = self.make_config(serveurs)
- dico['ferme'] = self.make_config(ferme)
- dico['route'] = route_to_ext.encode('iso-8859-15')
- dico['exterieur'] = self.make_config(services_exterieurs)
-
- # on écrit dans le fichier de configuration
- file.write( self.matrice % dico )
-
- # on ferme le fichier
- file.close()