Project

General

Profile

Revision 3e5985c8

ID3e5985c8964b70936a81a9ffa21d021f2ae47f49
Parent bc31210c
Child 04a8f09e

Added by Francois POIROTTE over 13 years ago

Implémente le plugin "masked_events".

Ce plugin permet d'afficher le nombre d'éléments masqués par l'événement corrélé
dans VigiBoard. S'il y a des événements masqués, un lien est ajouté qui permet
ensuite de voir la liste des événements masqués.
Le plugin est désactivé par défaut car son intérêt immédiat n'est pas évident.
Voir le ticket #558.

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

View differences:

vigiboard/config/app_cfg.py
122 122
    'hostname',
123 123
    'servicename',
124 124
    'output',
125
    'masked_events',
125
#    'masked_events',
126 126
    'hls',
127 127
    'status',
128 128
#    'test',
vigiboard/controllers/plugins/masked_events.py
22 22
Un plugin pour VigiBoard qui ajoute une colonne avec le nombre
23 23
d'événements masqués d'un événement corrélé.
24 24
"""
25
from sqlalchemy.sql import functions as func
25 26
from vigiboard.controllers.plugins import VigiboardRequestPlugin
26 27

  
28
from vigilo.models.session import DBSession
29
from vigilo.models.tables.secondary_tables import EVENTSAGGREGATE_TABLE
30

  
27 31
class PluginMaskedEvents(VigiboardRequestPlugin):
28 32
    """
29 33
    Affiche le nombre d'événements masqués par l'événement corrélé.
30 34
    """
35
    def get_bulk_data(self, events_ids):
36
        """
37
        Renvoie le nombre d'événements masqués par celui-ci.
38

  
39
        @param events_ids: Liste des identifiants des événements corrélés
40
            à afficher.
41
        @type events_ids: C{int}
42
        @return: Un dictionnaire associant à chaque identifiant d'évènement
43
            le nombre d'événements masqués.
44
        @rtype: C{dict}
45
        """
46
        counts = DBSession.query(
47
                func.count().label('masked'),
48
                EVENTSAGGREGATE_TABLE.c.idcorrevent
49
            ).group_by(EVENTSAGGREGATE_TABLE.c.idcorrevent
50
            ).filter(EVENTSAGGREGATE_TABLE.c.idcorrevent.in_(events_ids))
51

  
52
        res = {}
53
        for count in counts:
54
            # Il faut retirer la cause du décompte.
55
            res[count.idcorrevent] = count.masked - 1
56
        return res

Also available in: Unified diff