Package zephir :: Package monitor :: Module config
[frames] | no frames]

Source Code for Module zephir.monitor.config

  1  # -*- coding: UTF-8 -*- 
  2  ########################################################################### 
  3  # Eole NG - 2007   
  4  # Copyright Pole de Competence Eole  (Ministere Education - Academie Dijon) 
  5  # Licence CeCill  cf /root/LicenceEole.txt 
  6  # eole@ac-dijon.fr  
  7  # 
  8  # config.py 
  9  # 
 10  # fichier de configuration pour les agents zephir (deprecated) 
 11  #   
 12  ########################################################################### 
 13  """ 
 14  Lis le fichier de configuration des agents et en propose des accès adéquats 
 15  """ 
 16  import os 
 17   
 18  PATH_ZEPHIR = "./toto" 
 19   
 20  from utils import readfile 
 21   
 22  import xmlite 
 23   
 24  ROOT_DIR = "." 
 25   
 26  XML_DIR = ROOT_DIR + os.sep + "xml" 
 27   
 28  HTML_DIR = ROOT_DIR + os.sep + "htm" 
 29   
 30  AGENT_DIR = ROOT_DIR + os.sep + "agent" 
 31   
 32  SITE_DIR = ROOT_DIR + os.sep + "site" 
 33   
 34  URL_DIR = "." 
 35   
36 -class Config:
37 """ 38 Extrait les données du fichier de config 39 """
40 - def __init__(self, file= "agents.cfg"):
41 self.file = file 42 self.dict_agent = self._get_agents()
43
44 - def _get_agents(self):
45 """Récupère la liste des agents depuis un fichier 46 { agent_name : ( 47 0 : script_name, 48 1 : temps, 49 2 : group, 50 3 : group_description ) } 51 """ 52 # récupération de la liste des agents 53 d = {} 54 fh = open(self.file,"r") 55 l = fh.read().split("\n") 56 fh.close() 57 for ligne in l : 58 if not (ligne.startswith("#") or ligne == "\n" or ligne == "") : 59 agent, script, temps , group, title = ligne.split(";") 60 d[str(agent)] = (str(script), int(temps), str(group), str(title)) 61 return d
62
63 - def get_agent_list(self):
64 """Récupère la liste totale de tous les agents 65 """ 66 return self.dict_agent.keys()
67
68 - def get_agent_group(self, group):
69 """Récupère la liste des agents d'un groupe 70 """ 71 l = [] 72 for agent in self.dict_agent.keys(): 73 if self.dict_agent[agent][2] == group: 74 l.append(agent) 75 return l
76
77 - def get_agent_desc(self, agent):
78 """Rapatrie l'attribut descripton de l'objet à partir du xml généré par l'agent. 79 """ 80 xml_filename = self.get_xml_name(agent) 81 # conversion du xml en liste 82 l = xmlite.load(xml_filename) 83 # dictionnaire des attributs de la balise agent 84 attrs = l[1][1] 85 return attrs['description']
86
87 - def get_agent_script(self, agent_name):
88 """Nom du script de l'agent 89 """ 90 return AGENT_DIR + os.sep + self.dict_agent[agent_name][0]
91
92 - def get_xml_name(self, agent_name):
93 """Nom xml de l'agent 94 """ 95 return XML_DIR + os.sep + agent_name + ".xml"
96
97 - def get_html_name(self, name):
98 """Nom long de la page html pour une sortie d'un agent 99 """ 100 return HTML_DIR + os.sep + name + ".htm"
101
102 - def get_html_site(self, group_name):
103 """Nom long de la page html d'un groupe 104 """ 105 return SITE_DIR + os.sep + group_name + ".htm"
106
107 - def get_html_relative_name(self, group_name):
108 """Nom court de la page html d'un groupe (pour les urls) 109 """ 110 return URL_DIR + os.sep + group_name + ".htm"
111
112 - def get_agent_time(self, agent_name):
113 """Intervalle de shedule d'un agent 114 """ 115 return self.dict_agent[agent_name][1]
116
117 - def get_group_list(self):
118 """Collecte les noms des groupes 119 """ 120 agents = self.dict_agent 121 # collecte les noms des groupes d'agents 122 groups = [] 123 for agent in agents.keys(): 124 groups.append(agents[agent][2]) 125 # elimine les doublons dans la liste 126 group_list = [] 127 for group in groups: 128 if not group in group_list: 129 group_list.append(group) 130 return group_list
131
132 - def get_group_desc(self, group_name):
133 """Récupère la description d'un groupe d'agents à partir du fichier cfg 134 """ 135 agents = self.dict_agent 136 137 for agent in agents.keys(): 138 if agents[agent][2] == group_name: 139 return agents[agent][3]
140 141 # tests 142 143 if __name__ == "__main__" : 144 cfg = Config() 145 ## print cfg.get_group_list() 146 print cfg.get_agent_desc("mem") 147 ## print cfg.get_agent_group("systeme") 148