Project

General

Profile

Statistics
| Branch: | Tag: | Revision:

vigigraph / vigigraph / tests / functional / helpers.py @ 71709694

History | View | Annotate | Download (6.36 KB)

1
# -*- coding: utf-8 -*-
2
# Copyright (C) 2011-2020 CS GROUP – France
3
# License: GNU GPL v2 <http://www.gnu.org/licenses/gpl-2.0.html>
4

    
5
from vigilo.models.tables import Permission
6

    
7
from vigilo.models.demo.functions import add_supitemgroup, \
8
    add_host, add_host2group, add_usergroup, add_user, \
9
    add_supitemgrouppermission, add_usergroup_permission
10

    
11
from vigilo.models.demo.functions import add_graph, \
12
    add_graphgroup, add_graph2group, add_perfdatasource, \
13
    add_perfdatasource2graph, add_vigiloserver, add_application
14

    
15

    
16
def populateDB():
17
    """
18
    Peuple la base de données en ajoutant :
19
     - 3 groupes d'hôtes ;
20
     - 3 hôtes ;
21
     - 3 utilisateurs.
22
    Les objets construits respectent les matrices suivantes.
23

24

25
    Matrice des utilisateurs et groupes d'utilisateurs :
26

27
    +-------------------+-----------+---------------+-------+-----------+
28
    | util. \ groupe    | managers  | powerusers    | users | visitor   |
29
    +===================+===========+===============+=======+===========+
30
    | manager           |     X     |               |       |           |
31
    +-------------------+-----------+---------------+-------+-----------+
32
    | poweruser         |           |       X       |       |           |
33
    +-------------------+-----------+---------------+-------+-----------+
34
    | user              |           |               |   X   |           |
35
    +-------------------+-----------+---------------+-------+-----------+
36
    | visitor           |           |               |       |     X     |
37
    +-------------------+-----------+---------------+-------+-----------+
38

39

40
    Matrice des groupes d'utilisateurs et des droits
41
    sur les groupes d'objets supervisés :
42

43
    +---------------------------+-----------+-----------+-----------+
44
    | usergroup \ supitemgroup  |    mhg    |    hg1    |   hg2     |
45
    |                           |  (host1)  |  (host2)  | (host3)   |
46
    +===========================+===========+===========+===========+
47
    | managers                  |    /      |    /      |    /      |
48
    +---------------------------+-----------+-----------+-----------+
49
    | powerusers                |    X      |    /      |    /      |
50
    +---------------------------+-----------+-----------+-----------+
51
    | users                     |           |    X      |           |
52
    +---------------------------+-----------+-----------+-----------+
53
    | visitors                  |           |           |           |
54
    +---------------------------+-----------+-----------+-----------+
55
    (X = accès explicite, / = accès implicite)
56

57

58
    @return: Tuple contenant les trois hôtes créés.
59
    @rtype:  C{tuple} of C{vigilo.models.tables.Host}
60
    """
61

    
62
    # Ajout d'un groupe d'hôtes principal
63
    mainhostgroup = add_supitemgroup(u'mhg', None)
64

    
65
    # Ajout d'un premier groupe d'hôtes de second niveau
66
    hostgroup1 = add_supitemgroup(u'hg1', mainhostgroup)
67

    
68
    # Ajout d'un second groupe d'hôtes de second niveau
69
    hostgroup2 = add_supitemgroup(u'hg2', mainhostgroup)
70

    
71
    # Ajout de trois hôtes
72
    # On ajoute des caractères spéciaux pour détecter les
73
    # conversions implicites Unicode <-> ASCII (et leurs erreurs).
74
    host1 = add_host(u'host1 éà')
75
    host2 = add_host(u'host2 éà')
76
    host3 = add_host(u'host3 éà')
77

    
78
    # Ajout du premier hôte dans le groupe d'hôtes principal.
79
    add_host2group(host1, mainhostgroup)
80
    # Ajout du deuxième hôte dans le premier
