Refactoring: Moved check parameters from unsorted.py to dedicated modules (CMK-1393)
[check_mk.git] / checks / check_sql
blob3b1b63b1502d9dade4011c3040cd060a450e3aab
1 #!/usr/bin/python
2 # -*- encoding: utf-8; py-indent-offset: 4 -*-
3 # +------------------------------------------------------------------+
4 # | ____ _ _ __ __ _ __ |
5 # | / ___| |__ ___ ___| | __ | \/ | |/ / |
6 # | | | | '_ \ / _ \/ __| |/ / | |\/| | ' / |
7 # | | |___| | | | __/ (__| < | | | | . \ |
8 # | \____|_| |_|\___|\___|_|\_\___|_| |_|_|\_\ |
9 # | |
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):
36 args = []
38 if "host" in params:
39 args += ["--hostname=%s" % params["host"]]
40 else:
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"])]
48 if "port" in params:
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"]
59 else:
60 upper = "", ""
62 if "levels_low" in params:
63 lower = params["levels_low"]
64 else:
65 lower = "", ""
67 if "perfdata" in params:
68 args += ["--metrics"]
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]
76 else:
77 sql_tmp = params["sql"]
79 args += ["%s" % sql_tmp.replace("\n", r"\n").replace(";", r"\;")]
81 return args
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"],
88 "has_perfdata": True,