Project

General

Profile

Revision 24d74687

ID24d74687cec092662a1add7f4a2a2a0b1568d8db
Parent d47b4c3d
Child b2346a00

Added by Francois POIROTTE over 14 years ago

Mise à jour de VigiBoard et de ses tests unitaires suite aux changements
dans le modèle (r2606).

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

View differences:

vigiboard/controllers/root.py
20 20

  
21 21
from vigilo.models.session import DBSession
22 22
from vigilo.models.tables import Event, EventHistory, CorrEvent, SupItem, \
23
                            HostGroup, ServiceGroup, StateName, User
23
                                SupItemGroup, StateName, User
24 24
from vigilo.models.functions import sql_escape_like
25 25
from vigilo.models.tables.secondary_tables import EVENTSAGGREGATE_TABLE
26 26

  
......
55 55
        }, error_handler=process_form_errors)
56 56
    @expose('events_table.html')
57 57
    @require(Any(not_anonymous(), msg=l_("You need to be authenticated")))
58
    def default(self, page=1, hostgroup=None, servicegroup=None,
58
    def default(self, page=1, supitemgroup=None,
59 59
            host=None, service=None, output=None, trouble_ticket=None,
60 60
            from_date=None, to_date=None, *argv, **krgv):
61 61
        """
......
101 101
            'tt': '',
102 102
            'from_date': '',
103 103
            'to_date': '',
104
            'hostgroup': '',
105
            'servicegroup': '',
104
            'supitemgroup': '',
106 105
        }
107 106

  
108 107
        # Application des filtres si nécessaire
109
        if hostgroup:
110
            search['hostgroup'] = hostgroup
111
            hostgroup = sql_escape_like(hostgroup)
112
            aggregates.add_join((HostGroup, HostGroup.idgroup == \
113
                aggregates.items.c.idhostgroup))
114
            aggregates.add_filter(HostGroup.name.ilike('%%%s%%' % hostgroup))
115

  
116
        if servicegroup:
117
            search['servicegroup'] = servicegroup
118
            servicegroup = sql_escape_like(servicegroup)
119
            aggregates.add_join((ServiceGroup, ServiceGroup.idgroup == \
120
                aggregates.items.c.idservicegroup))
108
        if supitemgroup:
109
            search['supitemgroup'] = supitemgroup
110
            supitemgroup = sql_escape_like(supitemgroup)
111
            aggregates.add_join((SupItemGroup, SupItemGroup.idgroup == \
112
                aggregates.items.c.idsupitemgroup))
121 113
            aggregates.add_filter(
122
                ServiceGroup.name.ilike('%%%s%%' % servicegroup))
114
                SupItemGroup.name.ilike('%%%s%%' % supitemgroup))
123 115

  
124 116
        if host:
125 117
            search['host'] = host
......
279 271
                'tt': '',
280 272
                'from_date': '',
281 273
                'to_date': '',
282
                'hostgroup': '',
283
                'servicegroup': '',
274
                'supitemgroup': '',
284 275
            },
285 276
           refresh_times=config['vigiboard_refresh_times'],
286 277
        )
......
360 351
                'tt': '',
361 352
                'from_date': '',
362 353
                'to_date': '',
363
                'hostgroup': '',
364
                'servicegroup': '',
354
                'supitemgroup': '',
365 355
            },
366 356
           refresh_times=config['vigiboard_refresh_times'],
367 357
        )
......
441 431
                'tt': '',
442 432
                'from_date': '',
443 433
                'to_date': '',
444
                'hostgroup': '',
445
                'servicegroup': '',
434
                'supitemgroup': '',
446 435
            },
447 436
            refresh_times=config['vigiboard_refresh_times'],
448 437
        )
vigiboard/controllers/vigiboardrequest.py
14 14
from vigilo.models.session import DBSession
15 15
from vigilo.models.tables import Event, CorrEvent, EventHistory, \
16 16
                        Host, LowLevelService, StateName
17
from vigilo.models.tables.secondary_tables import HOST_GROUP_TABLE, \
18
                                            SERVICE_GROUP_TABLE
17
from vigilo.models.tables.secondary_tables import SUPITEM_GROUP_TABLE
19 18
from vigiboard.widgets.edit_event import create_edit_event_form, EditEventForm
20 19
from vigiboard.widgets.search_form import create_search_form, SearchForm
21 20
from vigiboard.controllers.plugins import VigiboardRequestPlugin
......
56 55
        lang = lang.replace('_', '-')
57 56
        lang = lang.split('-')[0]
58 57

  
59
        self.user_groups = user.groups
58
        self.user_groups = user.supitemgroups
60 59
        self.lang = lang
61 60
        self.generaterq = False
62
        
61

  
62
        # Sélectionne tous les IDs des services auxquels
63
        # l'utilisateur a accès.
63 64
        lls_query = DBSession.query(
64 65
            LowLevelService.idservice.label("idsupitem"),
65 66
            LowLevelService.servicename.label("servicename"),
66 67
            Host.name.label("hostname"),
67
            SERVICE_GROUP_TABLE.c.idgroup.label("idservicegroup"),
68
            HOST_GROUP_TABLE.c.idgroup.label("idhostgroup"),
68
            SUPITEM_GROUP_TABLE.c.idgroup.label("idsupitemgroup"),
69 69
        ).join(
70
           (Host, Host.idhost == LowLevelService.idhost),
70
            (Host, Host.idhost == LowLevelService.idhost),
71 71
        ).outerjoin(
72
            (HOST_GROUP_TABLE, 
73
                HOST_GROUP_TABLE.c.idhost == LowLevelService.idhost),
74
            (SERVICE_GROUP_TABLE, 
75
                SERVICE_GROUP_TABLE.c.idservice == LowLevelService.idservice),
76
        ).filter(
77
            or_(
78
                HOST_GROUP_TABLE.c.idgroup.in_(self.user_groups),
79
                SERVICE_GROUP_TABLE.c.idgroup.in_(self.user_groups),
72
            (SUPITEM_GROUP_TABLE,
73
                or_(
74
                    SUPITEM_GROUP_TABLE.c.idsupitem == \
75
                        LowLevelService.idhost,
76
                    SUPITEM_GROUP_TABLE.c.idsupitem == \
77
                        LowLevelService.idservice,
78
                )
80 79
            ),
80
        ).filter(
81
            SUPITEM_GROUP_TABLE.c.idgroup.in_(self.user_groups)
81 82
        )
82
               
83

  
84
        # Sélectionne tous les IDs des hôtes auxquels
85
        # l'utilisateur a accès.
83 86
        host_query = DBSession.query(
84 87
            Host.idhost.label("idsupitem"),
85 88
            expr_null().label("servicename"),
86 89
            Host.name.label("hostname"),
87
            expr_null().label("idservicegroup"),
88
            HOST_GROUP_TABLE.c.idgroup.label('idhostgroup'),
89
        ).join((HOST_GROUP_TABLE, HOST_GROUP_TABLE.c.idhost == Host.idhost)
90
        ).filter(HOST_GROUP_TABLE.c.idgroup.label('idhostgroup'
91
            ).in_(self.user_groups),
90
            SUPITEM_GROUP_TABLE.c.idgroup.label('idsupitemgroup'),
91
        ).join(
92
            (SUPITEM_GROUP_TABLE, SUPITEM_GROUP_TABLE.c.idsupitem == \
93
                Host.idhost),
94
        ).filter(
95
            SUPITEM_GROUP_TABLE.c.idgroup.in_(self.user_groups),
92 96
        )
93 97

  
94
        # Object Selectable renvoyant des informations sur un supitem
98
        # Objet Selectable renvoyant des informations sur un SupItem
95 99
        # concerné par une alerte, avec prise en compte des droits d'accès.
96 100
        # On est obligés d'utiliser sqlalchemy.sql.expression.union
97 101
        # pour indiquer à SQLAlchemy de NE PAS regrouper les tables
vigiboard/tests/functional/plugins/test_plugin_hls.py
6 6
from nose.tools import assert_equal
7 7

  
8 8
from vigilo.models.session import DBSession
9
from vigilo.models.tables import Permission, StateName, \
10
                            HostGroup, Host, HighLevelService, \
9
from vigilo.models.tables import Permission, StateName, GroupHierarchy, \
10
                            SupItemGroup, Host, HighLevelService, \
11 11
                            Event, CorrEvent, ImpactedPath, ImpactedHLS
12 12
from vigiboard.tests import TestController
13 13

  
......
15 15
    """ Peuple la base de données. """
16 16

  
17 17
    # On ajoute un groupe d'hôtes
18
    hostmanagers = HostGroup(name = u'managersgroup')
18
    hostmanagers = SupItemGroup(name=u'managersgroup')
19 19
    DBSession.add(hostmanagers)
20 20
    DBSession.flush()
21 21

  
22
    DBSession.add(GroupHierarchy(
23
        parent=hostmanagers,
24
        child=hostmanagers,
25
        hops=0,
26
    ))
27

  
22 28
    # On lui octroie les permissions
23 29
    manage_perm = Permission.by_permission_name(u'manage')
24 30
    hostmanagers.permissions.append(manage_perm)
......
37 43
    DBSession.add(host)
38 44

  
39 45
    # On affecte cet hôte au groupe précédemment créé.
40
    hostmanagers.hosts.append(host)
46
    hostmanagers.supitems.append(host)
41 47
    DBSession.flush()
42 48

  
43 49
    # On ajoute un évènement causé par cet hôte.
......
236 242
            extra_environ={'REMOTE_USER': 'manager'})
237 243
        # On vérifie que le plugin retourne bien les 4 HLS impactés.
238 244
        assert_equal(resp.json, {"services": ['HLS12', 'HLS22']})
239
        
245

  
vigiboard/tests/functional/test_correvents_table.py
9 9
import transaction
10 10

  
11 11
from vigilo.models.session import DBSession
12
from vigilo.models.tables import Event, CorrEvent, \
13
                            Permission, StateName, \
14
                            Host, HostGroup, LowLevelService
12
from vigilo.models.tables import Event, CorrEvent, GroupHierarchy, \
13
                            Permission, StateName, Host, SupItemGroup, \
14
                            LowLevelService
15 15
from vigiboard.tests import TestController
16 16

  
17 17
def populate_DB():
18 18
    """ Peuple la base de données. """
19 19
    # On ajoute les groupes et leurs dépendances
20
    hosteditors = HostGroup(name=u'editorsgroup')
20
    hosteditors = SupItemGroup(name=u'editorsgroup')
21 21
    DBSession.add(hosteditors)
22
    hostmanagers = HostGroup(name=u'managersgroup', parent=hosteditors)
22
    hostmanagers = SupItemGroup(name=u'managersgroup')
23 23
    DBSession.add(hostmanagers)
24 24
    DBSession.flush()
25 25

  
26
    DBSession.add(GroupHierarchy(
27
        parent=hosteditors,
28
        child=hosteditors,
29
        hops=0,
30
    ))
31
    DBSession.add(GroupHierarchy(
32
        parent=hostmanagers,
33
        child=hostmanagers,
34
        hops=0,
35
    ))
36
    DBSession.add(GroupHierarchy(
37
        parent=hosteditors,
38
        child=hostmanagers,
39
        hops=1,
40
    ))
41
    DBSession.flush()
42

  
26 43
    manage_perm = Permission.by_permission_name(u'manage')
27 44
    edit_perm = Permission.by_permission_name(u'edit')
28 45

  
......
46 63
    DBSession.add(editorhost)
47 64

  
48 65
    # Affectation des hôtes aux groupes.
49
    hosteditors.hosts.append(editorhost)
50
    hostmanagers.hosts.append(managerhost)
66
    hosteditors.supitems.append(editorhost)
67
    hostmanagers.supitems.append(managerhost)
51 68
    DBSession.flush()
52 69

  
53 70
    # Création des services techniques de test.
vigiboard/tests/functional/test_details_plugin.py
9 9

  
10 10
from vigiboard.tests import TestController
11 11
from vigilo.models.session import DBSession
12
from vigilo.models.tables import ServiceGroup, HostGroup, \
12
from vigilo.models.tables import SupItemGroup, GroupHierarchy, \
13 13
                            Host, Permission, StateName, \
14 14
                            LowLevelService, Event, CorrEvent
15 15

  
......
27 27
    """
28 28
    timestamp = datetime.now()
29 29

  
30
    hostgroup = HostGroup(
31
        name=u'foo',
32
    )
30
    hostgroup = SupItemGroup(name=u'foo')
33 31
    DBSession.add(hostgroup)
34 32

  
33
    DBSession.add(GroupHierarchy(
34
        parent=hostgroup,
35
        child=hostgroup,
36
        hops=0,
37
    ))
38

  
35 39
    host = Host(
36 40
        name=u'bar',
37 41
        checkhostcmd=u'',
......
46 50
    DBSession.add(host)
47 51
    DBSession.flush()
48 52

  
49
    hostgroup.hosts.append(host)
53
    hostgroup.supitems.append(host)
50 54
    DBSession.flush()
51 55

  
52
    servicegroup = ServiceGroup(
53
        name=u'foo',
54
    )
56
    servicegroup = SupItemGroup(name=u'bar')
55 57
    DBSession.add(servicegroup)
56 58

  
59
    DBSession.add(GroupHierarchy(
60
        parent=servicegroup,
61
        child=servicegroup,
62
        hops=0,
63
    ))
64

  
57 65
    service = LowLevelService(
58 66
        host=host,
59 67
        command=u'',
......
64 72
    DBSession.add(service)
65 73
    DBSession.flush()
66 74

  
67
    servicegroup.services.append(service)
75
    servicegroup.supitems.append(service)
68 76
    DBSession.flush()
69 77

  
70 78
    event = Event(
......
101 109
        """Dialogue des détails avec un LLS et les bons droits."""
102 110
        hostgroup, idcorrevent, idcause = insert_deps(True)
103 111
        manage = Permission.by_permission_name(u'manage')
104
        manage.hostgroups.append(hostgroup)
112
        manage.supitemgroups.append(hostgroup)
105 113
        DBSession.flush()
106 114
        transaction.commit()
107 115

  
......
130 138
        """Dialogue des détails avec un hôte et les bons droits."""
131 139
        hostgroup, idcorrevent, idcause = insert_deps(False)
132 140
        manage = Permission.by_permission_name(u'manage')
133
        manage.hostgroups.append(hostgroup)
141
        manage.supitemgroups.append(hostgroup)
134 142
        DBSession.flush()
135 143
        transaction.commit()
136 144

  
vigiboard/tests/functional/test_history_table.py
11 11

  
12 12
from vigilo.models.session import DBSession
13 13
from vigilo.models.tables import Event, EventHistory, CorrEvent, \
14
                            Permission, StateName, \
15
                            Host, HostGroup, LowLevelService, ServiceGroup
14
                            Permission, StateName, GroupHierarchy, \
15
                            Host, SupItemGroup, LowLevelService
16 16
from vigiboard.tests import TestController
17 17

  
18 18
def populate_DB():
19 19
    """ Peuple la base de données. """
20 20
    # On ajoute un groupe d'hôtes et un groupe de services.
21
    hostmanagers = HostGroup(name = u'managersgroup')
22
    DBSession.add(hostmanagers)
23
    servicemanagers = ServiceGroup(name = u'managersgroup')
24
    DBSession.add(servicemanagers)
21
    supitemmanagers = SupItemGroup(name=u'managersgroup')
22
    DBSession.add(supitemmanagers)
25 23
    DBSession.flush()
26 24

  
25
    DBSession.add(GroupHierarchy(
26
        parent=supitemmanagers,
27
        child=supitemmanagers,
28
        hops=0,
29
    ))
30

  
27 31
    # On ajoute la permission 'manage' à ces deux groupes.
28 32
    manage_perm = Permission.by_permission_name(u'manage')
29
    hostmanagers.permissions.append(manage_perm)
30
    servicemanagers.permissions.append(manage_perm)
33
    supitemmanagers.permissions.append(manage_perm)
31 34
    DBSession.flush()
32 35

  
33 36
    # On crée un hôte de test, et on l'ajoute au groupe d'hôtes.
......
41 44
        weight = 42,
42 45
    )
43 46
    DBSession.add(managerhost)
44
    hostmanagers.hosts.append(managerhost)
47
    supitemmanagers.supitems.append(managerhost)
45 48
    DBSession.flush()
46 49

  
47 50
    # On crée un services de bas niveau, et on l'ajoute au groupe de services.
......
53 56
        weight = 42,
54 57
    )
55 58
    DBSession.add(managerservice)
56
    servicemanagers.services.append(managerservice)
59
    supitemmanagers.supitems.append(managerservice)
57 60
    DBSession.flush()
58 61
    
59 62
    return (managerhost, managerservice)
vigiboard/tests/functional/test_raw_events_table.py
10 10

  
11 11
from vigilo.models.session import DBSession
12 12
from vigilo.models.tables import Event, EventHistory, CorrEvent, \
13
                            Permission, StateName, \
14
                            Host, HostGroup, LowLevelService, ServiceGroup
13
                            Permission, StateName, GroupHierarchy, \
14
                            Host, LowLevelService, SupItemGroup
15 15
from vigiboard.tests import TestController
16 16

  
17 17
def populate_DB(caused_by_service):
18 18
    """ Peuple la base de données. """
19 19
    # On ajoute un groupe d'hôtes et un groupe de services.
20
    hostmanagers = HostGroup(name = u'managersgroup')
21
    DBSession.add(hostmanagers)
22
    servicemanagers = ServiceGroup(name = u'managersgroup')
23
    DBSession.add(servicemanagers)
20
    supitemmanagers = SupItemGroup(name = u'managersgroup')
21
    DBSession.add(supitemmanagers)
22
    DBSession.flush()
23

  
24
    DBSession.add(GroupHierarchy(
25
        parent=supitemmanagers,
26
        child=supitemmanagers,
27
        hops=0,
28
    ))
24 29
    DBSession.flush()
25 30

  
26 31
    # On ajoute la permission 'manage' à ces deux groupes.
27 32
    manage_perm = Permission.by_permission_name(u'manage')
28
    hostmanagers.permissions.append(manage_perm)
29
    servicemanagers.permissions.append(manage_perm)
33
    supitemmanagers.permissions.append(manage_perm)
30 34
    DBSession.flush()
31 35

  
32 36
    # On crée un hôte de test, et on l'ajoute au groupe d'hôtes.
......
40 44
        weight = 42,
41 45
    )
42 46
    DBSession.add(managerhost)
43
    hostmanagers.hosts.append(managerhost)
47
    supitemmanagers.supitems.append(managerhost)
44 48
    DBSession.flush()
45 49

  
46 50
    # On crée un services de bas niveau, et on l'ajoute au groupe de services.
......
52 56
        weight = 42,
53 57
    )
