Revision 3e5985c8
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
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