Revision 47acbffb
Correction des tests unitaires.
Mise à jour des traductions.
Quelques corrections mineures.
git-svn-id: https://vigilo-dev.si.c-s.fr/svn@1090 b22e2e97-25c9-44ff-b637-2e5ceca36478
vigiboard/controllers/root.py | ||
---|---|---|
160 | 160 |
).join( |
161 | 161 |
(Event, EventsAggregate.idcause == Event.idevent), |
162 | 162 |
(HostGroup, Event.hostname == HostGroup.hostname), |
163 |
).filter(HostGroup.groupname.in_(user.groups)
|
|
163 |
).filter(HostGroup.idgroup.in_(user.groups)
|
|
164 | 164 |
).filter(EventsAggregate.idaggregate == idaggregate |
165 | 165 |
).one() |
166 | 166 |
|
vigiboard/controllers/vigiboard_plugin/shn.py | ||
---|---|---|
31 | 31 |
dico = { |
32 | 32 |
'baseurl': url('/'), |
33 | 33 |
'idaggregate': aggregate.idaggregate, |
34 |
'impacted_hls': len(aggregate.high_level_services),
|
|
34 |
'impacted_hls': aggregate.high_level_services.count(),
|
|
35 | 35 |
} |
36 | 36 |
# XXX Il faudrait échapper l'URL contenue dans baseurl |
37 | 37 |
# pour éviter des attaques de type XSS. |
... | ... | |
59 | 59 |
.filter(EventsAggregate.idaggregate == idaggregate).one() |
60 | 60 |
shns = aggregate.high_level_services |
61 | 61 |
|
62 |
return dict(shns=[shn.servicename for shn in shns])
|
|
62 |
return dict(shns=[shn.name for shn in shns]) |
|
63 | 63 |
|
vigiboard/controllers/vigiboardrequest.py | ||
---|---|---|
52 | 52 |
self.outerjoin = [] |
53 | 53 |
|
54 | 54 |
self.filter = [ |
55 |
HostGroup.groupname.in_(self.user_groups),
|
|
56 |
ServiceGroup.groupname.in_(self.user_groups),
|
|
55 |
HostGroup.idgroup.in_(self.user_groups),
|
|
56 |
ServiceGroup.idgroup.in_(self.user_groups),
|
|
57 | 57 |
|
58 | 58 |
# On masque les évènements avec l'état OK |
59 | 59 |
# et traités (status == u'AAClosed'). |
... | ... | |
303 | 303 |
[_('Date')+ '<span style="font-weight:normal">' + \ |
304 | 304 |
'<br />['+_('Duration') + ']</span>', |
305 | 305 |
{'style':'text-align:left'}], |
306 |
['Priority', {'title':_('ITIL Priority')}],
|
|
306 |
[_('Priority'), {'title':_('ITIL Priority')}],
|
|
307 | 307 |
['#', {'title':_('Occurrence count')}], |
308 | 308 |
[_('Host'), {'style':'text-align:left'}], |
309 | 309 |
[_('Service Type')+'<br />'+_('Service Name'), |
... | ... | |
341 | 341 |
events.append([ |
342 | 342 |
event, |
343 | 343 |
{'class': class_tr[i % 2]}, |
344 |
{'class': event.cause.initial_state + \ |
|
344 |
{'class': event.cause.first().initial_state + \
|
|
345 | 345 |
self.class_ack[event.status]}, |
346 |
{'class': event.cause.current_state + \ |
|
346 |
{'class': event.cause.first().current_state + \
|
|
347 | 347 |
self.class_ack[event.status]}, |
348 |
{'src': '/images/%s2.png' % event.cause.current_state}, |
|
348 |
{'src': '/images/%s2.png' % event.cause.first().current_state},
|
|
349 | 349 |
self.format_events_img_status(event), |
350 | 350 |
[[j.__show__(event), j.style] for j in self.plugin] |
351 | 351 |
]) |
vigiboard/i18n/en_US/LC_MESSAGES/vigiboard.po | ||
---|---|---|
8 | 8 |
"Project-Id-Version: vigiboard 0.1\n" |
9 | 9 |
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" |
10 | 10 |
"POT-Creation-Date: 2009-07-06 11:19+0200\n" |
11 |
"PO-Revision-Date: 2009-11-06 13:22+0100\n"
|
|
11 |
"PO-Revision-Date: 2009-11-09 10:03+0100\n"
|
|
12 | 12 |
"Last-Translator: Thomas ANDREJAK <thomas.andrejak@c-s.fr>\n" |
13 | 13 |
"Language-Team: en_US <LL@li.org>\n" |
14 | 14 |
"Plural-Forms: nplurals=2; plural=(n != 1)\n" |
... | ... | |
23 | 23 |
|
24 | 24 |
#: vigiboard/controllers/root.py:45 vigiboard/controllers/root.py:141 |
25 | 25 |
#: vigiboard/controllers/root.py:196 vigiboard/controllers/root.py:242 |
26 |
#: vigiboard/controllers/root.py:295
|
|
26 |
#: vigiboard/controllers/root.py:299
|
|
27 | 27 |
msgid "You need to be authenticated" |
28 | 28 |
msgstr "" |
29 | 29 |
|
... | ... | |
31 | 31 |
msgid "Error in DB" |
32 | 32 |
msgstr "" |
33 | 33 |
|
34 |
#: vigiboard/controllers/root.py:311
|
|
34 |
#: vigiboard/controllers/root.py:315
|
|
35 | 35 |
msgid "No event has been selected" |
36 | 36 |
msgstr "" |
37 | 37 |
|
38 |
#: vigiboard/controllers/root.py:325
|
|
38 |
#: vigiboard/controllers/root.py:329
|
|
39 | 39 |
msgid "No access to this event" |
40 | 40 |
msgstr "" |
41 | 41 |
|
42 |
#: vigiboard/controllers/root.py:344
|
|
42 |
#: vigiboard/controllers/root.py:347
|
|
43 | 43 |
#, python-format |
44 | 44 |
msgid "Changed trouble ticket from '%s' to '%s'" |
45 | 45 |
msgstr "" |
46 | 46 |
|
47 |
#: vigiboard/controllers/root.py:358
|
|
47 |
#: vigiboard/controllers/root.py:361
|
|
48 | 48 |
#, python-format |
49 | 49 |
msgid "Changed acknowledgement status from '%s' to '%s'" |
50 | 50 |
msgstr "" |
51 | 51 |
|
52 |
#: vigiboard/controllers/root.py:368
|
|
52 |
#: vigiboard/controllers/root.py:371
|
|
53 | 53 |
msgid "Updated successfully" |
54 | 54 |
msgstr "" |
55 | 55 |
|
... | ... | |
75 | 75 |
msgstr "" |
76 | 76 |
|
77 | 77 |
#: vigiboard/controllers/vigiboardrequest.py:306 |
78 |
msgid "Priority" |
|
79 |
msgstr "" |
|
80 |
|
|
81 |
#: vigiboard/controllers/vigiboardrequest.py:306 |
|
78 | 82 |
msgid "ITIL Priority" |
79 | 83 |
msgstr "" |
80 | 84 |
|
... | ... | |
83 | 87 |
msgstr "" |
84 | 88 |
|
85 | 89 |
#: vigiboard/controllers/vigiboardrequest.py:308 |
86 |
#: vigiboard/widgets/edit_event.py:40
|
|
90 |
#: vigiboard/widgets/edit_event.py:41
|
|
87 | 91 |
msgid "Host" |
88 | 92 |
msgstr "" |
89 | 93 |
|
... | ... | |
96 | 100 |
msgstr "" |
97 | 101 |
|
98 | 102 |
#: vigiboard/controllers/vigiboardrequest.py:311 |
99 |
#: vigiboard/widgets/edit_event.py:42
|
|
103 |
#: vigiboard/widgets/edit_event.py:43
|
|
100 | 104 |
msgid "Output" |
101 | 105 |
msgstr "" |
102 | 106 |
|
... | ... | |
105 | 109 |
msgstr "" |
106 | 110 |
|
107 | 111 |
#: vigiboard/controllers/vigiboardrequest.py:314 |
108 |
#: vigiboard/widgets/edit_event.py:26 vigiboard/widgets/edit_event.py:43
|
|
112 |
#: vigiboard/widgets/edit_event.py:26 vigiboard/widgets/edit_event.py:44
|
|
109 | 113 |
msgid "Trouble Ticket" |
110 | 114 |
msgstr "" |
111 | 115 |
|
112 |
#: vigiboard/controllers/vigiboardrequest.py:418
|
|
116 |
#: vigiboard/controllers/vigiboardrequest.py:419
|
|
113 | 117 |
msgid "Edit Event" |
114 | 118 |
msgstr "" |
115 | 119 |
|
116 |
#: vigiboard/controllers/vigiboardrequest.py:424
|
|
120 |
#: vigiboard/controllers/vigiboardrequest.py:425
|
|
117 | 121 |
msgid "Search Event" |
118 | 122 |
msgstr "" |
119 | 123 |
|
120 |
#: vigiboard/controllers/vigiboardrequest.py:428
|
|
124 |
#: vigiboard/controllers/vigiboardrequest.py:429
|
|
121 | 125 |
msgid "History" |
122 | 126 |
msgstr "" |
123 | 127 |
|
... | ... | |
157 | 161 |
msgid "Apply" |
158 | 162 |
msgstr "" |
159 | 163 |
|
160 |
#: vigiboard/widgets/edit_event.py:41
|
|
164 |
#: vigiboard/widgets/edit_event.py:42
|
|
161 | 165 |
msgid "Service" |
162 | 166 |
msgstr "" |
163 | 167 |
|
164 |
#: vigiboard/widgets/edit_event.py:47
|
|
168 |
#: vigiboard/widgets/edit_event.py:48
|
|
165 | 169 |
msgid "Search" |
166 | 170 |
msgstr "" |
167 | 171 |
|
vigiboard/i18n/fr_FR/LC_MESSAGES/vigiboard.po | ||
---|---|---|
8 | 8 |
"Project-Id-Version: vigiboard 0.1\n" |
9 | 9 |
"Report-Msgid-Bugs-To: EMAIL@ADDRESS\n" |
10 | 10 |
"POT-Creation-Date: 2009-07-06 11:19+0200\n" |
11 |
"PO-Revision-Date: 2009-11-06 13:22+0100\n"
|
|
11 |
"PO-Revision-Date: 2009-11-09 10:03+0100\n"
|
|
12 | 12 |
"Last-Translator: Thomas ANDREJAK <thomas.andrejak@c-s.fr>\n" |
13 | 13 |
"Language-Team: fr_FR <LL@li.org>\n" |
14 | 14 |
"Plural-Forms: nplurals=2; plural=(n > 1)\n" |
... | ... | |
23 | 23 |
|
24 | 24 |
#: vigiboard/controllers/root.py:45 vigiboard/controllers/root.py:141 |
25 | 25 |
#: vigiboard/controllers/root.py:196 vigiboard/controllers/root.py:242 |
26 |
#: vigiboard/controllers/root.py:295
|
|
26 |
#: vigiboard/controllers/root.py:299
|
|
27 | 27 |
msgid "You need to be authenticated" |
28 | 28 |
msgstr "Vous devez être authentifié" |
29 | 29 |
|
... | ... | |
31 | 31 |
msgid "Error in DB" |
32 | 32 |
msgstr "Erreur dans la base de données" |
33 | 33 |
|
34 |
#: vigiboard/controllers/root.py:311
|
|
34 |
#: vigiboard/controllers/root.py:315
|
|
35 | 35 |
msgid "No event has been selected" |
36 | 36 |
msgstr "Aucun évènement sélectionné" |
37 | 37 |
|
38 |
#: vigiboard/controllers/root.py:325
|
|
38 |
#: vigiboard/controllers/root.py:329
|
|
39 | 39 |
msgid "No access to this event" |
40 | 40 |
msgstr "Accès à cet évènement refusé" |
41 | 41 |
|
42 |
#: vigiboard/controllers/root.py:344
|
|
42 |
#: vigiboard/controllers/root.py:347
|
|
43 | 43 |
#, python-format |
44 | 44 |
msgid "Changed trouble ticket from '%s' to '%s'" |
45 | 45 |
msgstr "A changé le ticket d'incidence de '%s' en '%s'" |
46 | 46 |
|
47 |
#: vigiboard/controllers/root.py:358
|
|
47 |
#: vigiboard/controllers/root.py:361
|
|
48 | 48 |
#, python-format |
49 | 49 |
msgid "Changed acknowledgement status from '%s' to '%s'" |
50 | 50 |
msgstr "A changé l'état d'acquittement de '%s' en '%s'" |
51 | 51 |
|
52 |
#: vigiboard/controllers/root.py:368
|
|
52 |
#: vigiboard/controllers/root.py:371
|
|
53 | 53 |
msgid "Updated successfully" |
54 | 54 |
msgstr "Mise à jour réussie" |
55 | 55 |
|
... | ... | |
75 | 75 |
msgstr "Durée" |
76 | 76 |
|
77 | 77 |
#: vigiboard/controllers/vigiboardrequest.py:306 |
78 |
msgid "Priority" |
|
79 |
msgstr "Priorité" |
|
80 |
|
|
81 |
#: vigiboard/controllers/vigiboardrequest.py:306 |
|
78 | 82 |
msgid "ITIL Priority" |
79 | 83 |
msgstr "Priorité ITIL" |
80 | 84 |
|
... | ... | |
83 | 87 |
msgstr "Nombre d'occurrences" |
84 | 88 |
|
85 | 89 |
#: vigiboard/controllers/vigiboardrequest.py:308 |
86 |
#: vigiboard/widgets/edit_event.py:40
|
|
90 |
#: vigiboard/widgets/edit_event.py:41
|
|
87 | 91 |
msgid "Host" |
88 | 92 |
msgstr "Hôte" |
89 | 93 |
|
... | ... | |
96 | 100 |
msgstr "Nom du service" |
97 | 101 |
|
98 | 102 |
#: vigiboard/controllers/vigiboardrequest.py:311 |
99 |
#: vigiboard/widgets/edit_event.py:42
|
|
103 |
#: vigiboard/widgets/edit_event.py:43
|
|
100 | 104 |
msgid "Output" |
101 | 105 |
msgstr "Sortie d'erreur" |
102 | 106 |
|
... | ... | |
105 | 109 |
msgstr "TT" |
106 | 110 |
|
107 | 111 |
#: vigiboard/controllers/vigiboardrequest.py:314 |
108 |
#: vigiboard/widgets/edit_event.py:26 vigiboard/widgets/edit_event.py:43
|
|
112 |
#: vigiboard/widgets/edit_event.py:26 vigiboard/widgets/edit_event.py:44
|
|
109 | 113 |
msgid "Trouble Ticket" |
110 | 114 |
msgstr "Ticket d'incidence" |
111 | 115 |
|
112 |
#: vigiboard/controllers/vigiboardrequest.py:418
|
|
116 |
#: vigiboard/controllers/vigiboardrequest.py:419
|
|
113 | 117 |
msgid "Edit Event" |
114 | 118 |
msgstr "Edition d'évènements" |
115 | 119 |
|
116 |
#: vigiboard/controllers/vigiboardrequest.py:424
|
|
120 |
#: vigiboard/controllers/vigiboardrequest.py:425
|
|
117 | 121 |
msgid "Search Event" |
118 | 122 |
msgstr "Recherche d'évènements" |
119 | 123 |
|
120 |
#: vigiboard/controllers/vigiboardrequest.py:428
|
|
124 |
#: vigiboard/controllers/vigiboardrequest.py:429
|
|
121 | 125 |
msgid "History" |
122 | 126 |
msgstr "Historique" |
123 | 127 |
|
... | ... | |
158 | 162 |
msgid "Apply" |
159 | 163 |
msgstr "Appliquer" |
160 | 164 |
|
161 |
#: vigiboard/widgets/edit_event.py:41
|
|
165 |
#: vigiboard/widgets/edit_event.py:42
|
|
162 | 166 |
msgid "Service" |
163 | 167 |
msgstr "Service" |
164 | 168 |
|
165 |
#: vigiboard/widgets/edit_event.py:47
|
|
169 |
#: vigiboard/widgets/edit_event.py:48
|
|
166 | 170 |
msgid "Search" |
167 | 171 |
msgstr "Rechercher" |
168 | 172 |
|
vigiboard/i18n/vigiboard.pot | ||
---|---|---|
8 | 8 |
msgstr "" |
9 | 9 |
"Project-Id-Version: vigiboard 0.1\n" |
10 | 10 |
"Report-Msgid-Bugs-To: contact@projet-vigilo.org\n" |
11 |
"POT-Creation-Date: 2009-11-06 13:22+0100\n"
|
|
11 |
"POT-Creation-Date: 2009-11-09 10:03+0100\n"
|
|
12 | 12 |
"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" |
13 | 13 |
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" |
14 | 14 |
"Language-Team: LANGUAGE <LL@li.org>\n" |
... | ... | |
23 | 23 |
|
24 | 24 |
#: vigiboard/controllers/root.py:45 vigiboard/controllers/root.py:141 |
25 | 25 |
#: vigiboard/controllers/root.py:196 vigiboard/controllers/root.py:242 |
26 |
#: vigiboard/controllers/root.py:295
|
|
26 |
#: vigiboard/controllers/root.py:299
|
|
27 | 27 |
msgid "You need to be authenticated" |
28 | 28 |
msgstr "" |
29 | 29 |
|
... | ... | |
31 | 31 |
msgid "Error in DB" |
32 | 32 |
msgstr "" |
33 | 33 |
|
34 |
#: vigiboard/controllers/root.py:311
|
|
34 |
#: vigiboard/controllers/root.py:315
|
|
35 | 35 |
msgid "No event has been selected" |
36 | 36 |
msgstr "" |
37 | 37 |
|
38 |
#: vigiboard/controllers/root.py:325
|
|
38 |
#: vigiboard/controllers/root.py:329
|
|
39 | 39 |
msgid "No access to this event" |
40 | 40 |
msgstr "" |
41 | 41 |
|
42 |
#: vigiboard/controllers/root.py:344
|
|
42 |
#: vigiboard/controllers/root.py:347
|
|
43 | 43 |
#, python-format |
44 | 44 |
msgid "Changed trouble ticket from '%s' to '%s'" |
45 | 45 |
msgstr "" |
46 | 46 |
|
47 |
#: vigiboard/controllers/root.py:358
|
|
47 |
#: vigiboard/controllers/root.py:361
|
|
48 | 48 |
#, python-format |
49 | 49 |
msgid "Changed acknowledgement status from '%s' to '%s'" |
50 | 50 |
msgstr "" |
51 | 51 |
|
52 |
#: vigiboard/controllers/root.py:368
|
|
52 |
#: vigiboard/controllers/root.py:371
|
|
53 | 53 |
msgid "Updated successfully" |
54 | 54 |
msgstr "" |
55 | 55 |
|
... | ... | |
75 | 75 |
msgstr "" |
76 | 76 |
|
77 | 77 |
#: vigiboard/controllers/vigiboardrequest.py:306 |
78 |
msgid "Priority" |
|
79 |
msgstr "" |
|
80 |
|
|
81 |
#: vigiboard/controllers/vigiboardrequest.py:306 |
|
78 | 82 |
msgid "ITIL Priority" |
79 | 83 |
msgstr "" |
80 | 84 |
|
... | ... | |
82 | 86 |
msgid "Occurrence count" |
83 | 87 |
msgstr "" |
84 | 88 |
|
85 |
#: vigiboard/controllers/vigiboardrequest.py:308 vigiboard/widgets/edit_event.py:40
|
|
89 |
#: vigiboard/controllers/vigiboardrequest.py:308 vigiboard/widgets/edit_event.py:41
|
|
86 | 90 |
msgid "Host" |
87 | 91 |
msgstr "" |
88 | 92 |
|
... | ... | |
94 | 98 |
msgid "Service Name" |
95 | 99 |
msgstr "" |
96 | 100 |
|
97 |
#: vigiboard/controllers/vigiboardrequest.py:311 vigiboard/widgets/edit_event.py:42
|
|
101 |
#: vigiboard/controllers/vigiboardrequest.py:311 vigiboard/widgets/edit_event.py:43
|
|
98 | 102 |
msgid "Output" |
99 | 103 |
msgstr "" |
100 | 104 |
|
... | ... | |
103 | 107 |
msgstr "" |
104 | 108 |
|
105 | 109 |
#: vigiboard/controllers/vigiboardrequest.py:314 vigiboard/widgets/edit_event.py:26 |
106 |
#: vigiboard/widgets/edit_event.py:43
|
|
110 |
#: vigiboard/widgets/edit_event.py:44
|
|
107 | 111 |
msgid "Trouble Ticket" |
108 | 112 |
msgstr "" |
109 | 113 |
|
110 |
#: vigiboard/controllers/vigiboardrequest.py:418
|
|
114 |
#: vigiboard/controllers/vigiboardrequest.py:419
|
|
111 | 115 |
msgid "Edit Event" |
112 | 116 |
msgstr "" |
113 | 117 |
|
114 |
#: vigiboard/controllers/vigiboardrequest.py:424
|
|
118 |
#: vigiboard/controllers/vigiboardrequest.py:425
|
|
115 | 119 |
msgid "Search Event" |
116 | 120 |
msgstr "" |
117 | 121 |
|
118 |
#: vigiboard/controllers/vigiboardrequest.py:428
|
|
122 |
#: vigiboard/controllers/vigiboardrequest.py:429
|
|
119 | 123 |
msgid "History" |
120 | 124 |
msgstr "" |
121 | 125 |
|
... | ... | |
155 | 159 |
msgid "Apply" |
156 | 160 |
msgstr "" |
157 | 161 |
|
158 |
#: vigiboard/widgets/edit_event.py:41
|
|
162 |
#: vigiboard/widgets/edit_event.py:42
|
|
159 | 163 |
msgid "Service" |
160 | 164 |
msgstr "" |
161 | 165 |
|
162 |
#: vigiboard/widgets/edit_event.py:47
|
|
166 |
#: vigiboard/widgets/edit_event.py:48
|
|
163 | 167 |
msgid "Search" |
164 | 168 |
msgstr "" |
165 | 169 |
|
vigiboard/tests/functional/test_userutils.py | ||
---|---|---|
13 | 13 |
class TestUserUtils(TestController): |
14 | 14 |
"""Test retrieval of groups of hosts/services.""" |
15 | 15 |
|
16 |
def setUp(self): |
|
17 |
TestController.setUp(self) |
|
16 |
def test_groups_inheritance(self): |
|
17 |
""" |
|
18 |
S'assure que les groupes sont correctement hérités. |
|
19 |
""" |
|
18 | 20 |
|
19 |
# On commence par peupler la base. |
|
20 |
# Les groupes. |
|
21 |
self.hosteditors = Group(name=u'hosteditors', parent=None) |
|
22 |
DBSession.add(self.hosteditors) |
|
23 |
DBSession.flush() |
|
21 |
# Création de 2 groupes d'utilisateurs. |
|
22 |
hosteditors = Group(name=u'hosteditors', parent=None) |
|
23 |
DBSession.add(hosteditors) |
|
24 | 24 |
|
25 |
self.hostmanagers = Group(name=u'hostmanagers', parent=self.hosteditors) |
|
26 |
DBSession.add(self.hostmanagers) |
|
27 |
DBSession.flush() |
|
25 |
hostmanagers = Group(name=u'hostmanagers', parent=hosteditors) |
|
26 |
DBSession.add(hostmanagers) |
|
28 | 27 |
|
29 | 28 |
# L'attribution des permissions. |
30 | 29 |
manage_perm = Permission.by_permission_name(u'manage') |
31 | 30 |
edit_perm = Permission.by_permission_name(u'edit') |
32 | 31 |
|
33 |
manage_perm.groups.append(self.hostmanagers)
|
|
34 |
edit_perm.groups.append(self.hosteditors)
|
|
32 |
manage_perm.groups.append(hostmanagers) |
|
33 |
edit_perm.groups.append(hosteditors) |
|
35 | 34 |
DBSession.flush() |
36 | 35 |
transaction.commit() |
37 | 36 |
|
38 |
|
|
39 |
def tearDown(self): |
|
40 |
# This operation is only necessary for DBMS which are |
|
41 |
# really strict about table locks, such as PostgreSQL. |
|
42 |
# For our tests, we use an (in-memory) SQLite database, |
|
43 |
# so we're unaffected. This is done only for completeness. |
|
44 |
DBSession.delete(self.hostmanagers) |
|
45 |
DBSession.flush() |
|
46 |
transaction.commit() |
|
47 |
|
|
48 |
DBSession.delete(self.hosteditors) |
|
49 |
DBSession.flush() |
|
50 |
transaction.commit() |
|
51 |
TestController.tearDown(self) |
|
52 |
|
|
53 |
|
|
54 |
def test_groups_inheritance(self): |
|
55 |
""" |
|
56 |
S'assure que les groupes sont correctement hérités. |
|
57 |
""" |
|
58 |
|
|
59 | 37 |
# On obtient les variables de session comme si on était loggué |
60 | 38 |
# en tant que manager. |
61 | 39 |
environ = {'REMOTE_USER': 'manager'} |
... | ... | |
67 | 45 |
['repoze.who.userid'] |
68 | 46 |
grp = User.by_user_name(username).groups |
69 | 47 |
|
48 |
# Permet de rafraîchir les instances. |
|
49 |
DBSession.add(hostmanagers) |
|
50 |
DBSession.add(hosteditors) |
|
51 |
|
|
70 | 52 |
# On vérifie que la liste est correcte : le manager doit avoir accès |
71 | 53 |
# aux groupes 'hostmanagers' & 'hosteditors' (dont il hérite). |
72 |
assert_true( u'hostmanagers' in grp and u'hosteditors' in grp , |
|
54 |
assert_true(hostmanagers.idgroup in grp and |
|
55 |
hosteditors.idgroup in grp, |
|
73 | 56 |
msg = "il est dans %s" % grp) |
74 | 57 |
|
75 | 58 |
# On recommence avec l'utilisateur editor. |
... | ... | |
82 | 65 |
grp = User.by_user_name(username).groups |
83 | 66 |
|
84 | 67 |
# L'utilisateur editor ne doit avoir accès qu'au groupe 'hosteditors'. |
85 |
assert_true( not(u'hostmanagers' in grp) and u'hosteditors' in grp, |
|
68 |
assert_true(not(hostmanagers.idgroup in grp) and |
|
69 |
hosteditors.idgroup in grp, |
|
86 | 70 |
msg = "il est dans %s" % grp) |
87 | 71 |
|
vigiboard/tests/functional/test_vigiboardrequest.py | ||
---|---|---|
38 | 38 |
manage_perm = Permission.by_permission_name(u'manage') |
39 | 39 |
edit_perm = Permission.by_permission_name(u'edit') |
40 | 40 |
|
41 |
manage_perm.groups.append(hostmanagers)
|
|
42 |
edit_perm.groups.append(hosteditors)
|
|
41 |
hostmanagers.permissions.append(manage_perm)
|
|
42 |
hosteditors.permissions.append(edit_perm)
|
|
43 | 43 |
DBSession.flush() |
44 | 44 |
|
45 | 45 |
# Les dépendances des évènements |
... | ... | |
66 | 66 |
|
67 | 67 |
# Table de jointure entre les hôtes/services et les groupes |
68 | 68 |
DBSession.add(HostGroup(hostname = u"monhost", |
69 |
groupname = u"hostmanagers"))
|
|
69 |
idgroup=hostmanagers.idgroup))
|
|
70 | 70 |
DBSession.add(HostGroup(hostname = u"monhostuser", |
71 |
groupname = u"hosteditors"))
|
|
71 |
idgroup=hosteditors.idgroup))
|
|
72 | 72 |
DBSession.add(ServiceGroup(servicename = u"monservice", |
73 |
groupname = u"hostmanagers"))
|
|
73 |
idgroup=hostmanagers.idgroup))
|
|
74 | 74 |
DBSession.add(ServiceGroup(servicename = u"monserviceuser", |
75 |
groupname = u"hosteditors"))
|
|
75 |
idgroup=hosteditors.idgroup))
|
|
76 | 76 |
DBSession.flush() |
77 | 77 |
|
78 | 78 |
# Les évènements eux-mêmes |
... | ... | |
99 | 99 |
|
100 | 100 |
# Les historiques |
101 | 101 |
DBSession.add(EventHistory(type_action = u'Nagios update state', |
102 |
idevent = event1.idevent))
|
|
102 |
idevent=event1.idevent, timestamp=datetime.now()))
|
|
103 | 103 |
DBSession.add(EventHistory(type_action = u'Acknowlegement change state', |
104 |
idevent = event1.idevent))
|
|
104 |
idevent=event1.idevent, timestamp=datetime.now()))
|
|
105 | 105 |
DBSession.add(EventHistory(type_action = u'Nagios update state', |
106 |
idevent = event2.idevent))
|
|
106 |
idevent=event2.idevent, timestamp=datetime.now()))
|
|
107 | 107 |
DBSession.add(EventHistory(type_action = u'Acknowlegement change state', |
108 |
idevent = event2.idevent))
|
|
108 |
idevent=event2.idevent, timestamp=datetime.now()))
|
|
109 | 109 |
DBSession.add(EventHistory(type_action = u'Nagios update state', |
110 |
idevent = event3.idevent))
|
|
110 |
idevent=event3.idevent, timestamp=datetime.now()))
|
|
111 | 111 |
DBSession.add(EventHistory(type_action = u'Acknowlegement change state', |
112 |
idevent = event3.idevent))
|
|
112 |
idevent=event3.idevent, timestamp=datetime.now()))
|
|
113 | 113 |
DBSession.add(EventHistory(type_action = u'Nagios update state', |
114 |
idevent = event4.idevent))
|
|
114 |
idevent=event4.idevent, timestamp=datetime.now()))
|
|
115 | 115 |
DBSession.add(EventHistory(type_action = u'Acknowlegement change state', |
116 |
idevent = event4.idevent))
|
|
116 |
idevent=event4.idevent, timestamp=datetime.now()))
|
|
117 | 117 |
DBSession.flush() |
118 | 118 |
|
119 | 119 |
# Les évènements corrélés |
... | ... | |
123 | 123 |
'status': u'None', |
124 | 124 |
} |
125 | 125 |
self.aggregate1 = EventsAggregate( |
126 |
idaggregate=42, |
|
127 | 126 |
idcause=event1.idevent, **aggregate_template) |
128 | 127 |
self.aggregate2 = EventsAggregate( |
129 |
idaggregate=43, |
|
130 | 128 |
idcause=event4.idevent, **aggregate_template) |
131 | 129 |
|
132 | 130 |
self.aggregate1.events.append(event1) |
... | ... | |
138 | 136 |
DBSession.flush() |
139 | 137 |
transaction.commit() |
140 | 138 |
|
141 |
|
|
142 | 139 |
def tearDown(self): |
143 | 140 |
# This operation is only necessary for DBMS which are |
144 | 141 |
# really strict about table locks, such as PostgreSQL. |
145 | 142 |
# For our tests, we use an (in-memory) SQLite database, |
146 | 143 |
# so we're unaffected. This is done only for completeness. |
147 |
DBSession.delete(self.aggregate1) |
|
148 |
DBSession.delete(self.aggregate1) |
|
149 |
DBSession.flush() |
|
150 |
transaction.commit() |
|
151 | 144 |
TestController.tearDown(self) |
152 | 145 |
|
153 | 146 |
|
... | ... | |
173 | 166 |
assert_true(num_rows == 1, msg = "1 historique devrait " + |
174 | 167 |
"etre disponible pour l'utilisateur 'editor' mais il " + |
175 | 168 |
"y en a %d" % num_rows) |
169 |
|
|
176 | 170 |
vigi_req.format_events(0, 10) |
177 | 171 |
vigi_req.format_history() |
172 |
print vigi_req.events |
|
178 | 173 |
assert_true(len(vigi_req.events) == 1 + 1, |
179 | 174 |
msg = "1 evenement devrait etre disponible pour " + |
180 | 175 |
"l'utilisateur 'editor' mais il y en a %d" % |
181 |
len(vigi_req.events))
|
|
176 |
(len(vigi_req.events) - 1))
|
|
182 | 177 |
assert_true(vigi_req.events[1][6][0][0] != 'Error', |
183 |
msg = "Probleme d'execution des plugins ou de " + |
|
178 |
msg = "Probleme d'execution des plugins ou de " +
|
|
184 | 179 |
"formatage des evenements") |
185 | 180 |
|
186 | 181 |
# On recommence les tests précédents avec l'utilisateur |
... | ... | |
202 | 197 |
assert_true(len(vigi_req.events) == 2 + 1, |
203 | 198 |
msg = "2 evenements devraient être disponibles pour " + |
204 | 199 |
"l'utilisateur 'manager' mais il y en a %d" % |
205 |
len(vigi_req.events))
|
|
200 |
(len(vigi_req.events) - 1))
|
|
206 | 201 |
assert_true(vigi_req.events[1][6][0][0] != 'Error', |
207 | 202 |
msg = "Probleme d'execution des plugins") |
208 | 203 |
|
Also available in: Unified diff