Revision a8f27bb3
Ajout d'un fichier settings.py à Vigiboard pour faciliter le développement.
Quelques corrections pour pylint.
Adaptation du code pour la future mise à jour du modèle.
git-svn-id: https://vigilo-dev.si.c-s.fr/svn@1048 b22e2e97-25c9-44ff-b637-2e5ceca36478
settings.py | ||
---|---|---|
1 |
../glue/settings.py |
vigiboard/controllers/root.py | ||
---|---|---|
7 | 7 |
from tw.forms import validators |
8 | 8 |
from pylons.i18n import ugettext as _ |
9 | 9 |
from pylons.controllers.util import abort |
10 |
from sqlalchemy import asc |
|
10 |
from sqlalchemy import not_, and_, asc
|
|
11 | 11 |
from datetime import datetime |
12 | 12 |
import math |
13 | 13 |
|
14 | 14 |
from vigiboard.model import DBSession |
15 | 15 |
from vigiboard.model import Event, EventHistory, EventsAggregate, \ |
16 | 16 |
Host, HostGroup, \ |
17 |
User |
|
17 |
State, User
|
|
18 | 18 |
from repoze.what.predicates import Any, not_anonymous |
19 | 19 |
from vigiboard.widgets.edit_event import edit_event_status_options |
20 | 20 |
from vigiboard.controllers.vigiboardrequest import VigiboardRequest |
... | ... | |
181 | 181 |
} |
182 | 182 |
|
183 | 183 |
return dict( |
184 |
current_state = event[1].state, |
|
184 |
current_state = event[1].current_state,
|
|
185 | 185 |
initial_state = event[1].initial_state, |
186 | 186 |
peak_state = event[1].peak_state, |
187 | 187 |
idaggregate = idaggregate, |
... | ... | |
255 | 255 |
events = VigiboardRequest(User.by_user_name(username)) |
256 | 256 |
events.add_filter(Event.hostname == host, |
257 | 257 |
Event.servicename == service) |
258 |
del events.filter[2] |
|
258 |
# XXX On devrait avoir une autre API que ça !!! |
|
259 |
# Supprime le filtre qui empêche d'obtenir des évènements fermés |
|
260 |
# (ie: ayant l'état Nagios 'OK' et le statut 'AAClosed'). |
|
261 |
if len(events.filter) > 2: |
|
262 |
del events.filter[2] |
|
259 | 263 |
|
260 | 264 |
# Vérification qu'il y a au moins 1 évènement qui correspond |
261 | 265 |
if events.num_rows() == 0 : |
... | ... | |
326 | 330 |
redirect('/') |
327 | 331 |
|
328 | 332 |
# Modification des évènements et création d'un historique |
329 |
# pour chacun d'eux |
|
330 |
|
|
333 |
# pour chacun d'eux. |
|
331 | 334 |
username = request.environ['repoze.who.identity']['repoze.who.userid'] |
332 | 335 |
|
333 | 336 |
for req in events.req: |
vigiboard/controllers/vigiboardrequest.py | ||
---|---|---|
3 | 3 |
"""Gestion de la requête, des plugins et de l'affichage du Vigiboard""" |
4 | 4 |
|
5 | 5 |
from vigiboard.model import Event, EventsAggregate, EventHistory, State, \ |
6 |
Host, HostGroup, Service, ServiceGroup |
|
6 |
Host, HostGroup, ServiceLowLevel, ServiceGroup
|
|
7 | 7 |
from tg import tmpl_context, url, config |
8 | 8 |
from vigiboard.model import DBSession |
9 | 9 |
from sqlalchemy import not_, and_, asc, desc, sql |
... | ... | |
44 | 44 |
self.join = [ |
45 | 45 |
(Event, EventsAggregate.idcause == Event.idevent), |
46 | 46 |
(Host, Event.hostname == Host.name), |
47 |
(Service, Event.servicename == Service.name),
|
|
47 |
(ServiceLowLevel, Event.servicename == ServiceLowLevel.name),
|
|
48 | 48 |
(HostGroup, Host.name == HostGroup.hostname), |
49 |
(ServiceGroup, Service.name == ServiceGroup.servicename), |
|
49 |
(ServiceGroup, ServiceLowLevel.name == ServiceGroup.servicename),
|
|
50 | 50 |
] |
51 | 51 |
|
52 | 52 |
self.outerjoin = [] |
... | ... | |
343 | 343 |
{'class': class_tr[i % 2]}, |
344 | 344 |
{'class': event.cause.initial_state + \ |
345 | 345 |
self.class_ack[event.status]}, |
346 |
{'class': event.cause.state + self.class_ack[event.status]}, |
|
347 |
{'src': '/images/%s2.png' % event.cause.state}, |
|
346 |
{'class': event.cause.current_state + \ |
|
347 |
self.class_ack[event.status]}, |
|
348 |
{'src': '/images/%s2.png' % event.cause.current_state}, |
|
348 | 349 |
self.format_events_img_status(event), |
349 | 350 |
[[j.__show__(event), j.style] for j in self.plugin] |
350 | 351 |
]) |
... | ... | |
415 | 416 |
tmpl_context.edit_event_form = EditEventForm('edit_event_form', |
416 | 417 |
action=url('/update')) |
417 | 418 |
tmpl_context.edit_eventdialog = JQueryUIDialog(id='Edit_EventsDialog', |
418 |
autoOpen=False,title=_('Edit Event')) |
|
419 |
autoOpen=False, title=_('Edit Event'))
|
|
419 | 420 |
|
420 | 421 |
# Dialogue de recherche |
421 | 422 |
tmpl_context.search_form = SearchForm('search_form', |
vigiboard/model/__init__.py | ||
---|---|---|
12 | 12 |
from vigilo.models import Graph, GraphGroup, GraphToGroups |
13 | 13 |
from vigilo.models import Version, State, Group |
14 | 14 |
from vigilo.models import Host, HostGroup |
15 |
from vigilo.models import Service, ServiceGroup, HighLevelService
|
|
15 |
from vigilo.models import ServiceLowLevel, ServiceHighLevel, ServiceGroup
|
|
16 | 16 |
from vigilo.models import Access |
17 | 17 |
|
vigiboard/tests/functional/test_vigiboardrequest.py | ||
---|---|---|
12 | 12 |
from vigiboard.model import DBSession, \ |
13 | 13 |
Event, EventHistory, EventsAggregate, \ |
14 | 14 |
Permission, User, \ |
15 |
Group, Host, HostGroup, Service, ServiceGroup |
|
15 |
Group, Host, HostGroup, ServiceLowLevel, ServiceGroup
|
|
16 | 16 |
from vigiboard.tests import TestController |
17 | 17 |
from vigiboard.controllers.vigiboardrequest import VigiboardRequest |
18 | 18 |
from vigiboard.controllers.vigiboard_plugin.tests import MonPlugin |
... | ... | |
55 | 55 |
service_template = { |
56 | 56 |
'servicetype': u'foo', |
57 | 57 |
'command': u'halt', |
58 |
'op_dep': u'+', |
|
58 | 59 |
} |
59 | 60 |
|
60 | 61 |
DBSession.add(Host(name=u'monhost', **host_template)) |
61 |
DBSession.add(Service(name=u'monservice', **service_template)) |
|
62 |
DBSession.add(ServiceLowLevel(name=u'monservice', **service_template))
|
|
62 | 63 |
DBSession.add(Host(name=u'monhostuser', **host_template)) |
63 |
DBSession.add(Service(name=u'monserviceuser', **service_template)) |
|
64 |
DBSession.add(ServiceLowLevel(name=u'monserviceuser', **service_template))
|
|
64 | 65 |
DBSession.flush() |
65 | 66 |
|
66 | 67 |
# Table de jointure entre les hôtes/services et les groupes |
... | ... | |
77 | 78 |
# Les évènements eux-mêmes |
78 | 79 |
event_template = { |
79 | 80 |
'message': u'foo', |
80 |
'state': u'WARNING', |
|
81 |
'current_state': u'WARNING',
|
|
81 | 82 |
} |
82 | 83 |
|
83 |
event1 = Event(idevent=u'event1', hostname=u'monhost',
|
|
84 |
event1 = Event(idevent=41, hostname=u'monhost',
|
|
84 | 85 |
servicename=u'monservice', **event_template) |
85 |
event2 = Event(idevent=u'event2', hostname=u'monhostuser',
|
|
86 |
event2 = Event(idevent=42, hostname=u'monhostuser',
|
|
86 | 87 |
servicename=u'monservice', **event_template) |
87 |
event3 = Event(idevent=u'event3', hostname=u'monhost',
|
|
88 |
event3 = Event(idevent=43, hostname=u'monhost',
|
|
88 | 89 |
servicename=u'monserviceuser', **event_template) |
89 |
event4 = Event(idevent=u'event4', hostname=u'monhostuser',
|
|
90 |
event4 = Event(idevent=44, hostname=u'monhostuser',
|
|
90 | 91 |
servicename=u'monserviceuser', **event_template) |
91 | 92 |
|
92 | 93 |
DBSession.add(event1) |
... | ... | |
122 | 123 |
'status': u'None', |
123 | 124 |
} |
124 | 125 |
self.aggregate1 = EventsAggregate( |
125 |
idaggregate=u'foo',
|
|
126 |
idaggregate=42,
|
|
126 | 127 |
idcause=event1.idevent, **aggregate_template) |
127 | 128 |
self.aggregate2 = EventsAggregate( |
128 |
idaggregate=u'bar',
|
|
129 |
idaggregate=43,
|
|
129 | 130 |
idcause=event4.idevent, **aggregate_template) |
130 | 131 |
|
131 | 132 |
self.aggregate1.events.append(event1) |
vigiboard/widgets/edit_event.py | ||
---|---|---|
33 | 33 |
""" |
34 | 34 |
Formulaire de recherche dans les évènements |
35 | 35 |
|
36 |
Affiche un champ texte pour l'hôte, le service, la sortie et le trouble ticket |
|
36 |
Affiche un champ texte pour l'hôte, le service, la sortie |
|
37 |
et le ticket d'incidence. |
|
37 | 38 |
""" |
38 | 39 |
|
39 | 40 |
fields = [ |
Also available in: Unified diff