Project

General

Profile

Revision 3e6ee4db

ID3e6ee4dbc956bacb78bb72c7d76cfcf72b4cd467
Parent b2fadcd2
Child 94ac6f87

Added by Francois POIROTTE over 14 years ago

Correction de quelques coquilles.
Corrections des tests unitaires de VigiBoard.

git-svn-id: https://vigilo-dev.si.c-s.fr/svn@1235 b22e2e97-25c9-44ff-b637-2e5ceca36478

View differences:

development.ini
22 22
[app:main]
23 23
use = egg:vigiboard
24 24

  
25
; Nombre d'évènements par page.
25
; Nombre d'événements par page.
26 26
vigiboard_items_per_page = 15
27 27

  
28 28
; URL vers laquelle le logo de Vigilo redirige.
29 29
vigiboard_links.logo = /
30 30

  
31
; Ordre de tri pour la priorité des évènements.
31
; Ordre de tri pour la priorité des événements.
32 32
; - Utiliser "asc" si la priorité est inversement proportionnelle à sa
33 33
;   valeur (ie: plus le nombre est bas, plus la priorité est élevée).
34 34
; - Utiliser "desc" si la priorité est proportionnelle à sa valeur
......
123 123
handlers = console
124 124

  
125 125
[logger_vigiboard]
126
level = DEBUG
126
level = INFO
127 127
handlers = vigiboard_log
128 128
qualname = vigiboard
129 129

  
......
149 149
[handler_sql_log]
150 150
class = FileHandler
151 151
args = ('log/sql.log','a')
152
level = DEBUG
152
level = INFO
153 153
formatter = generic
154 154

  
155 155
[handler_root_log]
156 156
class = FileHandler
157 157
args = ('log/root.log','a')
158
level = DEBUG
158
level = INFO
159 159
formatter = generic
160 160

  
161 161
[handler_vigiboard_log]
162 162
class = FileHandler
163 163
args = ('log/vigiboard.log','a')
164
level = DEBUG
164
level = INFO
165 165
formatter = generic
166 166

  
167 167
[handler_auth_log]
168 168
class = FileHandler
169 169
args = ('log/auth.log','a')
170
level = DEBUG
170
level = INFO
171 171
formatter = generic
172 172

  
173 173
# If you create additional formatters, add them as a key to [formatters]
production.ini
25 25
# Requis par Vigiboard
26 26
appname = vigiboard
27 27

  
28
; Ordre de tri pour la priorité des évènements.
28
; Ordre de tri pour la priorité des événements.
29 29
; - Utiliser "asc" si la priorité est inversement proportionnelle à sa
30 30
;   valeur (ie: plus le nombre est bas, plus la priorité est élevée).
31 31
; - Utiliser "desc" si la priorité est proportionnelle à sa valeur
vigiboard/controllers/root.py
4 4

  
5 5
from tg import expose, validate, require, flash, \
6 6
    tmpl_context, request, config, session, redirect, url
7
from tw.forms import validators 
7
from tw.forms import validators
8 8
from pylons.i18n import ugettext as _
9 9
from pylons.controllers.util import abort
10 10
from sqlalchemy import not_, and_, asc
vigiboard/controllers/vigiboardrequest.py
43 43
        ]
44 44

  
45 45
        self.join = [
46
                (Event, EventsAggregate.idcause == Event.idevent),
47
                (Host, Event.hostname == Host.name),
48
                (ServiceLowLevel, Event.servicename == ServiceLowLevel.name),
49
                (HostGroup, Host.name == HostGroup.hostname),
50
                (ServiceGroup, ServiceLowLevel.name == ServiceGroup.servicename),
51
                (StateName, StateName.idstatename == Event.current_state),
52
            ]
46
            (Event, EventsAggregate.idcause == Event.idevent),
47
            (Host, Event.hostname == Host.name),
48
            (ServiceLowLevel, Event.servicename == ServiceLowLevel.name),
49
            (HostGroup, Host.name == HostGroup.hostname),
50
            (ServiceGroup, ServiceLowLevel.name == ServiceGroup.servicename),
51
            (StateName, StateName.idstatename == Event.current_state),
52
        ]