54 58
    DBSession.add(managerservice)
55
    servicemanagers.services.append(managerservice)
59
    supitemmanagers.supitems.append(managerservice)
56 60
    DBSession.flush()
57 61

  
58 62
    if caused_by_service:
......
94 98

  
95 99
def add_masked_event(idcorrevent):
96 100
    transaction.begin()
97
    hostmanagers = HostGroup.by_group_name(u'managersgroup')
101
    hostmanagers = SupItemGroup.by_group_name(u'managersgroup')
98 102
    nb_hosts = DBSession.query(Host).count()
99 103

  
100 104
    masked_host = Host(
......
107 111
        weight = 42,
108 112
    )
109 113
    DBSession.add(masked_host)
110
    hostmanagers.hosts.append(masked_host)
114
    hostmanagers.supitems.append(masked_host)
111 115
    DBSession.flush()
112 116

  
113 117
    event = Event(
vigiboard/tests/functional/test_root.py
17 17

  
18 18
from vigilo.models.session import DBSession
19 19
from vigilo.models.tables import Event, EventHistory, CorrEvent, \
20
                            Permission, StateName, \
21
                            Host, HostGroup, ServiceGroup, LowLevelService
20
                            Permission, StateName, GroupHierarchy, \
21
                            Host, SupItemGroup, LowLevelService
22 22

  
23 23
from vigiboard.tests import TestController
24 24

  
25 25
def populate_DB():
26 26
    """ Peuple la base de données. """
27 27
    # On ajoute un groupe d'hôtes et un groupe de services.
28
    hostmanagers = HostGroup(name = u'managersgroup')
29
    DBSession.add(hostmanagers)
30
    servicemanagers = ServiceGroup(name = u'managersgroup')
31
    DBSession.add(servicemanagers)
28
    supitemmanagers = SupItemGroup(name = u'managersgroup')
29
    DBSession.add(supitemmanagers)
30
    DBSession.flush()
31

  
32
    DBSession.add(GroupHierarchy(
33
        parent=supitemmanagers,
34
        child=supitemmanagers,
35
        hops=0,
36
    ))
32 37
    DBSession.flush()
33 38

  
34 39
    # On ajoute la permission 'manage' à ces deux groupes.
35 40
    manage_perm = Permission.by_permission_name(u'manage')
36
    hostmanagers.permissions.append(manage_perm)
37
    servicemanagers.permissions.append(manage_perm)
41
    supitemmanagers.permissions.append(manage_perm)
38 42
    DBSession.flush()
39 43

  
40 44
    # On crée un 2 hôtes, et on les ajoute au groupe d'hôtes.
......
48 52
        weight = 42,
49 53
    )
