vigiboard / vigiboard / config / app_cfg.py @ a2fa6a5b
History | View | Annotate | Download (4.62 KB)
1 |
# -*- coding: utf-8 -*-
|
---|---|
2 |
# vim: set fileencoding=utf-8 sw=4 ts=4 et :
|
3 |
################################################################################
|
4 |
#
|
5 |
# Copyright (C) 2007-2012 CS-SI
|
6 |
#
|
7 |
# This program is free software; you can redistribute it and/or modify
|
8 |
# it under the terms of the GNU General Public License version 2 as
|
9 |
# published by the Free Software Foundation.
|
10 |
#
|
11 |
# This program is distributed in the hope that it will be useful,
|
12 |
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
13 |
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
14 |
# GNU General Public License for more details.
|
15 |
#
|
16 |
# You should have received a copy of the GNU General Public License
|
17 |
# along with this program; if not, write to the Free Software
|
18 |
# Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
|
19 |
################################################################################
|
20 |
|
21 |
"""
|
22 |
Global configuration file for TG2-specific settings in vigiboard.
|
23 |
|
24 |
This file complements development/deployment.ini.
|
25 |
|
26 |
Please note that **all the argument values are strings**. If you want to
|
27 |
convert them into boolean, for example, you should use the
|
28 |
:func:`paste.deploy.converters.asbool` function, as in::
|
29 |
|
30 |
from paste.deploy.converters import asbool
|
31 |
setting = asbool(global_conf.get('the_setting'))
|
32 |
|
33 |
"""
|
34 |
|
35 |
from vigilo.turbogears import VigiloAppConfig |
36 |
|
37 |
import vigiboard |
38 |
from vigiboard.lib import app_globals, helpers # pylint: disable-msg=W0611 |
39 |
# W0611: Unused import: imports nécessaires pour le fonctionnement
|
40 |
|
41 |
|
42 |
import logging |
43 |
LOGGER = logging.getLogger(__name__) |
44 |
|
45 |
class VigiboardConfig(VigiloAppConfig): |
46 |
def setup_sqlalchemy(self): |
47 |
super(VigiboardConfig, self).setup_sqlalchemy() |
48 |
|
49 |
# On est obligés d'attendre que la base de données
|
50 |
# soit configurée pour charger les plugins.
|
51 |
from pkg_resources import working_set |
52 |
from vigiboard.controllers.plugins import VigiboardRequestPlugin |
53 |
from tg import config |
54 |
|
55 |
plugins = [] |
56 |
for plugin_name in config['vigiboard_plugins']: |
57 |
try:
|
58 |
ep = working_set.iter_entry_points( |
59 |
"vigiboard.columns", plugin_name).next()
|
60 |
except StopIteration: |
61 |
pass
|
62 |
|
63 |
if ep.name in dict(plugins): |
64 |
continue
|
65 |
|
66 |
try:
|
67 |
plugin_class = ep.load(require=True)
|
68 |
if issubclass(plugin_class, VigiboardRequestPlugin): |
69 |
plugins.append((unicode(ep.name), plugin_class()))
|
70 |
except Exception: # pylint: disable-msg=W0703 |
71 |
# W0703: Catch "Exception"
|
72 |
LOGGER.exception(u'Unable to import plugin %s', plugin_name)
|
73 |
|
74 |
config['columns_plugins'] = plugins
|
75 |
|
76 |
base_config = VigiboardConfig('VigiBoard')
|
77 |
base_config.package = vigiboard |
78 |
base_config.mimetype_lookup = { |
79 |
'.csv': 'text/csv', |
80 |
} |
81 |
|
82 |
##################################
|
83 |
# Settings specific to Vigiboard #
|
84 |
##################################
|
85 |
|
86 |
# Configuration des liens
|
87 |
# Les elements suivants peuvent etre utilises dans la chaine de formatage :
|
88 |
# - %(idcorrevent)d : identifiant de l'aggregat (alerte correlee)
|
89 |
# - %(host)s : le nom de l'hote concerne par l'alerte
|
90 |
# - %(service)s : le nom du service concerne par l'alerte
|
91 |
# - %(message) : le message transmis par Nagios dans l'alerte
|
92 |
#
|
93 |
# Permet de satisfaire l'exigence VIGILO_EXIG_VIGILO_BAC_0130.
|
94 |
base_config['vigiboard_links.eventdetails'] = (
|
95 |
{ |
96 |
'label': u'Détail de l\'hôte dans Nagios', |
97 |
'uri': '/nagios/%(host)s/cgi-bin/status.cgi?host=%(host)s', |
98 |
}, |
99 |
{ |
100 |
'label': u'Détail de la métrologie', |
101 |
'uri': 'http://vigilo.example.com/vigilo/vigigraph/rpc/fullHostPage?host=%(host)s', |
102 |
}, |
103 |
{ |
104 |
'label': u'Détail de la sécurité', |
105 |
'uri': 'http://security.example.com/?host=%(host)s', |
106 |
}, |
107 |
{ |
108 |
'label': 'Inventaire', |
109 |
'uri': 'http://cmdb.example.com/?host=%(host)s', |
110 |
}, |
111 |
{ |
112 |
'label': 'Documentation', |
113 |
'uri': 'http://doc.example.com/?q=%(message)s', |
114 |
}, |
115 |
) |
116 |
|
117 |
# URL des tickets, possibilités:
|
118 |
# - %(idcorrevent)d
|
119 |
# - %(host)s
|
120 |
# - %(service)s
|
121 |
# - %(tt)s
|
122 |
base_config['vigiboard_links.tt'] = 'http://bugs.example.com/?ticket=%(tt)s' |
123 |
|
124 |
# Plugins to use
|
125 |
base_config['vigiboard_plugins'] = (
|
126 |
# 'id',
|
127 |
'details',
|
128 |
'groups',
|
129 |
'date',
|
130 |
'priority',
|
131 |
'occurrences',
|
132 |
'hostname',
|
133 |
'servicename',
|
134 |
'output',
|
135 |
# 'masked_events',
|
136 |
'hls',
|
137 |
'status',
|
138 |
# 'test',
|
139 |
) |
140 |
|
141 |
base_config['csv_columns'] = (
|
142 |
'id',
|
143 |
'state',
|
144 |
'initial_state',
|
145 |
'peak_state',
|
146 |
'date',
|
147 |
'duration',
|
148 |
'priority',
|
149 |
'occurrences',
|
150 |
'hostname',
|
151 |
'servicename',
|
152 |
'output',
|
153 |
'ack',
|
154 |
'trouble_ticket_id',
|
155 |
'trouble_ticket_link',
|
156 |
) |