Project

General

Profile

Statistics
| Branch: | Tag: | Revision:

vigiboard / vigiboard / tests / functional / utils.py @ 011743be

History | View | Annotate | Download (3.76 KB)

1
# -*- coding: utf-8 -*-
2
# vim:set expandtab tabstop=4 shiftwidth=4:
3
# Copyright (C) 2006-2020 CS GROUP - France
4
# License: GNU GPL v2 <http://www.gnu.org/licenses/gpl-2.0.html>
5

    
6
"""
7
Fonctions utilitaires réutilisables dans les différents tests.
8
"""
9

    
10
import transaction
11

    
12
from vigilo.models.session import DBSession
13
from vigilo.models.demo import functions
14
from vigilo.models.tables import DataPermission, Permission, \
15
                            User, UserGroup
16

    
17

    
18
def populate_DB():
19
    """ Peuple la base de données. """
20

    
21
    # Création des 4 groupes de supitems :
22
    # - 1 groupe racine 'root' ;
23
    root = functions.add_supitemgroup(u'root')
24
    # - 1 groupe principal 'maingroup' ;
25
    maingroup = functions.add_supitemgroup(u'maingroup', root)
26
    # - 2 sous-groupes 'group1' et 'group2', faisant tous
27
    #   les deux parties du groupe principal 'maingroup'.
28
    group1 = functions.add_supitemgroup(u'group1', maingroup)
29
    group2 = functions.add_supitemgroup(u'group2', maingroup)
30

    
31
    # Création de 2 groupes d'utilisateurs (contenant chacun un utilisateur) :
32
    vigiboard_perm = Permission.by_permission_name(u'vigiboard-access')
33
    # - le premier avec des droits étendus
34
    #   (il a indirectement accès à tous les groupes de supitems) ;
35
    usergroup = UserGroup(group_name=u'users_with_access')
36
    usergroup.permissions.append(vigiboard_perm)
37
    DBSession.add(DataPermission(
38
        group = root,
39
        usergroup = usergroup,
40
        access = u'r',
41
    ))
42
    user = User(
43
        user_name=u'access',
44
        fullname=u'',
45
        email=u'user.has@access',
46
    )
47
    user.usergroups.append(usergroup)
48
    DBSession.add(user)
49

    
50
    # - le second avec des droits plus restreints
51
    #   (il n'a accès qu'au groupe de supitems 'group1').
52
    usergroup = UserGroup(group_name=u'users_with_limited_access')
53
    usergroup.permissions.append(vigiboard_perm)
54
    DBSession.add(DataPermission(
55
        group = group1,
56
        usergroup = usergroup,
57
        access = u'r',
58
    ))
59
    user = User(
60
        user_name=u'limited_access',
61
        fullname=u'',
62
        email=u'user.has.limited@access',
63
    )
64
    user.usergroups.append(usergroup)
65
    DBSession.add(user)
66
    DBSession.flush()
67

    
68
    # Création de 3 hôtes (1 par groupe de supitems).
69
    maingroup_host = functions.add_host(u'maingroup_host')
70
    group1_host = functions.add_host(u'group1_host')
71
    group2_host = functions.add_host(u'group2_host')
72

    
73
    # Affectation des hôtes aux groupes.
74
    maingroup.supitems.append(maingroup_host)
75
    group1.supitems.append(group1_host)
76
    group2.supitems.append(group2_host)
77
    DBSession.flush()
78

    
79
    # Création de 3 services de bas niveau (1 par hôte).
80
    group1_service = functions.add_lowlevelservice(
81
        group1_host, u'group1_service')
82
    group2_service = functions.add_lowlevelservice(
83
        group2_host, u'group2_service')
84
    maingroup_service = functions.add_lowlevelservice(
85
        maingroup_host, u'maingroup_service')
86

    
87
    # Ajout de 6 événements (1 par supitem)
88
    event1 = functions.add_event(maingroup_host, u'WARNING', u'foo')
89
    event2 = functions.add_event(maingroup_service, u'WARNING', u'foo')
90
    event3 = functions.add_event(group1_host, u'WARNING', u'foo')
91
    event4 = functions.add_event(group1_service, u'WARNING', u'foo')
92
    event5 = functions.add_event(group2_host, u'WARNING', u'foo')
93
    event6 = functions.add_event(group2_service, u'WARNING', u'foo')
94

    
95
    # Ajout de 5 événements corrélés (1 pour chaque évènement,
96
    # sauf celui touchant le 'maingroup_service' qui sera rattaché
97
    # à l'évènement corrélé causé par le 'maingroup_host').
98
    functions.add_correvent([event1, event2])
99
    functions.add_correvent([event3])
100
    functions.add_correvent([event4])
101
    functions.add_correvent([event5])
102
    functions.add_correvent([event6])
103
    transaction.commit()