Project

General

Profile

Revision b2668166

IDb26681660bb603f1a29301763457450826e2c106
Parent f6ecd27a
Child e30a2449

Added by Francois POIROTTE over 6 years ago

[#1734] Recherche par adresse IP dans VigiBoard

Change-Id: I5607fc922c85be639f1ba5c2ec2a7a600aa3e42a
Refs: #1734

View differences:

app_cfg.py
115 115
    'date',
116 116
    'priority',
117 117
    'occurrences',
118
#    'address',
118 119
    'hostname',
119 120
    'servicename',
120 121
    'output',
setup.py
81 81
            'date = vigiboard.controllers.plugins.date:PluginDate',
82 82
            'priority = vigiboard.controllers.plugins.priority:PluginPriority',
83 83
            'occurrences = vigiboard.controllers.plugins.occurrences:PluginOccurrences',
84
            'address = vigiboard.controllers.plugins.address:PluginAddress',
84 85
            'hostname = vigiboard.controllers.plugins.hostname:PluginHostname',
85 86
            'servicename = vigiboard.controllers.plugins.servicename:PluginServicename',
86 87
            'output = vigiboard.controllers.plugins.output:PluginOutput',
vigiboard/controllers/plugins/address.py
1
# -*- coding: utf-8 -*-
2
# vim:set expandtab tabstop=4 shiftwidth=4:
3
# Copyright (C) 2007-2016 CS-SI
4
# License: GNU GPL v2 <http://www.gnu.org/licenses/gpl-2.0.html>
5

  
6
"""
7
Un plugin pour VigiBoard qui ajoute une colonne avec l'adresse (ex: IP)
8
de l'hôte sur lequel porte l'événement corrélé.
9
"""
10
import tw.forms as twf
11
from tg.i18n import lazy_ugettext as l_
12

  
13
from vigilo.models.functions import sql_escape_like
14
from vigiboard.controllers.plugins import VigiboardRequestPlugin, ITEMS
15

  
16
class PluginAddress(VigiboardRequestPlugin):
17
    """
18
    Ajoute une colonne avec l'adresse de l'hôte impacté.
19
    """
20
    def get_search_fields(self):
21
        return [
22
            twf.TextField(
23
                'address',
24
                label_text=l_('Address'),
25
                validator=twf.validators.String(if_missing=None),
26
            )
27
        ]
28

  
29
    def handle_search_fields(self, query, search, state, subqueries):
30
        if state != ITEMS:
31
            return
32

  
33
        if search.get('address'):
34
            address = sql_escape_like(search['address'])
35
            query.add_filter(query.items.c.address.ilike(address))
36

  
37
    def get_data(self, event):
38
        return {
39
            'address': event.address,
40
        }
41

  
42
    def get_sort_criterion(self, query, column):
43
        if column == 'address':
44
            return query.items.c.address
45
        return None
46

  
vigiboard/controllers/root.py
172 172

  
173 173
        aggregates.add_table(
174 174
            CorrEvent,
175
            aggregates.items.c.address,
175 176
            aggregates.items.c.hostname,
176 177
            aggregates.items.c.servicename
177 178
        )
vigiboard/controllers/vigiboardrequest.py
94 94
                LowLevelService.idservice.label("idsupitem"),
95 95
                LowLevelService.servicename.label("servicename"),
96 96
                Host.name.label("hostname"),
97
                Host.address.label("address"),
97 98
            ).join(
98 99
                (Host, Host.idhost == LowLevelService.idhost),
99 100
            ).distinct()
......
103 104
                Host.idhost.label("idsupitem"),
104 105
                expr_null().label("servicename"),
105 106
                Host.name.label("hostname"),
107
                Host.address.label("address"),
106 108
            ).distinct()
107 109

  
108 110
            # Application des filtres des plugins si nécessaire.
......
129 131
                UserSupItem.idsupitem,
130 132
                UserSupItem.servicename,
131 133
                UserSupItem.hostname,
134
                UserSupItem.address,
132 135
            ).filter(
133 136
                UserSupItem.username == user.user_name
134 137
            ).distinct()
......
430 433

  
431 434
    def generate_tmpl_context(self):
432 435
        """
433
        Génère et peuple la variable tmpl_context avec les Dialogs et
436
        Génère et peuple la variable tmpl_context avec les dialogues et
434 437
        formulaires nécessaire au fonctionnement de Vigiboard
435 438
        """
436 439

  

Also available in: Unified diff