50 54
    DBSession.add(host1)
51
    hostmanagers.hosts.append(host1)
55
    supitemmanagers.supitems.append(host1)
52 56
    host2 = Host(
53 57
        name = u'host2',      
54 58
        checkhostcmd = u'halt',
......
59 63
        weight = 42,
60 64
    )
61 65
    DBSession.add(host2)
62
    hostmanagers.hosts.append(host2)
66
    supitemmanagers.supitems.append(host2)
63 67
    DBSession.flush()
64 68

  
65 69
    # On crée 2 services de bas niveau, et on les ajoute au groupe de services.
......
71 75
        weight = 42,
72 76
    )
73 77
    DBSession.add(service1)
74
    servicemanagers.services.append(service1)
78
    supitemmanagers.supitems.append(service1)
75 79
    service2 = LowLevelService(
76 80
        host = host2,
77 81
        servicename = u'service2',
......
80 84
        weight = 42,
81 85
    )
82 86
    DBSession.add(service2)
83
    servicemanagers.services.append(service2)
87
    supitemmanagers.supitems.append(service2)
84 88
    DBSession.flush()
85 89
    
86 90
    return ([host1, host2], [service1, service2])
vigiboard/tests/functional/test_search_form_host.py
8 8

  
9 9
from vigiboard.tests import TestController
10 10
from vigilo.models.session import DBSession
11
from vigilo.models.tables import HostGroup, Host, Permission, \
12
                                    Event, CorrEvent, StateName
