vigiboard / vigiboard / controllers / plugins / output.py @ c94dc931
History | View | Annotate | Download (1.35 KB)
1 | 15b98053 | Francois POIROTTE | # -*- coding: utf-8 -*-
|
---|---|---|---|
2 | a77de887 | Francois POIROTTE | # vim:set expandtab tabstop=4 shiftwidth=4:
|
3 | c94dc931 | Francois POIROTTE | # Copyright (C) 2007-2020 CS-SI
|
4 | 9b8d9497 | Francois POIROTTE | # License: GNU GPL v2 <http://www.gnu.org/licenses/gpl-2.0.html>
|
5 | a77de887 | Francois POIROTTE | |
6 | 15b98053 | Francois POIROTTE | """
|
7 | 4febadf0 | Francois POIROTTE | Un plugin pour VigiBoard qui ajoute une colonne avec la sortie
|
8 | de la commande de test exécutée par Nagios sur cet hôte/service.
|
||
9 | 15b98053 | Francois POIROTTE | """
|
10 | 27140946 | Francois POIROTTE | import tw.forms as twf |
11 | 02c4a1e7 | Francois POIROTTE | from tg.i18n import lazy_ugettext as l_ |
12 | 27140946 | Francois POIROTTE | |
13 | from vigilo.models.tables import Event |
||
14 | from vigilo.models.functions import sql_escape_like |
||
15 | 86662bc9 | Francois POIROTTE | from vigiboard.controllers.plugins import VigiboardRequestPlugin, ITEMS |
16 | 15b98053 | Francois POIROTTE | |
17 | class PluginOutput(VigiboardRequestPlugin): |
||
18 | 4febadf0 | Francois POIROTTE | """Ajoute une colonne avec le message de Nagios."""
|
19 | 27140946 | Francois POIROTTE | def get_search_fields(self): |
20 | return [
|
||
21 | twf.TextField( |
||
22 | 'output',
|
||
23 | label_text=l_('Output'),
|
||
24 | 02c4a1e7 | Francois POIROTTE | validator=twf.validators.UnicodeString(if_missing=None),
|
25 | 27140946 | Francois POIROTTE | ) |
26 | ] |
||
27 | |||
28 | 86662bc9 | Francois POIROTTE | def handle_search_fields(self, query, search, state, subqueries): |
29 | if state != ITEMS:
|
||
30 | return
|
||
31 | |||
32 | 27140946 | Francois POIROTTE | if search.get('output'): |
33 | output = sql_escape_like(search['output'])
|
||
34 | query.add_filter(Event.message.ilike(output)) |
||
35 | a2fa6a5b | Francois POIROTTE | |
36 | def get_data(self, event): |
||
37 | return {
|
||
38 | 'output': event[0].cause.message, |
||
39 | } |
||
40 | 5a845c93 | Vincent QUEMENER | |
41 | def get_sort_criterion(self, query, column): |
||
42 | if column == 'output': |
||
43 | return Event.message
|
||
44 | return None |