2 # -*- encoding: utf-8; py-indent-offset: 4 -*-
3 # +------------------------------------------------------------------+
4 # | ____ _ _ __ __ _ __ |
5 # | / ___| |__ ___ ___| | __ | \/ | |/ / |
6 # | | | | '_ \ / _ \/ __| |/ / | |\/| | ' / |
7 # | | |___| | | | __/ (__| < | | | | . \ |
8 # | \____|_| |_|\___|\___|_|\_\___|_| |_|_|\_\ |
10 # | Copyright Mathias Kettner 2014 mk@mathias-kettner.de |
11 # +------------------------------------------------------------------+
13 # This file is part of Check_MK.
14 # The official homepage is at http://mathias-kettner.de/check_mk.
16 # check_mk is free software; you can redistribute it and/or modify it
17 # under the terms of the GNU General Public License as published by
18 # the Free Software Foundation in version 2. check_mk is distributed
19 # in the hope that it will be useful, but WITHOUT ANY WARRANTY; with-
20 # out even the implied warranty of MERCHANTABILITY or FITNESS FOR A
21 # PARTICULAR PURPOSE. See the GNU General Public License for more de-
22 # tails. You should have received a copy of the GNU General Public
23 # License along with GNU Make; see the file COPYING. If not, write
24 # to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
25 # Boston, MA 02110-1301 USA.
27 #active_checks['sql'] = [
28 # ( {'dbms': 'postgres', 'description': u'SQL Test', 'user': 'golla',
29 # 'sql': 'testerer', 'password': 'toor',
30 # 'procedure': {'useprocs': True, 'input': '1223,456'},
31 # 'name': 'messpc'}, [], ALL_HOSTS ),
32 # ] + active_checks['sql']
35 def check_sql_arguments(params
):
39 args
+= ["--hostname=%s" % params
["host"]]
41 args
+= ["--hostname=$HOSTADDRESS$"]
43 args
+= ["--dbms=%s" % params
["dbms"]]
44 args
+= ["--name=%s" % params
["name"]]
45 args
+= ["--user=%s" % params
["user"]]
46 args
+= [passwordstore_get_cmdline("--password=%s", params
["password"])]
49 args
+= ["--port=%s" % params
["port"]]
51 if "procedure" in params
:
52 if "procedure" in params
and "useprocs" in params
["procedure"]:
53 args
+= ["--procedure"]
54 if "input" in params
["procedure"]:
55 args
+= ["--inputvars=%s" % params
["procedure"]["input"]]
57 if "levels" in params
:
58 upper
= params
["levels"]
62 if "levels_low" in params
:
63 lower
= params
["levels_low"]
67 if "perfdata" in params
:
70 if "levels" in params
or "levels_low" in params
:
71 args
+= ["-w%s:%s" % (lower
[0], upper
[0])]
72 args
+= ["-c%s:%s" % (lower
[1], upper
[1])]
74 if isinstance(params
["sql"], tuple):
75 sql_tmp
= params
["sql"][-1]
77 sql_tmp
= params
["sql"]
79 args
+= ["%s" % sql_tmp
.replace("\n", r
"\n").replace(";", r
"\;")]
84 active_check_info
['sql'] = {
85 "command_line": '$USER1$/check_sql $ARG1$',
86 "argument_function": check_sql_arguments
,
87 "service_description": lambda args
: args
["description"],