1
2
3
4
5
6
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
19
20
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
32 mesures = []
33 try:
34
35
36 from zephir.zephir_conf.zephir_conf import id_serveur
37 except:
38
39 id_serveur = 0
40
41
42 hidden = self.manager.agents['tcpservices'].tcp_services
43 self.glob_status = status.OK()
44 for agent in self.manager.agents.keys():
45 serv_agent = self.manager.agents[agent]
46 if serv_agent.name != 'bilan' and serv_agent.name not in hidden:
47 if serv_agent.check_status() == status.Error():
48 self.glob_status = status.Warn()
49 if serv_agent.last_measure is not None:
50 mesures.append({ 'description': '<a href=/agents/%s/%s/>%s</a>' % (id_serveur, agent, serv_agent.description),
51 'stats': '<img src=/agents/%s/%s/status_long.png alt="Historique (%s)"/>' % (id_serveur,agent,agent)})
52 else:
53 mesures.append({ 'description': agent,
54 'stats': ''})
55 return {'agents': mesures}
56
57
59 Agent.write_data(self)
60 if self.last_measure is not None:
61 self.table.table_data = self.last_measure.value['agents']
62
64 """remonte une erreur si un des services est tombé"""
65
66 return self.glob_status
67