81
    # groupe d'hôtes de second niveau.
82
    add_host2group(host2, hostgroup1)
83
    # Ajout du troisième hôte dans le second
84
    # groupe d'hôtes de second niveau.
85
    add_host2group(host3, hostgroup2)
86

    
87
    # Ajout de trois groupes d'utilisateurs
88
    poweruser_group = add_usergroup(u'powerusers')
89
    user_group = add_usergroup(u'users')
90
    visitor_group = add_usergroup(u'visitor')
91

    
92
    # Ajout de trois utilisateurs
93
    add_user(u'poweruser', u'some.power@us.er',
94
        u'Power User', u'poweruserpass', u'powerusers')
95
    add_user(u'user', u'some.random@us.er',
96
        u'User', u'userpass', u'users')
97
    add_user(u'visitor', u'some.visiting@us.er',
98
        u'', u'visitorpass', u'visitor')
99

    
100
    # Ajout des permissions sur le groupe d'hôtes
101
    # principal pour le premier groupe d'utilisateurs
102
    add_supitemgrouppermission(mainhostgroup, poweruser_group)
103

    
104
    # Ajout des permissions sur le premier groupe d'hôtes
105
    # secondaire pour le second groupe d'utilisateurs
106
    add_supitemgrouppermission(hostgroup1, user_group)
107

    
108
    # Ajout de la permission 'vigigraph-access' aux groupes d'utilisateurs
109
    perm = Permission.by_permission_name(u'vigigraph-access')
110
    add_usergroup_permission(poweruser_group, perm)
111
    add_usergroup_permission(user_group, perm)
112
    add_usergroup_permission(visitor_group, perm)
113

    
114
    return (host1, host2, host3)
115

    
116

    
117
def addGraphs(host1, host2, host3):
118
    """
119
    Ajout d'un graphe pour chacun des trois hôtes passés en paramètres.
120

121
    @param host1: Premier hôte.
122
    @type  host1: C{vigilo.models.tables.Host}
123
    @param host2: Deuxième hôte.
124
    @type  host2: C{vigilo.models.tables.Host}
125
    @param host3: Troisième hôte.
126
    @type  host3: C{vigilo.models.tables.Host}
127
    """
128

    
129
    # Ajout d'un serveur de supervision
130
    vigiloserver = add_vigiloserver(u'locahost')
131

    
132
    # Ajout d'une application 'vigirrd'
133
    add_application(u"vigirrd")
134

    
135
    # Ajout de trois graphes
136
    # On ajoute des caractères spéciaux pour détecter les
137
    # conversions implicites Unicode <-> ASCII (et leurs erreurs).
138
    graph1 = add_graph(u"graph1 éà")
139
    graph2 = add_graph(u"graph2 éà")
140
    graph3 = add_graph(u"graph3 éà")
141

    
142
    # Ajout d'une perfdatasource pour chaque hôte
143
    datasource1 = add_perfdatasource(
144
        u'load', host1, None, None, vigiloserver)
145
    datasource2 = add_perfdatasource(
146
        u'load', host2, None, None, vigiloserver)
147
    datasource3 = add_perfdatasource(
148
        u'load', host3, None, None, vigiloserver)
149

    
150
    # Ajout d'une perfdatsource à chaque graphe
151
    add_perfdatasource2graph(datasource1, graph1)
152
    add_perfdatasource2graph(datasource2, graph2)
153
    add_perfdatasource2graph(datasource3, graph3)
154

    
155
    # Ajout de trois groupes de graphes
156
    graphgroup1 = add_graphgroup("graphgroup1")
157
    graphgroup2 = add_graphgroup("graphgroup2")
158
    graphgroup3 = add_graphgroup("graphgroup3")
159

    
160
    # Ajout de chaque graphe à un groupe de graphes
161
    add_graph2group(graph1, graphgroup1)
162
    add_graph2group(graph2, graphgroup2)
163
    add_graph2group(graph3, graphgroup3)