11
from vigilo.models.tables import SupItemGroup, Host, Permission, \
12
                                    Event, CorrEvent, StateName, \
13
                                    GroupHierarchy
13 14

  
14 15
def insert_deps():
15 16
    """Insère les dépendances nécessaires aux tests."""
16 17
    timestamp = datetime.now()
17 18

  
18
    hostgroup = HostGroup(
19
    hostgroup = SupItemGroup(
19 20
        name=u'foo',
20 21
    )
21 22
    DBSession.add(hostgroup)
22 23
    DBSession.flush()
23 24

  
25
    DBSession.add(GroupHierarchy(
26
        parent=hostgroup,
27
        child=hostgroup,
28
        hops=0,
29
    ))
30
    DBSession.flush()
31

  
24 32
    host = Host(
25 33
        name=u'bar',
26 34
        checkhostcmd=u'',
......
35 43
    DBSession.add(host)
36 44
    DBSession.flush()
37 45

  
38
    hostgroup.hosts.append(host)
46
    hostgroup.supitems.append(host)
39 47
    DBSession.flush()
40 48

  
41 49
    event = Event(
......
71 79
        # pour lesquel l'utilisateur a les permissions.
72 80
        hostgroup = insert_deps()
73 81
        manage = Permission.by_permission_name(u'manage')
74
        manage.hostgroups.append(hostgroup)
82
        manage.supitemgroups.append(hostgroup)
75 83
        DBSession.flush()
76 84
        transaction.commit()
77 85

  
vigiboard/tests/functional/test_search_form_hostgroup.py
8 8

  
9 9
from vigiboard.tests import TestController
10 10
from vigilo.models.session import DBSession
11
from vigilo.models.tables import HostGroup, Host, Permission, \
12
                                    Event, CorrEvent, StateName
11
from vigilo.models.tables import SupItemGroup, Host, Permission, StateName, \
12
                                    Event, CorrEvent, GroupHierarchy
13 13

  
14 14
def insert_deps():
15 15
    """Insère les dépendances nécessaires aux tests."""
16 16
    timestamp = datetime.now()
17 17

  
18
    hostgroup = HostGroup(
18
    hostgroup = SupItemGroup(
19 19
        name=u'foo',
20 20
    )
21 21
    DBSession.add(hostgroup)
22 22
    DBSession.flush()
23 23

  
24
    DBSession.add(GroupHierarchy(
25
        parent=hostgroup,
26
        child=hostgroup,
27
        hops=0,
28
    ))
29
    DBSession.flush()
30

  
24 31
    host = Host(
25 32
        name=u'bar',
26 33
        checkhostcmd=u'',
......
35 42
    DBSession.add(host)
36 43
    DBSession.flush()
37 44

  
38
    hostgroup.hosts.append(host)
45
    hostgroup.supitems.append(host)
39 46
    DBSession.flush()
40 47

  
41 48
    event = Event(
......
73 80
        # ayant la permission 'manage' de voir cette alerte.
74 81
        hostgroup = insert_deps()
75 82
        manage = Permission.by_permission_name(u'manage')
76
        manage.hostgroups.append(hostgroup)
83
        manage.supitemgroups.append(hostgroup)
77 84
        DBSession.flush()
78 85
        transaction.commit()
79 86

  
80 87
        # On envoie une requête avec recherche sur le groupe d'hôtes créé,
81 88
        # on s'attend à recevoir 1 résultat.
82
        response = self.app.get('/?hostgroup=foo',
89
        response = self.app.get('/?supitemgroup=foo',
83 90
            extra_environ={'REMOTE_USER': 'manager'})
84 91

  
85 92
        # Il doit y avoir 1 seule ligne de résultats.
......
96 103
        """Teste la recherche par hostgroup sur un groupe inexistant."""
97 104
        # On envoie une requête avec recherche sur un groupe d'hôtes
98 105
        # qui n'existe pas, on s'attend à n'obtenir aucun résultat.
99
        response = self.app.get('/?hostgroup=foot',
106
        response = self.app.get('/?supitemgroup=foot',
100 107
            extra_environ={'REMOTE_USER': 'manager'})
101 108

  
102 109
        # Il doit y avoir 1 seule ligne de résultats.
......
123 130
        # On envoie une requête avec recherche sur le groupe d'hôtes créé,
124 131
        # mais avec un utilisateur ne disposant pas des permissions adéquates.
125 132
        # On s'attend à n'obtenir aucun résultat.
126
        response = self.app.get('/?hostgroup=foo',
133
        response = self.app.get('/?supitemgroup=foo',
127 134
            extra_environ={'REMOTE_USER': 'manager'})
128 135

  
129 136
        # Il doit y avoir 1 seule ligne de résultats.
vigiboard/tests/functional/test_search_form_misc.py
9 9

  
10 10
from vigiboard.tests import TestController
11 11
from vigilo.models.session import DBSession
12
from vigilo.models.tables import HostGroup, Host, Permission, \
13
                                   Event, CorrEvent, StateName
12
from vigilo.models.tables import SupItemGroup, Host, Permission, \
13
                                   Event, CorrEvent, StateName, GroupHierarchy
14 14

  
15 15
def insert_deps():
16 16
    """Insère les dépendances nécessaires aux tests."""
......
30 30
    DBSession.add(host)
31 31
    DBSession.flush()
32 32

  
33
    hostgroup = HostGroup(
34
        name=u'foo',
35
    )
36
    hostgroup.hosts.append(host)
33
    hostgroup = SupItemGroup(name=u'foo')
34
    hostgroup.supitems.append(host)
37 35
    DBSession.add(hostgroup)
38 36
    DBSession.flush()
39 37

  
38
    DBSession.add(GroupHierarchy(
39
        parent=hostgroup,
40
        child=hostgroup,
41
        hops=0,
42
    ))
43
    DBSession.flush()
44

  
40 45
    event = Event(
41 46
        supitem=host,
42 47
        timestamp=timestamp,
......
61 66

  
62 67
    # On attribut les permissions.
63 68
    manage = Permission.by_permission_name(u'manage')
64
    manage.hostgroups.append(hostgroup)
69
    manage.supitemgroups.append(hostgroup)
65 70
    DBSession.flush()
66 71
    return timestamp
67 72

  
vigiboard/tests/functional/test_search_form_service.py
8 8

  
9 9
from vigiboard.tests import TestController
10 10
from vigilo.models.session import DBSession
11
from vigilo.models.tables import ServiceGroup, HostGroup, \
11
from vigilo.models.tables import SupItemGroup, GroupHierarchy, \
12 12
                                    Host, Permission, StateName, \
13 13
                                    LowLevelService, Event, CorrEvent
14 14

  
......
16 16
    """Insère les dépendances nécessaires aux tests."""
17 17
    timestamp = datetime.now()
18 18

  
19
    hostgroup = HostGroup(
20
        name=u'foo',
21
    )
19
    hostgroup = SupItemGroup(name=u'foo')
22 20
    DBSession.add(hostgroup)
23 21

  
22
    DBSession.add(GroupHierarchy(
23
        parent=hostgroup,
24
        child=hostgroup,
25
        hops=0,
26
    ))
27
    DBSession.flush()
28

  
24 29
    host = Host(
25 30
        name=u'bar',
26 31
        checkhostcmd=u'',
......
35 40
    DBSession.add(host)
36 41
    DBSession.flush()
37 42

  
38
    hostgroup.hosts.append(host)
43
    hostgroup.supitems.append(host)
39 44
    DBSession.flush()
40 45

  
41
    servicegroup = ServiceGroup(
42
        name=u'foo',
43
    )
46
    servicegroup = SupItemGroup(name=u'bar')
44 47
    DBSession.add(servicegroup)
45 48

  
49
    DBSession.add(GroupHierarchy(
50
        parent=servicegroup,
51
        child=servicegroup,
52
        hops=0,
53
    ))
54
    DBSession.flush()
55

  
46 56
    service = LowLevelService(
47 57
        host=host,
48 58
        command=u'',
......
53 63
    DBSession.add(service)
54 64
    DBSession.flush()
55 65

  
56
    servicegroup.services.append(service)
66
    servicegroup.supitems.append(service)
57 67
    DBSession.flush()
58 68

  
59 69
    event = Event(
......
82 92
class TestSearchFormService(TestController):
83 93
    """Teste la récupération d'événements selon le groupe de services."""
84 94

  
85
    def test_search_service_when_allowed_by_hostgroup(self):
95
    def test_search_service_when_allowed_by_host(self):
86 96
        """
87 97
        Teste la recherche par service avec des droits implicites
88 98
        (droits accordés car l'utilisateur a les droits sur l'hôte).
......
95 105
        print "Adding permission for 'manager' on host group '%s'" % \
96 106
            hostgroup.name
97 107
        manage = Permission.by_permission_name(u'manage')
98
        manage.hostgroups.append(hostgroup)
108
        manage.supitemgroups.append(hostgroup)
99 109
        DBSession.flush()
100 110
        transaction.commit()
101 111

  
......
114 124
        print "There are %d columns in the result set" % len(cols)
115 125
        assert_true(len(cols) > 1)
116 126

  
117
    def test_search_service_when_allowed_by_servicegroup(self):
127
    def test_search_service_when_allowed_by_service(self):
118 128
        """
119 129
        Teste la recherche par service avec des droits explicites
120 130
        (droits accordés car l'utilisateur a explicitement les droits
......
127 137
        print "Adding permission for 'manager' on service group '%s'" % \
128 138
            servicegroup.name
129 139
        manage = Permission.by_permission_name(u'manage')
130
        manage.servicegroups.append(servicegroup)
140
        manage.supitemgroups.append(servicegroup)
131 141
        DBSession.flush()
132 142
        transaction.commit()
133 143

  
vigiboard/tests/functional/test_search_form_servicegroup.py
8 8

  
9 9
from vigiboard.tests import TestController
10 10
from vigilo.models.session import DBSession
11
from vigilo.models.tables import ServiceGroup, Host, Permission, Event, \
12
                                    LowLevelService, CorrEvent, StateName
11
from vigilo.models.tables import SupItemGroup, Host, Permission, Event, \
12
                                    LowLevelService, CorrEvent, StateName, \
13
                                    GroupHierarchy
13 14

  
14 15
def insert_deps():
15 16
    """Insère les dépendances nécessaires aux tests."""
......
29 30
    DBSession.add(host)
30 31
    DBSession.flush()
31 32

  
32
    servicegroup = ServiceGroup(
33
    servicegroup = SupItemGroup(
33 34
        name=u'foo',
34 35
    )
35 36
    DBSession.add(servicegroup)
36 37

  
38
    DBSession.add(GroupHierarchy(
39
        parent=servicegroup,
40
        child=servicegroup,
41
        hops=0,
42
    ))
43
    DBSession.flush()
44

  
37 45
    service = LowLevelService(
38 46
        host=host,
39 47
        command=u'',
......
44 52
    DBSession.add(service)
45 53
    DBSession.flush()
46 54

  
47
    servicegroup.services.append(service)
55
    servicegroup.supitems.append(service)
48 56
    event = Event(
49 57
        supitem=service,
50 58
        timestamp=timestamp,
......
80 88
        # ayant la permission 'manage' de voir cette alerte.
81 89
        servicegroup = insert_deps()
82 90
        manage = Permission.by_permission_name(u'manage')
83
        manage.servicegroups.append(servicegroup)
91
        manage.supitemgroups.append(servicegroup)
84 92
        DBSession.flush()
85 93
        transaction.commit()
86 94

  
87 95
        # On envoie une requête avec recherche sur le groupe
88 96
        # de services créé, on s'attend à recevoir 1 résultat.
89
        response = self.app.get('/?servicegroup=foo',
97
        response = self.app.get('/?supitemgroup=foo',
90 98
            extra_environ={'REMOTE_USER': 'manager'})
91 99

  
92 100
        # Il doit y avoir 1 seule ligne de résultats.
......
103 111
        """Teste la recherche par servicegroup sur un groupe inexistant."""
104 112
        # On envoie une requête avec recherche sur un groupe de services
105 113
        # qui n'existe pas, on s'attend à n'obtenir aucun résultat.
106
        response = self.app.get('/?servicegroup=foot',
114
        response = self.app.get('/?supitemgroup=foot',
107 115
            extra_environ={'REMOTE_USER': 'manager'})
108 116

  
109 117
        # Il doit y avoir 1 seule ligne de résultats.
......
130 138
        # On envoie une requête avec recherche sur le groupe de services
131 139
        # services créé, mais avec un utilisateur ne disposant pas des
132 140
        # permissions adéquates. On s'attend à n'obtenir aucun résultat.
133
        response = self.app.get('/?servicegroup=foo',
141
        response = self.app.get('/?supitemgroup=foo',
134 142
            extra_environ={'REMOTE_USER': 'manager'})
135 143

  
136 144
        # Il doit y avoir 1 seule ligne de résultats.
vigiboard/tests/functional/test_userutils.py
7 7
from nose.tools import assert_true
8 8

  
9 9
from vigilo.models.session import DBSession
10
from vigilo.models.tables import HostGroup, Permission, User
10
from vigilo.models.tables import SupItemGroup, Permission, User, GroupHierarchy
11 11
from vigiboard.tests import TestController
12 12

  
13 13
class TestGroupPermissionsInheritance(TestController):
......
18 18
        """
19 19

  
20 20
        # Création de 2 groupes d'utilisateurs.
21
        hosteditors = HostGroup(name=u'hosteditors', parent=None)
21
        hosteditors = SupItemGroup(name=u'hosteditors')
22 22
        DBSession.add(hosteditors)
23 23

  
24
        hostmanagers = HostGroup(name=u'hostmanagers', parent=hosteditors)
24
        hostmanagers = SupItemGroup(name=u'hostmanagers')
25 25
        DBSession.add(hostmanagers)
26 26

  
27
        # Hiérarchie des groupes.
28
        DBSession.add(GroupHierarchy(
29
            parent=hosteditors,
30
            child=hosteditors,
31
            hops=0,
32
        ))
33
        DBSession.add(GroupHierarchy(
34
            parent=hostmanagers,
35
            child=hostmanagers,
36
            hops=0,
37
        ))
38
        DBSession.add(GroupHierarchy(
39
            parent=hosteditors,
40
            child=hostmanagers,
41
            hops=1,
42
        ))
43

  
27 44
        # L'attribution des permissions.
28 45
        manage_perm = Permission.by_permission_name(u'manage')
29 46
        edit_perm = Permission.by_permission_name(u'edit')
30 47

  
31
        manage_perm.hostgroups.append(hostmanagers)
32
        edit_perm.hostgroups.append(hosteditors)
48
        manage_perm.supitemgroups.append(hostmanagers)
49
        edit_perm.supitemgroups.append(hosteditors)
33 50
        DBSession.flush()
34 51
        transaction.commit()
35 52

  
......
42 59
        username = response.request.environ \
43 60
            ['repoze.who.identity'] \
44 61
            ['repoze.who.userid']
45
        grp = User.by_user_name(username).groups
62
        grp = User.by_user_name(username).supitemgroups
46 63

  
47 64
        # Permet de rafraîchir les instances.
48
        hostmanagers = DBSession.query(HostGroup).filter(
49
                            HostGroup.name==u'hostmanagers').one()
50
        hosteditors = DBSession.query(HostGroup).filter(
51
                            HostGroup.name==u'hosteditors').one()
65
        hostmanagers = DBSession.query(SupItemGroup).filter(
66
                            SupItemGroup.name==u'hostmanagers').one()
67
        hosteditors = DBSession.query(SupItemGroup).filter(
68
                            SupItemGroup.name==u'hosteditors').one()
52 69

  
53 70
        # On vérifie que la liste est correcte : le manager doit avoir accès
54 71
        # aux groupes 'hostmanagers' & 'hosteditors' (dont il hérite).
......
63 80
        username = response.request.environ \
64 81
            ['repoze.who.identity'] \
65 82
            ['repoze.who.userid']
66
        grp = User.by_user_name(username).groups
83
        grp = User.by_user_name(username).supitemgroups
67 84

  
68 85
        # L'utilisateur editor ne doit avoir accès qu'au groupe 'hosteditors'.
69 86
        assert_true(not(hostmanagers.idgroup in grp) and
vigiboard/widgets/search_form.py
25 25
    style = 'display: none'
26 26

  
27 27
    class fields(WidgetsList):
28
        hostgroup = TextField(label_text=l_('Host group'))
29
        servicegroup = TextField(label_text=l_('Service group'))
28
        supitemgroup = TextField(label_text=l_('Group'))
30 29
        host = TextField(label_text=l_('Host'))
31 30
        service = TextField(label_text=l_('Service'))
32 31
        output = TextField(label_text=l_('Output'))

Also available in: Unified diff