Revision 780ca169
Prise en compte du renommage de EventsAggregate en CorrEvent dans le modèle.
git-svn-id: https://vigilo-dev.si.c-s.fr/svn@1348 b22e2e97-25c9-44ff-b637-2e5ceca36478
vigiboard/controllers/root.py | ||
---|---|---|
13 | 13 |
import math |
14 | 14 |
|
15 | 15 |
from vigiboard.model import DBSession |
16 |
from vigiboard.model import Event, EventHistory, EventsAggregate, \
|
|
16 |
from vigiboard.model import Event, EventHistory, CorrEvent, \
|
|
17 | 17 |
Host, HostGroup, \ |
18 | 18 |
StateName, User |
19 | 19 |
from repoze.what.predicates import Any, not_anonymous |
... | ... | |
113 | 113 |
search['tt'] = trouble_ticket |
114 | 114 |
trouble_ticket = trouble_ticket.replace('%', '\\%') \ |
115 | 115 |
.replace('_', '\\_').replace('*', '%').replace('?', '_') |
116 |
aggregates.add_filter(EventsAggregate.trouble_ticket.ilike(
|
|
116 |
aggregates.add_filter(CorrEvent.trouble_ticket.ilike(
|
|
117 | 117 |
'%%%s%%' % trouble_ticket)) |
118 | 118 |
|
119 | 119 |
# Calcul des éléments à afficher et du nombre de pages possibles |
... | ... | |
166 | 166 |
user = User.by_user_name(username) |
167 | 167 |
|
168 | 168 |
event = DBSession.query( |
169 |
EventsAggregate.priority,
|
|
169 |
CorrEvent.priority,
|
|
170 | 170 |
Event, |
171 | 171 |
).join( |
172 |
(Event, EventsAggregate.idcause == Event.idevent),
|
|
172 |
(Event, CorrEvent.idcause == Event.idevent),
|
|
173 | 173 |
(HostGroup, Event.hostname == HostGroup.hostname), |
174 | 174 |
).filter(HostGroup.idgroup.in_(user.groups) |
175 |
).filter(EventsAggregate.idaggregate == idaggregate
|
|
175 |
).filter(CorrEvent.idcorrevent == idaggregate
|
|
176 | 176 |
).one() |
177 | 177 |
|
178 | 178 |
history = DBSession.query( |
... | ... | |
218 | 218 |
|
219 | 219 |
username = request.environ['repoze.who.identity']['repoze.who.userid'] |
220 | 220 |
events = VigiboardRequest(User.by_user_name(username)) |
221 |
events.add_filter(EventsAggregate.idaggregate == idaggregate)
|
|
221 |
events.add_filter(CorrEvent.idcorrevent == idaggregate)
|
|
222 | 222 |
|
223 | 223 |
# Vérification que l'événement existe |
224 | 224 |
if events.num_rows() != 1 : |
... | ... | |
338 | 338 |
|
339 | 339 |
username = request.environ['repoze.who.identity']['repoze.who.userid'] |
340 | 340 |
events = VigiboardRequest(User.by_user_name(username)) |
341 |
events.add_filter(EventsAggregate.idaggregate.in_(ids))
|
|
341 |
events.add_filter(CorrEvent.idcorrevent.in_(ids))
|
|
342 | 342 |
|
343 | 343 |
# Vérification que au moins un des identifiants existe et est éditable |
344 | 344 |
if events.num_rows() <= 0 : |
... | ... | |
350 | 350 |
username = request.environ['repoze.who.identity']['repoze.who.userid'] |
351 | 351 |
|
352 | 352 |
for req in events.req: |
353 |
if isinstance(req, EventsAggregate):
|
|
353 |
if isinstance(req, CorrEvent):
|
|
354 | 354 |
event = req |
355 | 355 |
else: |
356 | 356 |
event = req[0] |
vigiboard/controllers/vigiboard_plugin/shn.py | ||
---|---|---|
6 | 6 |
|
7 | 7 |
from vigiboard.controllers.vigiboard_plugin import \ |
8 | 8 |
VigiboardRequestPlugin |
9 |
from vigiboard.model import DBSession, EventsAggregate#, HighLevelService
|
|
9 |
from vigiboard.model import DBSession, CorrEvent
|
|
10 | 10 |
from pylons.i18n import gettext as _ |
11 | 11 |
from tg import tmpl_context, url |
12 | 12 |
from tw.jquery.ui_dialog import JQueryUIDialog |
... | ... | |
30 | 30 |
"""Fonction d'affichage""" |
31 | 31 |
dico = { |
32 | 32 |
'baseurl': url('/'), |
33 |
'idaggregate': aggregate.idaggregate,
|
|
33 |
'idaggregate': aggregate.idcorrevent,
|
|
34 | 34 |
'impacted_hls': aggregate.high_level_services.count(), |
35 | 35 |
} |
36 | 36 |
# XXX Il faudrait échapper l'URL contenue dans baseurl |
... | ... | |
55 | 55 |
def controller(self, *argv, **krgv): |
56 | 56 |
"""Ajout de fonctionnalités au contrôleur""" |
57 | 57 |
idaggregate = krgv['idaggregate'] |
58 |
aggregate = DBSession.query(EventsAggregate) \
|
|
59 |
.filter(EventsAggregate.idaggregate == idaggregate).one()
|
|
60 |
shns = aggregate.high_level_services
|
|
58 |
correvent = DBSession.query(CorrEvent) \
|
|
59 |
.filter(CorrEvent.idcorrevent == idaggregate).one()
|
|
60 |
shns = correvent.high_level_services
|
|
61 | 61 |
|
62 | 62 |
return dict(shns=[shn.name for shn in shns]) |
63 | 63 |
|
vigiboard/controllers/vigiboardrequest.py | ||
---|---|---|
2 | 2 |
# vim:set expandtab tabstop=4 shiftwidth=4: |
3 | 3 |
"""Gestion de la requête, des plugins et de l'affichage du Vigiboard""" |
4 | 4 |
|
5 |
from vigiboard.model import Event, EventsAggregate, EventHistory, \
|
|
5 |
from vigiboard.model import Event, CorrEvent, EventHistory, \
|
|
6 | 6 |
Host, HostGroup, ServiceLowLevel, ServiceGroup, \ |
7 | 7 |
StateName |
8 | 8 |
from vigilo.models.secondary_tables import HOST_GROUP_TABLE, \ |
... | ... | |
41 | 41 |
self.generaterq = False |
42 | 42 |
|
43 | 43 |
self.table = [ |
44 |
EventsAggregate,
|
|
45 |
sql.func.count(EventsAggregate.idaggregate),
|
|
44 |
CorrEvent,
|
|
45 |
sql.func.count(CorrEvent.idcorrevent),
|
|
46 | 46 |
] |
47 | 47 |
|
48 | 48 |
self.join = [ |
49 |
(Event, EventsAggregate.idcause == Event.idevent),
|
|
49 |
(Event, CorrEvent.idcause == Event.idevent),
|
|
50 | 50 |
(ServiceLowLevel, Event._idservice == ServiceLowLevel.idservice), |
51 | 51 |
(Host, Host.name == ServiceLowLevel.hostname), |
52 | 52 |
(StateName, StateName.idstatename == Event.current_state), |
... | ... | |
66 | 66 |
# et traités (status == u'AAClosed'). |
67 | 67 |
not_(and_( |
68 | 68 |
StateName.statename == u'OK', |
69 |
EventsAggregate.status == u'AAClosed'
|
|
69 |
CorrEvent.status == u'AAClosed'
|
|
70 | 70 |
)), |
71 |
EventsAggregate.timestamp_active != None,
|
|
71 |
CorrEvent.timestamp_active != None,
|
|
72 | 72 |
] |
73 | 73 |
|
74 | 74 |
# Permet de définir le sens de tri pour la priorité. |
75 | 75 |
if config['vigiboard_priority_order'] == 'asc': |
76 |
priority_order = asc(EventsAggregate.priority)
|
|
76 |
priority_order = asc(CorrEvent.priority)
|
|
77 | 77 |
else: |
78 |
priority_order = desc(EventsAggregate.priority)
|
|
78 |
priority_order = desc(CorrEvent.priority)
|
|
79 | 79 |
|
80 | 80 |
self.orderby = [ |
81 |
desc(EventsAggregate.status), # None, Acknowledged, AAClosed
|
|
81 |
desc(CorrEvent.status), # None, Acknowledged, AAClosed
|
|
82 | 82 |
priority_order, # Priorité ITIL (entier). |
83 | 83 |
desc(StateName.order), # Etat courant (entier). |
84 | 84 |
desc(Event.timestamp), |
... | ... | |
86 | 86 |
] |
87 | 87 |
|
88 | 88 |
self.groupby = [ |
89 |
EventsAggregate.idaggregate,
|
|
90 |
EventsAggregate,
|
|
89 |
CorrEvent.idcorrevent,
|
|
90 |
CorrEvent,
|
|
91 | 91 |
ServiceLowLevel.hostname, |
92 | 92 |
StateName.order, |
93 | 93 |
Event.timestamp, |
... | ... | |
334 | 334 |
# req devient une liste plutôt que d'être directement la |
335 | 335 |
# table souhaitée |
336 | 336 |
|
337 |
if isinstance(req, EventsAggregate):
|
|
337 |
if isinstance(req, CorrEvent):
|
|
338 | 338 |
event = req |
339 | 339 |
else: |
340 | 340 |
event = req[0] |
vigiboard/model/__init__.py | ||
---|---|---|
8 | 8 |
|
9 | 9 |
|
10 | 10 |
from vigilo.models import User, UserGroup, Permission |
11 |
from vigilo.models import Event, EventHistory, EventsAggregate |
|
12 |
from vigilo.models import Graph, GraphGroup, GraphToGroups |
|
11 |
from vigilo.models import Event, EventHistory, CorrEvent |
|
13 | 12 |
from vigilo.models import Version, HostState, ServiceState, StateName |
14 | 13 |
from vigilo.models import Host, HostGroup |
15 | 14 |
from vigilo.models import ServiceLowLevel, ServiceHighLevel, ServiceGroup |
vigiboard/tests/functional/test_vigiboardrequest.py | ||
---|---|---|
10 | 10 |
import transaction |
11 | 11 |
|
12 | 12 |
from vigiboard.model import DBSession, \ |
13 |
Event, EventHistory, EventsAggregate, \
|
|
13 |
Event, EventHistory, CorrEvent, \
|
|
14 | 14 |
Permission, User, StateName, \ |
15 | 15 |
Host, HostGroup, ServiceLowLevel, ServiceGroup |
16 | 16 |
from vigiboard.tests import TestController |
... | ... | |
155 | 155 |
'priority': 1, |
156 | 156 |
'status': u'None', |
157 | 157 |
} |
158 |
self.aggregate1 = EventsAggregate(
|
|
158 |
self.aggregate1 = CorrEvent(
|
|
159 | 159 |
idcause=event1.idevent, **aggregate_template) |
160 |
self.aggregate2 = EventsAggregate(
|
|
160 |
self.aggregate2 = CorrEvent(
|
|
161 | 161 |
idcause=event4.idevent, **aggregate_template) |
162 | 162 |
|
163 | 163 |
self.aggregate1.events.append(event1) |
Also available in: Unified diff