Package zephir :: Package monitor :: Package agents :: Module bilan
[frames] | no frames]

Source Code for Module zephir.monitor.agents.bilan

 1  # -*- coding: UTF-8 -*- 
 2  ########################################################################### 
 3  # Eole NG - 2007   
 4  # Copyright Pole de Competence Eole  (Ministere Education - Academie Dijon) 
 5  # Licence CeCill  cf /root/LicenceEole.txt 
 6  # eole@ac-dijon.fr  
 7  ########################################################################### 
 8   
 9  """ 
10  Agent zephir pour la génération des bilans mensuels 
11  """ 
12   
13  from zephir.monitor.agentmanager.agent import Agent 
14  from zephir.monitor.agentmanager.data import TableData 
15  from zephir.monitor.agentmanager.util import status_to_img 
16  from zephir.monitor.agentmanager import status 
17   
18 -class Bilan(Agent):
19 20
21 - def __init__(self, name, **params):
22 Agent.__init__(self, name, **params) 23 self.glob_status = status.OK() 24 self.table = TableData([ 25 ('description', "Description", {'align':'left'}, None), 26 ('stats', "Historique", {'align':'left'}, None), 27 ]) 28 self.data = [self.table]
29 30
31 - def measure(self):
32 mesures = [] 33 try: 34 # recherche de l'identifiant zephir 35 # (nécessaire pour l'url du graphe de status des 'sous agents') 36 from zephir.zephir_conf.zephir_conf import id_serveur 37 except: 38 # si on est pas enregistré : 0 39 id_serveur = 0 40 41 # agents à ne pas prendre en compte 42 hidden = ['diag'] 43 hidden.extend(self.manager.agents['tcpservices'].tcp_services) 44 self.glob_status = status.OK() 45 for agent in self.manager.agents.keys(): 46 serv_agent = self.manager.agents[agent] 47 if serv_agent.name != 'bilan' and serv_agent.name not in hidden and not serv_agent.name.endswith('Debsums'): 48 if serv_agent.check_status() == status.Error(): 49 self.glob_status = status.Warn() 50 if serv_agent.last_measure is not None: 51 mesures.append({ 'description': '<a href=/agents/%s/%s/>%s</a>' % (id_serveur, agent, serv_agent.description), 52 'stats': '<img src=/agents/%s/%s/status_long.png alt="Historique (%s)"/>' % (id_serveur,agent,agent)}) 53 else: 54 mesures.append({ 'description': agent, 55 'stats': ''}) 56 return {'agents': mesures}
57 58
59 - def write_data(self):
60 Agent.write_data(self) 61 if self.last_measure is not None: 62 self.table.table_data = self.last_measure.value['agents']
63
64 - def check_status(self):
65 """remonte une erreur si un des services est tombé""" 66 # pas d'alerte sur cet agent 67 return self.glob_status
68