1
2
3
4
5
6
7
8
9
10
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
37 """
38 Extrait les données du fichier de config
39 """
41 self.file = file
42 self.dict_agent = self._get_agents()
43
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
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
64 """Récupère la liste totale de tous les agents
65 """
66 return self.dict_agent.keys()
67
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
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
82 l = xmlite.load(xml_filename)
83
84 attrs = l[1][1]
85 return attrs['description']
86
88 """Nom du script de l'agent
89 """
90 return AGENT_DIR + os.sep + self.dict_agent[agent_name][0]
91
93 """Nom xml de l'agent
94 """
95 return XML_DIR + os.sep + agent_name + ".xml"
96
98 """Nom long de la page html pour une sortie d'un agent
99 """
100 return HTML_DIR + os.sep + name + ".htm"
101
103 """Nom long de la page html d'un groupe
104 """
105 return SITE_DIR + os.sep + group_name + ".htm"
106
108 """Nom court de la page html d'un groupe (pour les urls)
109 """
110 return URL_DIR + os.sep + group_name + ".htm"
111
113 """Intervalle de shedule d'un agent
114 """
115 return self.dict_agent[agent_name][1]
116
118 """Collecte les noms des groupes
119 """
120 agents = self.dict_agent
121
122 groups = []
123 for agent in agents.keys():
124 groups.append(agents[agent][2])
125
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
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
142
143 if __name__ == "__main__" :
144 cfg = Config()
145
146 print cfg.get_agent_desc("mem")
147
148