1
2
3 """
4 Classe parente d'un agent python
5 """
6
7 import time, os
8 from zephir.monitor.utils import createfile
9 from zephir.monitor.config import Config
10
11
14 """
15 - append_mode : 0 par défaut mode écrasement (pas d'ajout à la suite par le scheduler)
16 - xml_filename : sortie xml
17 - hml_filename : sortie html
18 - satus : etat de l'agent (up|down)
19 """
20 cfg = Config()
21 self.append_mode = 0
22 self.date = time.strftime("%d/%m/%Y", time.localtime())
23 self.xml_filename = cfg.get_xml_name(self.name)
24 self.html_filename = cfg.get_html_name(self.name)
25 self.status = "1"
26 self.contenu_xml=""
27 self.contenu_html=""
28
29
30 XML = """
31 <agent nom="%s" date="%s" description="%s" status="%s">
32 %s
33 </agent>
34 """
35
36
37 HTML = """
38 <div class="titlediv">
39 <h1 class="newstitle">
40 %s
41 </h1>
42 <a name="%s"/>
43 </div>
44 <div class="bodydiv">
45 %s
46 </div>
47 """
48
50 """Permet un comportement différent de write_xml
51 suivant la valeur du mode ajout
52 """
53 if os.path.isfile(self.xml_filename):
54 return False
55 else:
56 return True
57
59 """Fixe l'état de l'agent (up ou down)
60 """
61 if status == "1" or status == "0":
62 self.status = status
63 else :
64 raise Exception, "statut errone"
65
67 """Ecriture du xml dans un fichier
68 """
69 test_first = False
70
71 if self.first_time():
72 test_first = True
73
74 if not self.append_mode:
75 fh = open(self.xml_filename, "w")
76 else:
77 fh = open(self.xml_filename, "a")
78
79 if test_first or not self.append_mode:
80 fh.write("""<?xml version="1.0" encoding="%s"?>\n""" % config.charset)
81
82 fh.write( self.XML % (self.name,self.date,self.description,self.status,self.contenu_xml) )
83 fh.close()
84
86 """Ecriture du html dans un fichier
87 """
88 createfile( self.html_filename, self.HTML % (self.description,self.name,self.contenu_html) )
89
91 return """<Agent : %s>""" % self.name
92
93
96 """
97 - satus : etat du micro-agent (up|down)
98 """
99 self.status = "1"
100 self.contenu_xml=""
101 self.contenu_html=""
102
104 """Fixe l'état de l'agent (up ou down)
105 """
106 if status == "1" or status == "0":
107 self.status = status
108 else :
109 raise Exception, "statut errone"
110
112 """Retourne la balise image en fonction de l'état
113 """
114 if self.status=="1" :
115 image="./images/b_vert.png"
116 else:
117 image="./images/b_rouge.png"
118 return " <img src=\""+image+"\">"
119
121 """sortie en xml
122 """
123 XML_DATA = """<variable name="%s" value="%s"/>"""
124 self.contenu_xml=XML_DATA % (self.name, self.status)
125
127 """sortie en html
128 """
129 HTML_DATA = """<tr><td>%s </td><td>%s</td></tr>"""
130 self.contenu_html=HTML_DATA % (self.description, self._status_to_diode())
131
132 if __name__ == "__main__":
133 pass
134