vigiboard / vigiboard / config / app_cfg.py @ cf3c2494
History | View | Annotate | Download (3.98 KB)
1 |
# -*- coding: utf-8 -*-
|
---|---|
2 |
# vim: set fileencoding=utf-8 sw=4 ts=4 et :
|
3 |
################################################################################
|
4 |
#
|
5 |
# Copyright (C) 2007-2011 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 |
39 |
|
40 |
import logging |
41 |
LOGGER = logging.getLogger(__name__) |
42 |
|
43 |
class VigiboardConfig(VigiloAppConfig): |
44 |
def setup_sqlalchemy(self): |
45 |
super(VigiboardConfig, self).setup_sqlalchemy() |
46 |
|
47 |
# On est obligés d'attendre que la base de données
|
48 |
# soit configurée pour charger les plugins.
|
49 |
from pkg_resources import working_set |
50 |
from vigiboard.controllers.plugins import VigiboardRequestPlugin |
51 |
from tg import config |
52 |
|
53 |
plugins = [] |
54 |
for plugin_name in config['vigiboard_plugins']: |
55 |
try:
|
56 |
ep = working_set.iter_entry_points( |
57 |
"vigiboard.columns", plugin_name).next()
|
58 |
except StopIteration: |
59 |
pass
|
60 |
|
61 |
if ep.name in dict(plugins): |
62 |
continue
|
63 |
|
64 |
try:
|
65 |
plugin_class = ep.load(require=True)
|
66 |
if issubclass(plugin_class, VigiboardRequestPlugin): |
67 |
plugins.append((unicode(ep.name), plugin_class()))
|
68 |
except Exception, e: |
69 |
LOGGER.error('Unable to import plugin %s : %s' % (plugin_name, e))
|
70 |
|
71 |
config['columns_plugins'] = plugins
|
72 |
|
73 |
base_config = VigiboardConfig('vigiboard')
|
74 |
base_config.package = vigiboard |
75 |
|
76 |
##################################
|
77 |
# Settings specific to Vigiboard #
|
78 |
##################################
|
79 |
|
80 |
# Configuration des liens
|
81 |
# Les elements suivants peuvent etre utilises dans la chaine de formatage :
|
82 |
# - %(idcorrevent)d : identifiant de l'aggregat (alerte correlee)
|
83 |
# - %(host)s : le nom de l'hote concerne par l'alerte
|
84 |
# - %(service)s : le nom du service concerne par l'alerte
|
85 |
# - %(message) : le message transmis par Nagios dans l'alerte
|
86 |
#
|
87 |
# Permet de satisfaire l'exigence VIGILO_EXIG_VIGILO_BAC_0130.
|
88 |
base_config['vigiboard_links.eventdetails'] = (
|
89 |
( |
90 |
u'Détail de l\'hôte dans Nagios',
|
91 |
'/nagios/%(host)s/cgi-bin/status.cgi?host=%(host)s'
|
92 |
), ( |
93 |
u'Détail de la métrologie',
|
94 |
'http://vigilo.example.com/vigigraph/rpc/fullHostPage?host=%(host)s'
|
95 |
), ( |
96 |
u'Détail de la sécurité',
|
97 |
'http://security.example.com/?host=%(host)s'
|
98 |
), ( |
99 |
'Inventaire',
|
100 |
'http://cmdb.example.com/?host=%(host)s'
|
101 |
), ( |
102 |
'Documentation',
|
103 |
'http://doc.example.com/?q=%(message)s'
|
104 |
), |
105 |
) |
106 |
|
107 |
# URL des tickets, possibilités:
|
108 |
# - %(idcorrevent)d
|
109 |
# - %(host)s
|
110 |
# - %(service)s
|
111 |
# - %(tt)s
|
112 |
base_config['vigiboard_links.tt'] = 'http://bugs.example.com/?ticket=%(tt)s' |
113 |
|
114 |
# Plugins to use
|
115 |
base_config['vigiboard_plugins'] = (
|
116 |
'details',
|
117 |
'date',
|
118 |
'priority',
|
119 |
'occurrences',
|
120 |
'hostname',
|
121 |
'servicename',
|
122 |
'output',
|
123 |
'hls',
|
124 |
'status',
|
125 |
) |