Revision 3d0d254c
Utilisation de idaggregate de préférence par rapport à idevent (permet d'obtenir plus d'informations).
On suppose que la base de données génère les id des events (le corrélateur et le connector-db sont en train d'être modifiés pour suivre ce changement).
Utilisation de HighLevelService plutôt que ServiceHautNiveau.
git-svn-id: https://vigilo-dev.si.c-s.fr/svn@794 b22e2e97-25c9-44ff-b637-2e5ceca36478
vigiboard/controllers/vigiboardrequest.py | ||
---|---|---|
6 | 6 |
Host, HostGroup, Service, ServiceGroup |
7 | 7 |
from tg import tmpl_context, url, config |
8 | 8 |
from vigiboard.model import DBSession |
9 |
from sqlalchemy import not_ , and_ , asc , desc
|
|
9 |
from sqlalchemy import not_, and_, asc, desc, sql
|
|
10 | 10 |
from tw.jquery.ui_dialog import JQueryUIDialog |
11 | 11 |
from vigiboard.widgets.edit_event import EditEventForm , SearchForm |
12 | 12 |
from vigiboard.controllers.vigiboard_plugin import VigiboardRequestPlugin |
... | ... | |
59 | 59 |
|
60 | 60 |
self.generaterq = False |
61 | 61 |
|
62 |
self.table = [EventsAggregate] |
|
62 |
self.table = [ |
|
63 |
EventsAggregate, |
|
64 |
sql.func.count(EventsAggregate.idaggregate) |
|
65 |
] |
|
63 | 66 |
|
64 | 67 |
self.join = [ |
65 | 68 |
(Event, EventsAggregate.idcause == Event.idevent), |
... | ... | |
75 | 78 |
HostGroup.groupname.in_(self.user_groups), |
76 | 79 |
ServiceGroup.groupname.in_(self.user_groups), |
77 | 80 |
not_(and_(Event.active == False, |
78 |
EventsAggregate.status == 'AAClosed')), |
|
81 |
EventsAggregate.status == u'AAClosed')),
|
|
79 | 82 |
EventsAggregate.timestamp_active != None#, |
80 | 83 |
#not_(Event.timestamp_active.like('0000-00-00 00:00:00')) |
81 | 84 |
] |
... | ... | |
134 | 137 |
try: |
135 | 138 |
mypac = __import__( |
136 | 139 |
'vigiboard.controllers.vigiboard_plugin.' +\ |
137 |
plug[0],globals(), locals(), [plug[1]],-1)
|
|
140 |
plug[0], globals(), locals(), [plug[1]], -1)
|
|
138 | 141 |
self.add_plugin(getattr(mypac, plug[1])()) |
139 | 142 |
except: |
140 | 143 |
raise |
... | ... | |
162 | 165 |
@return: Nombre de ligne |
163 | 166 |
""" |
164 | 167 |
|
165 |
if not self.generaterq :
|
|
168 |
if not self.generaterq: |
|
166 | 169 |
self.generate_request() |
167 | 170 |
self.generaterq = True |
168 | 171 |
return self.req.count() |
... | ... | |
329 | 332 |
for req in self.req[first_row : last_row]: |
330 | 333 |
# Si il y a plus d'un élément dans la liste des tables, |
331 | 334 |
# rq devient une liste plutôt que d'être directement la |
332 |
# table souhaité |
|
333 |
|
|
334 |
if isinstance(req, EventsAggregate) :
|
|
335 |
# table souhaitée
|
|
336 |
|
|
337 |
if isinstance(req, EventsAggregate): |
|
335 | 338 |
event = req |
336 | 339 |
else: |
337 | 340 |
event = req[0] |
... | ... | |
358 | 361 |
{'src' : '/images/%s2.png' % \ |
359 | 362 |
self.bouton_severity[event.severity].upper()}, |
360 | 363 |
self.format_events_img_status(event), |
361 |
[[j.__show__(req), j.style] for j in self.plugin]
|
|
364 |
[[j.__show__(event), j.style] for j in self.plugin]
|
|
362 | 365 |
]) |
363 | 366 |
|
364 | 367 |
else: |
... | ... | |
371 | 374 |
{'src' : '/images/%s2.png' % \ |
372 | 375 |
self.bouton_severity[event.severity].upper()}, |
373 | 376 |
self.format_events_img_status(event), |
374 |
[[j.__show__(req), j.style] for j in self.plugin]
|
|
377 |
[[j.__show__(event), j.style] for j in self.plugin]
|
|
375 | 378 |
]) |
376 | 379 |
i += 1 |
377 | 380 |
|
Also available in: Unified diff