1
2
3
4
5
6
7
8
9 """
10 Agent zephir surveillant le fonctionnement du service horus_frontend
11 """
12
13 import os
14 from creole import parsedico
15 from twisted.python import log
16 from twisted.internet import defer
17 from twisted.internet.utils import getProcessOutput, getProcessValue
18
19 from zephir.monitor.agentmanager.agent import Agent
20 from zephir.monitor.agentmanager.data import TableData
21 from zephir.monitor.agentmanager.util import status_to_img, boolean_to_onoff
22 from zephir.monitor.agentmanager import status
23
25 h1, p1 = hp1.split(':')
26 h2, p2 = hp2.split(':')
27 result = cmp(h1, h2)
28 if result != 0:
29 return result
30 else:
31 return cmp(int(p1), int(p2))
32
34
36
37 Agent.__init__(self, name, **params)
38 try:
39 d = parsedico.parse_dico()
40 self.adresse_eth0 = d['adresse_ip_eth0']
41 except:
42 self.adresse_eth0 = "127.0.0.1"
43
44 self.table = TableData([
45 ('status', "état", {'align':'center'}, status_to_img),
46 ('description', "Description", {'align':'left'}, None),
47 ('host', "Hôte", {'align':'left'}, None),
48 ('port', "Port", {'align':'left'}, None) ])
49 self.data = [self.table]
50
52 res = os.system('/etc/init.d/horus_frontend status &> /dev/null')
53 if res == 0:
54 result = True
55 else:
56 result = False
57
58 status = boolean_to_onoff(result)
59 mesures=[{ 'description': 'serveur du frontend LDAP',
60 'host': self.adresse_eth0,
61 'port': '7080',
62 'status': status }]
63 return {'services': mesures}
64
66 Agent.write_data(self)
67 if self.last_measure is not None:
68 self.table.table_data = self.last_measure.value['services']
69
71 """remonte une erreur si un des services est tombé"""
72 if self.last_measure is not None:
73 for service in self.last_measure.value['services']:
74 if service['status'] != 'On':
75 return status.Error()
76 else:
77
78 return status.Unknown()
79 return status.OK()
80