vigiboard / vigiboard / controllers / plugins / servicename.py @ c25a3200
History | View | Annotate | Download (1.47 KB)
1 | 15b98053 | Francois POIROTTE | # -*- coding: utf-8 -*-
|
---|---|---|---|
2 | 4febadf0 | Francois POIROTTE | # vim:set expandtab tabstop=4 shiftwidth=4:
|
3 | c25a3200 | Francois POIROTTE | # Copyright (C) 2007-2020 CS GROUP – France
|
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 le nom du service
|
8 | à l'origine de l'événement corrélé.
|
||
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.functions import sql_escape_like |
||
14 | 86662bc9 | Francois POIROTTE | from vigiboard.controllers.plugins import VigiboardRequestPlugin, ITEMS |
15 | 15b98053 | Francois POIROTTE | |
16 | class PluginServicename(VigiboardRequestPlugin): |
||
17 | 4febadf0 | Francois POIROTTE | """
|
18 | Affiche le nom du service à l'origine de l'événement corrélé.
|
||
19 | Si l'événement corrélé porte directement sur un hôte,
|
||
20 | alors le nom de service vaut None.
|
||
21 | """
|
||
22 | 27140946 | Francois POIROTTE | def get_search_fields(self): |
23 | return [
|
||
24 | twf.TextField( |
||
25 | 'service',
|
||
26 | label_text=l_('Service'),
|
||
27 | 02c4a1e7 | Francois POIROTTE | validator=twf.validators.UnicodeString(if_missing=None),
|
28 | 27140946 | Francois POIROTTE | ) |
29 | ] |
||
30 | |||
31 | 86662bc9 | Francois POIROTTE | def handle_search_fields(self, query, search, state, subqueries): |
32 | if state != ITEMS:
|
||
33 | return
|
||
34 | |||
35 | 27140946 | Francois POIROTTE | if search.get('service'): |
36 | service = sql_escape_like(search['service'])
|
||
37 | query.add_filter(query.items.c.servicename.ilike(service)) |
||
38 | a2fa6a5b | Francois POIROTTE | |
39 | def get_data(self, event): |
||
40 | return {
|
||
41 | 'servicename': event.servicename,
|
||
42 | } |
||
43 | 5a845c93 | Vincent QUEMENER | |
44 | def get_sort_criterion(self, query, column): |
||
45 | if column == 'servicename': |
||
46 | return query.items.c.servicename
|
||
47 | return None |