Module: check_mk
Branch: master
Commit: dd7e3960501f02fd2bee4c78f72d9f6bcc80ea9e
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=dd7e3960501f02…
Author: Tom Baerwinkel <tb(a)mathias-kettner.de>
Date: Mon Sep 3 15:21:38 2018 +0200
wmi.include: simplify wmi_determine_status a bit
Change-Id: Ieb26a4b016c4eb298c16ea4427791bd5da860616
---
checks/wmi.include | 26 ++++++++++++--------------
1 file changed, 12 insertions(+), 14 deletions(-)
diff --git a/checks/wmi.include b/checks/wmi.include
index 1f6e986..da04cd4 100644
--- a/checks/wmi.include
+++ b/checks/wmi.include
@@ -308,11 +308,7 @@ def wmi_make_perfvar(varname, value, perfscale, levels,
min_value=None, max_valu
def wmi_determine_status(value, levels):
- def worst_status(*args):
- order = [0, 1, 3, 2]
- return sorted(args, key=lambda x: order[x], reverse=True)[0]
-
- statuses, levels_text = [0], ""
+ status, levels_text = 0, ""
if levels:
if 'upper' in levels:
upper_status = 0
@@ -321,20 +317,22 @@ def wmi_determine_status(value, levels):
elif value >= levels['upper'][0]:
upper_status = 1
- if upper_status != 0:
- statuses.append(upper_status)
- levels_text = " (warn/crit at %s/%s)" %
levels['upper']
+ if upper_status:
+ status = max(status, upper_status)
+ levels_text += " (warn/crit at %s/%s)" %
levels['upper']
+
if 'lower' in levels:
lower_status = 0
- if value <= levels['lower'][1]:
+ if value < levels['lower'][1]:
lower_status = 2
- elif value <= levels['lower'][0]:
+ elif value < levels['lower'][0]:
lower_status = 1
- if lower_status != 0:
- statuses.append(lower_status)
- levels_text = " (warn/crit below %s/%s)" %
levels['lower']
- return worst_status(*statuses), levels_text
+ if lower_status:
+ status = max(status, lower_status)
+ levels_text += " (warn/crit below %s/%s)" %
levels['lower']
+
+ return status, levels_text
# to make wato rules simpler, levels are allowed to be passed as tuples if the level