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 = ['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
60 Agent.write_data(self)
61 if self.last_measure is not None:
62 self.table.table_data = self.last_measure.value['agents']
63
65 """remonte une erreur si un des services est tombé"""
66
67 return self.glob_status
68