Package zephir :: Package monitor :: Package agent :: Module agent
[hide private]
[frames] | no frames]

Source Code for Module zephir.monitor.agent.agent

  1  # -*- coding: UTF-8 -*- 
  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   
12 -class Agent:
13 - def __init__(self):
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 # template de la sortie XML 30 XML = """ 31 <agent nom="%s" date="%s" description="%s" status="%s"> 32 %s 33 </agent> 34 """ 35 36 # template de la sortie HTML 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
49 - def first_time(self):
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
58 - def set_status(self, status):
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
66 - def write_xml(self):
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
85 - def write_html(self):
86 """Ecriture du html dans un fichier 87 """ 88 createfile( self.html_filename, self.HTML % (self.description,self.name,self.contenu_html) )
89
90 - def __str__(self):
91 return """<Agent : %s>""" % self.name
92 93
94 -class MicroAgent:
95 - def __init__(self):
96 """ 97 - satus : etat du micro-agent (up|down) 98 """ 99 self.status = "1" 100 self.contenu_xml="" 101 self.contenu_html=""
102
103 - def set_status(self, status):
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
111 - def _status_to_diode(self):
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 "&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<img src=\""+image+"\">"
119
120 - def dump_xml(self):
121 """sortie en xml 122 """ 123 XML_DATA = """<variable name="%s" value="%s"/>""" 124 self.contenu_xml=XML_DATA % (self.name, self.status)
125
126 - def dump_html(self):
127 """sortie en html 128 """ 129 HTML_DATA = """<tr><td>%s&nbsp;</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