Module: check_mk
Branch: master
Commit: ad11ff1383444b9b3119eadd2bcc64b9e9caac6a
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=ad11ff1383444b…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Mon Mar 4 16:40:33 2013 +0100
mounts: ignore multiple occurrances of the same device
---
ChangeLog | 1 +
checks/mounts | 4 +++-
2 files changed, 4 insertions(+), 1 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 83f8560..a740f57 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -37,6 +37,7 @@
new param average: average the values over the given minute
new param post can now be configured via int and float, now
supports percentage values
+ * mounts: ignore multiple occurrances of the same device
Livestatus:
* Table statehist: Improved detection of vanished hosts and services.
diff --git a/checks/mounts b/checks/mounts
index 46eca5c..1fa7cc6 100644
--- a/checks/mounts
+++ b/checks/mounts
@@ -26,8 +26,10 @@
def inventory_mounts(info):
inventory = []
+ devices = []
for dev, mp, fstype, options, dump, fsck in info:
- if fstype not in [ 'tmpfs' ]:
+ if fstype not in [ 'tmpfs' ] and dev not in devices:
+ devices.append(dev)
opts = options.split(",")
opts.sort()
inventory.append( (mp, opts) )
Module: check_mk
Branch: master
Commit: ac0ce49b2f7bd67a1c04fb89c01c9909fb5fa7bb
URL: http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=ac0ce49b2f7bd6…
Author: Mathias Kettner <mk(a)mathias-kettner.de>
Date: Mon Mar 4 12:01:05 2013 +0100
Simplify check API: allow check to omit "OK -"
The prefix will now automatically be added, if missing.
---
ChangeLog | 2 ++
modules/check_mk_base.py | 32 ++++++++++++++++++++++----------
2 files changed, 24 insertions(+), 10 deletions(-)
diff --git a/ChangeLog b/ChangeLog
index 5dffbad..83f8560 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,8 @@
Core:
* Agents can send data for other hosts "piggyback". This is being
used by the vSphere and SAP plugins
+ * Checks can now omit the typical "OK - " or "WARN -". This text
+ will be added automatically if missing.
Multisite:
* New availability view for arbitrary host/service collections
diff --git a/modules/check_mk_base.py b/modules/check_mk_base.py
index 9b23c84..7f307c9 100755
--- a/modules/check_mk_base.py
+++ b/modules/check_mk_base.py
@@ -1022,13 +1022,13 @@ def do_all_checks_on_host(hostname, ipaddress, only_check_types = None):
if info or info == []:
num_success += 1
try:
- check_funktion = check_info[checkname]["check_function"]
+ check_function = check_info[checkname]["check_function"]
except:
- check_funktion = check_unimplemented
+ check_function = check_unimplemented
try:
dont_submit = False
- result = check_funktion(item, params, info)
+ result = check_function(item, params, info)
# handle check implementations that do not yet support the
# handling of wrapped counters via exception. Do not submit
# any check result in that case:
@@ -1037,7 +1037,7 @@ def do_all_checks_on_host(hostname, ipaddress, only_check_types = None):
print "Counter wrapped, not handled by check, ignoring this check result: %s" % e
dont_submit = True
except Exception, e:
- result = (3, "UNKNOWN - invalid output from agent, invalid check parameters or error in implementation of check %s. Please set <tt>debug_log</tt> to a filename in <tt>main.mk</tt> for enabling exception logging." % checkname)
+ result = (3, "invalid output from agent, invalid check parameters or error in implementation of check %s. Please set <tt>debug_log</tt> to a filename in <tt>main.mk</tt> for enabling exception logging." % checkname)
if debug_log:
try:
import traceback, pprint
@@ -1145,19 +1145,31 @@ def convert_perf_data(p):
def submit_check_result(host, servicedesc, result, sa):
+ if len(result) >= 3:
+ state, infotext, perfdata = result[:3]
+ else:
+ state, infotext = result
+ perfdata = None
+
+ if not (
+ infotext.startswith("OK -") or
+ infotext.startswith("WARN -") or
+ infotext.startswith("CRIT -") or
+ infotext.startswith("UNKNOWN -")):
+ infotext = nagios_state_names[state] + " - " + infotext
+
global nagios_command_pipe
# [<timestamp>] PROCESS_SERVICE_CHECK_RESULT;<host_name>;<svc_description>;<return_code>;<plugin_output>
# Aggregated service -> store for later
if sa != "":
- store_aggregated_service_result(host, servicedesc, sa, result[0], result[1])
+ store_aggregated_service_result(host, servicedesc, sa, state, infotext)
# performance data - if any - is stored in the third part of the result
perftexts = [];
perftext = ""
- if len(result) > 2:
- perfdata = result[2]
+ if perfdata:
# Check may append the name of the check command to the
# list of perfdata. It is of type string. And it might be
# needed by the graphing tool in order to choose the correct
@@ -1177,15 +1189,15 @@ def submit_check_result(host, servicedesc, result, sa):
perftext = "|" + (" ".join(perftexts))
if not opt_dont_submit:
- submit_to_nagios(host, servicedesc, result[0], result[1] + perftext)
+ submit_to_nagios(host, servicedesc, state, infotext + perftext)
if opt_verbose:
if opt_showperfdata:
p = ' (%s)' % (" ".join(perftexts))
else:
p = ''
- color = { 0: tty_green, 1: tty_yellow, 2: tty_red, 3: tty_magenta }[result[0]]
- print "%-20s %s%s%-56s%s%s" % (servicedesc, tty_bold, color, result[1], tty_normal, p)
+ color = { 0: tty_green, 1: tty_yellow, 2: tty_red, 3: tty_magenta }[state]
+ print "%-20s %s%s%-56s%s%s" % (servicedesc, tty_bold, color, infotext, tty_normal, p)
def submit_to_nagios(host, service, state, output):