Revision a2fa6a5b
Export CSV alertes de VigiBoard (#954).
Permet l'export des alertes (événements corrélés) affichés à l'écran au
format CSV. L'export tient compte des critères de recherche
éventuellement appliqués.
Refs: #954.
Change-Id: I3c6639dbef9ca53043d45d8a683f5c77619af23a
Reviewed-on: https://vigilo-dev.si.c-s.fr/review/1017
Tested-by: Build system <qa@vigilo-dev.si.c-s.fr>
Reviewed-by: Thomas BURGUIERE <thomas.burguiere@c-s.fr>
vigiboard/controllers/plugins/date.py | ||
---|---|---|
22 | 22 |
Un plugin pour VigiBoard qui ajoute une colonne avec la date à laquelle |
23 | 23 |
est survenu un événement et la durée depuis laquelle l'événement est actif. |
24 | 24 |
""" |
25 |
from datetime import datetime, timedelta |
|
25 | 26 |
import tw.forms as twf |
26 | 27 |
from pylons.i18n import ugettext as _, lazy_ugettext as l_ |
27 | 28 |
from tg.i18n import get_lang |
28 | 29 |
import tg |
30 |
from babel import Locale |
|
29 | 31 |
|
32 |
from vigilo.turbogears.helpers import get_locales |
|
30 | 33 |
from vigilo.models import tables |
31 | 34 |
|
32 | 35 |
from vigiboard.controllers.plugins import VigiboardRequestPlugin, ITEMS |
... | ... | |
87 | 90 |
if search.get('to_date'): |
88 | 91 |
query.add_filter(tables.CorrEvent.timestamp_active <= |
89 | 92 |
search['to_date']) |
93 |
|
|
94 |
def get_data(self, event): |
|
95 |
state = tables.StateName.value_to_statename( |
|
96 |
event[0].cause.current_state) |
|
97 |
# La résolution maximale de Nagios est la seconde. |
|
98 |
# On supprime les microsecondes qui ne nous apportent |
|
99 |
# aucune information et fausse l'affichage dans l'export CSV |
|
100 |
# en créant un nouvel objet timedelta dérivé du premier. |
|
101 |
duration = datetime.now() - event[0].timestamp_active |
|
102 |
duration = timedelta(days=duration.days, seconds=duration.seconds) |
|
103 |
return { |
|
104 |
'state': state, |
|
105 |
'date': event[0].cause.timestamp, |
|
106 |
'duration': duration, |
|
107 |
} |
Also available in: Unified diff