53 53

  
54
        self.outerjoin = []
54
        self.outerjoin = [
55
        ]
55 56

  
56 57
        self.filter = [
57 58
                HostGroup.idgroup.in_(self.user_groups),
vigiboard/tests/functional/test_userutils.py
12 12

  
13 13
class TestUserUtils(TestController):
14 14
    """Test retrieval of groups of hosts/services."""
15

  
16 15
    def test_groups_inheritance(self):
17 16
        """
18 17
        S'assure que les groupes sont correctement hérités.
......
46 45
        grp = User.by_user_name(username).groups
47 46

  
48 47
        # Permet de rafraîchir les instances.
49
        DBSession.add(hostmanagers)
50
        DBSession.add(hosteditors)
48
        hostmanagers = DBSession.query(Group).filter(
49
                            Group.name==u'hostmanagers').one()
50
        hosteditors = DBSession.query(Group).filter(
51
                            Group.name==u'hosteditors').one()
51 52

  
52 53
        # On vérifie que la liste est correcte : le manager doit avoir accès
53 54
        # aux groupes 'hostmanagers' & 'hosteditors' (dont il hérite).
vigiboard/tests/functional/test_vigiboardrequest.py
11 11

  
12 12
from vigiboard.model import DBSession, \
13 13
    Event, EventHistory, EventsAggregate, \
14
    Permission, User, \
14
    Permission, User, StateName, \
15 15
    Group, Host, HostGroup, ServiceLowLevel, ServiceGroup
16 16
from vigiboard.tests import TestController
17 17
from vigiboard.controllers.vigiboardrequest import VigiboardRequest
......
22 22
    """Test de la classe Vigiboard Request"""
23 23

  
24 24
    def setUp(self):
25
        TestController.setUp(self)
25
        super(TestVigiboardRequest, self).setUp()
26

  
27
        # Les noms d'états.
28
        DBSession.add(StateName(statename=u'OK', order=0))
29
        DBSession.add(StateName(statename=u'WARNING', order=2))
30
        DBSession.flush()
31
        transaction.commit()
26 32

  
27 33
        # On peuple la base de données.
28 34

  
29 35
        # Les groupes et leurs dépendances
30
        hosteditors = Group(name=u'hosteditors')
31
        DBSession.add(hosteditors)
36
        self.editorsgroup = Group(name=u'editorsgroup')
37
        DBSession.add(self.editorsgroup)
32 38
        DBSession.flush()
33 39

  
34
        hostmanagers = Group(name=u'hostmanagers', parent=hosteditors)
35
        DBSession.add(hostmanagers)
40
        self.managersgroup = Group(name=u'managersgroup', parent=self.editorsgroup)
41
        DBSession.add(self.managersgroup)
36 42
        DBSession.flush()
37 43

  
38 44
        manage_perm = Permission.by_permission_name(u'manage')
39 45
        edit_perm = Permission.by_permission_name(u'edit')
40 46

  
41
        hostmanagers.permissions.append(manage_perm)
42
        hosteditors.permissions.append(edit_perm)
47
        self.managersgroup.permissions.append(manage_perm)
48
        self.editorsgroup.permissions.append(edit_perm)
43 49
        DBSession.flush()
44 50

  
45
        # Les dépendances des évènements
51
        # Les dépendances des événements
46 52
        host_template = {
47 53
            'checkhostcmd': u'halt',
48 54
            'snmpcommunity': u'public',
......
53 59
        }
54 60

  
55 61
        service_template = {
56
            'servicetype': u'foo',
57 62
            'command': u'halt',
58 63
            'op_dep': u'+',
59 64
        }
60 65

  
61
        DBSession.add(Host(name=u'monhost', **host_template))
62
        DBSession.add(ServiceLowLevel(name=u'monservice', **service_template))
63
        DBSession.add(Host(name=u'monhostuser', **host_template))
64
        DBSession.add(ServiceLowLevel(name=u'monserviceuser', **service_template))
66
        DBSession.add(Host(name=u'managerhost', **host_template))
67
        DBSession.add(ServiceLowLevel(name=u'managerservice', **service_template))
68
        DBSession.add(Host(name=u'editorhost', **host_template))
69
        DBSession.add(ServiceLowLevel(name=u'editorservice', **service_template))
65 70
        DBSession.flush()
66 71

  
67 72
        # Table de jointure entre les hôtes/services et les groupes
68
        DBSession.add(HostGroup(hostname = u"monhost",
69
            idgroup=hostmanagers.idgroup))
70
        DBSession.add(HostGroup(hostname = u"monhostuser",
71
            idgroup=hosteditors.idgroup))
72
        DBSession.add(ServiceGroup(servicename = u"monservice",
73
            idgroup=hostmanagers.idgroup))
74
        DBSession.add(ServiceGroup(servicename = u"monserviceuser",
75
            idgroup=hosteditors.idgroup))
73
        DBSession.add(HostGroup(hostname = u"managerhost",
74
            idgroup=self.managersgroup.idgroup))
75
        DBSession.add(HostGroup(hostname = u"editorhost",
76
            idgroup=self.editorsgroup.idgroup))
77
        DBSession.add(ServiceGroup(servicename = u"managerservice",
78
            idgroup=self.managersgroup.idgroup))
79
        DBSession.add(ServiceGroup(servicename = u"editorservice",
80
            idgroup=self.editorsgroup.idgroup))
76 81
        DBSession.flush()
77 82

  
78
        # Les évènements eux-mêmes
83
        # Les événements eux-mêmes
79 84
        event_template = {
80 85
            'message': u'foo',
81
            'current_state': u'WARNING',
86
            'current_state': StateName.statename_to_value(u'WARNING'),
82 87
        }
83 88

  
84
        event1 = Event(idevent=41, hostname=u'monhost',
85
            servicename=u'monservice', **event_template)
86
        event2 = Event(idevent=42, hostname=u'monhostuser',
87
            servicename=u'monservice', **event_template)
88
        event3 = Event(idevent=43, hostname=u'monhost',
89
            servicename=u'monserviceuser', **event_template)
90
        event4 = Event(idevent=44, hostname=u'monhostuser',
91
            servicename=u'monserviceuser', **event_template)
89
        event1 = Event(hostname=u'managerhost',
90
            servicename=u'managerservice', **event_template)
91
        event2 = Event(hostname=u'editorhost',
92
            servicename=u'managerservice', **event_template)
93
        event3 = Event(hostname=u'managerhost',
94
            servicename=u'editorservice', **event_template)
95
        event4 = Event(hostname=u'editorhost',
96
            servicename=u'editorservice', **event_template)
92 97

  
93 98
        DBSession.add(event1)
94 99
        DBSession.add(event2)
......
116 121
            idevent=event4.idevent, timestamp=datetime.now()))
117 122
        DBSession.flush()
118 123

  
119
        # Les évènements corrélés
124
        # Les événements corrélés
120 125
        aggregate_template = {
121 126
            'timestamp_active': datetime.now(),
122 127
            'priority': 1,
......
134 139
        DBSession.add(self.aggregate1)
135 140
        DBSession.add(self.aggregate2)
136 141
        DBSession.flush()
142

  
143
        for e in DBSession.query(Event).all():
144
            print "Event", e.idevent, e.hostname, e.servicename, e.current_state
145
        for ea in DBSession.query(EventsAggregate).all():
146
            print "EAggr", ea.idcause, ea.status
147
        for g in DBSession.query(Group).all():
148
            print "Group", g.idgroup, g.name, repr(g.idparent)
149
        for hg in DBSession.query(HostGroup).all():
150
            print "HGrup", hg.idgroup, hg.hostname
151
        for sg in DBSession.query(ServiceGroup).all():
152
            print "SGrup", sg.idgroup, sg.servicename
137 153
        transaction.commit()
138 154

  
139 155
    def tearDown(self):
......
158 174
        vigi_req = VigiboardRequest(User.by_user_name(u'editor'))
159 175

  
160 176
        # On effectue les tests suivants :
161
        #   le nombre de lignes (historique et évènements) doivent
177
        #   le nombre de lignes (historique et événements) doivent
162 178
        #       correspondre (vérification des droits imposés par les groupes)
163 179
        #   le plugin fonctionne correctement
164 180

  

Also available in: Unified diff