1
2
3
4
5
6
7
8 import sys
9 import os
10 import os.path
11 from os.path import getmtime, exists
12 import time
13 import types
14 import __builtin__
15 from Cheetah.Version import MinCompatibleVersion as RequiredCheetahVersion
16 from Cheetah.Version import MinCompatibleVersionTuple as RequiredCheetahVersionTuple
17 from Cheetah.Template import Template
18 from Cheetah.DummyTransaction import DummyTransaction
19 from Cheetah.NameMapper import NotFound, valueForName, valueFromSearchList, valueFromFrameOrSearchList
20 from Cheetah.CacheRegion import CacheRegion
21 import Cheetah.Filters as Filters
22 import Cheetah.ErrorCatchers as ErrorCatchers
23 from zephir.monitor.agentmanager.templates.PageTmpl import PageTmpl
24 from zephir.monitor.agentmanager import status
25
26
27
28 try:
29 True, False
30 except NameError:
31 True, False = (1==1), (1==0)
32 VFFSL=valueFromFrameOrSearchList
33 VFSL=valueFromSearchList
34 VFN=valueForName
35 currentTime=time.time
36 __CHEETAH_version__ = '2.0rc7'
37 __CHEETAH_versionTuple__ = (2, 0, 0, 'candidate', 7)
38 __CHEETAH_genTime__ = 1190887606.726723
39 __CHEETAH_genTimestamp__ = 'Thu Sep 27 12:06:46 2007'
40 __CHEETAH_src__ = 'AgentPageTmpl.tmpl'
41 __CHEETAH_srcLastModified__ = 'Tue Jan 23 10:43:33 2007'
42 __CHEETAH_docstring__ = 'Autogenerated by CHEETAH: The Python-Powered Template Engine'
43
44 if __CHEETAH_versionTuple__ < RequiredCheetahVersionTuple:
45 raise AssertionError(
46 'This template was compiled with Cheetah version'
47 ' %s. Templates compiled before version %s must be recompiled.'%(
48 __CHEETAH_version__, RequiredCheetahVersion))
49
50
51
52
53 -class AgentPageTmpl(PageTmpl):
54
55
56
57
58
59 - def __init__(self, *args, **KWs):
60
61 PageTmpl.__init__(self, *args, **KWs)
62 if not self._CHEETAH__instanceInitialized:
63 cheetahKWArgs = {}
64 allowedKWs = 'searchList namespaces filter filtersLib errorCatcher'.split()
65 for k,v in KWs.items():
66 if k in allowedKWs: cheetahKWArgs[k] = v
67 self._initCheetahInstance(**cheetahKWArgs)
68
69
70 - def respond(self, trans=None):
71
72
73
74
75 if (not trans and not self._CHEETAH__isBuffering and not callable(self.transaction)):
76 trans = self.transaction
77 if not trans:
78 trans = DummyTransaction()
79 _dummyTrans = True
80 else: _dummyTrans = False
81 write = trans.response().write
82 SL = self._CHEETAH__searchList
83 _filter = self._CHEETAH__currentFilter
84
85
86
87
88 write('<!-- AgentPageTmpl #encoding utf-8 -->\n\n')
89 _v = VFFSL(SL,"head",False)(VFFSL(SL,"agent.name",True) + " – " + VFFSL(SL,"host",True))
90 if _v is not None: write(_filter(_v, rawExpr='$head($agent.name + " – " + $host)'))
91 write('''
92
93 <SCRIPT LANGUAGE="JavaScript">
94 <!--
95 function clear() {
96 location.reload(false)
97 }
98 setTimeout ("clear()", 60000);
99 // -->
100 </SCRIPT>
101
102 ''')
103 if VFFSL(SL,"agent.description",True) is not None and VFFSL(SL,"len",False)(VFFSL(SL,"agent.description",True)) != 0:
104 write('<h1 id="title">')
105 _v = VFFSL(SL,"agent.description",True)
106 if _v is not None: write(_filter(_v, rawExpr='$agent.description'))
107 write('</h1>\n')
108 else:
109 write('<h1 id="title">')
110 _v = VFFSL(SL,"agent.name",True)
111 if _v is not None: write(_filter(_v, rawExpr='$agent.name'))
112 write('</h1>\n')
113 write('''
114 <div id="nav">
115 <!-- FIXME need to get that from AgentResource
116 ''')
117 siblings = []
118 section = ""
119 if VFFSL(SL,"len",False)(VFFSL(SL,"siblings",True)) != 0:
120 write(' Section ')
121 _v = VFFSL(SL,"section",True)
122 if _v is not None: write(_filter(_v, rawExpr='$section'))
123 write(' :\n')
124 write(' -->\n <ol>\n')
125 if VFFSL(SL,"show_clients",True) == True:
126 write(' <li><a href="/agents/">Clients</a></li>\n')
127 write(' <li><a href="/agents/')
128 _v = VFFSL(SL,"host",True)
129 if _v is not None: write(_filter(_v, rawExpr='$host'))
130 write('/">Retour</a></li>\n')
131 for a in VFFSL(SL,"siblings",True):
132 write(' <li><a href="./')
133 _v = VFFSL(SL,"a",True)
134 if _v is not None: write(_filter(_v, rawExpr='$a'))
135 write('/">')
136 _v = VFFSL(SL,"a",True)
137 if _v is not None: write(_filter(_v, rawExpr='$a'))
138 write('</a></li>\n')
139 write(''' </ol>
140 </div> <!-- nav -->
141
142 <div id="side">
143 <div class="right_status">
144 ''')
145 if VFFSL(SL,"agent.name",True) == "bilan":
146 write(' <img src="./status_long.png"/>\n')
147 else:
148 write(' <img src="./status.png"/>\n')
149 write(' </div>\n <div class="left_status">\n')
150 s = VFFSL(SL,"agent.last_status",True)
151 max = VFFSL(SL,"agent.max_status",True)
152 write('\t \xc3\x89tat : <span class="status-')
153 _v = VFFSL(SL,"s.level",True)
154 if _v is not None: write(_filter(_v, rawExpr='$s.level'))
155 write('">')
156 _v = VFFSL(SL,"str",False)(VFFSL(SL,"s",True))
157 if _v is not None: write(_filter(_v, rawExpr='$str($s)'))
158 write('</span><br/>\n\t Date de la mesure : ')
159 _v = VFFSL(SL,"agent.last_measure_date",True)
160 if _v is not None: write(_filter(_v, rawExpr='$agent.last_measure_date'))
161 write('<br/>\n')
162 if VFFSL(SL,"max",True) != VFN(VFFSL(SL,"status",True),"Unknown",False)():
163 write(' Dernier probl\xc3\xa8me (<span class="status-')
164 _v = VFFSL(SL,"max.level",True)
165 if _v is not None: write(_filter(_v, rawExpr='$max.level'))
166 write('">')
167 _v = VFFSL(SL,"str",False)(VFFSL(SL,"max",True))
168 if _v is not None: write(_filter(_v, rawExpr='$str($max)'))
169 write('</span>) : ')
170 _v = VFFSL(SL,"agent.max_status_date",True)
171 if _v is not None: write(_filter(_v, rawExpr='$agent.max_status_date'))
172 write('<br/>\n')
173 else:
174 write(' Aucun probl\xc3\xa8me d\xc3\xa9tect\xc3\xa9<br/>\n')
175 write('\t Intervalle de mesure : ')
176 _v = VFFSL(SL,"str",False)(VFFSL(SL,"agent.period",True))
177 if _v is not None: write(_filter(_v, rawExpr='$str($agent.period)'))
178 write(''' s
179 </div>
180
181 ''')
182 if VFFSL(SL,"agent.description",True) is not None and VFFSL(SL,"len",False)(VFFSL(SL,"agent.description",True)) != 0:
183 write(' <!--<p>')
184 _v = VFFSL(SL,"agent.description",True)
185 if _v is not None: write(_filter(_v, rawExpr='$agent.description'))
186 write('</p>-->\n')
187 write('''</div> <!-- side -->
188
189 <div id="content">
190 ''')
191 for d in VFFSL(SL,"agent.data",True):
192 t = VFFSL(SL,"template_mapping",True)[VFFSL(SL,"d.__class__",True)]()
193 t.data = VFFSL(SL,"d",True)
194 write(' ')
195 _v = VFFSL(SL,"str",False)(VFFSL(SL,"t",True))
196 if _v is not None: write(_filter(_v, rawExpr='$str($t)'))
197 write('\n')
198 write('</div> <!-- content -->\n\n')
199 _v = VFFSL(SL,"foot",False)()
200 if _v is not None: write(_filter(_v, rawExpr='$foot()'))
201 write('\n')
202
203
204
205
206 return _dummyTrans and trans.response().getvalue() or ""
207
208
209
210
211
212 _CHEETAH__instanceInitialized = False
213
214 _CHEETAH_version = __CHEETAH_version__
215
216 _CHEETAH_versionTuple = __CHEETAH_versionTuple__
217
218 _CHEETAH_genTime = __CHEETAH_genTime__
219
220 _CHEETAH_genTimestamp = __CHEETAH_genTimestamp__
221
222 _CHEETAH_src = __CHEETAH_src__
223
224 _CHEETAH_srcLastModified = __CHEETAH_srcLastModified__
225
226 _mainCheetahMethod_for_AgentPageTmpl= 'respond'
227
228
229
230 if not hasattr(AgentPageTmpl, '_initCheetahAttributes'):
231 templateAPIClass = getattr(AgentPageTmpl, '_CHEETAH_templateClass', Template)
232 templateAPIClass._addCheetahPlumbingCodeToClass(AgentPageTmpl)
233
234
235
236
237
238
239
240
241 if __name__ == '__main__':
242 from Cheetah.TemplateCmdLineIface import CmdLineIface
243 CmdLineIface(templateObj=AgentPageTmpl()).run()
244