Project

General

Profile

Revision a8f27bb3

IDa8f27bb33162cdebc81e7c12bbbc513dd8b5bea4
Parent ba298be6
Child 23bfcb80

Added by Francois POIROTTE over 14 years ago

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

View differences:

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