Module: check_mk
Branch: master
Commit: 1405dc9abd7b6c71d933ec4802cd7f74eedbaf07
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=1405dc9abd7b6c…
Author: Götz Golla <gg(a)mathias-kettner.de>
Date: Wed Oct 23 18:27:14 2013 +0200
checkgroup hw_fan now can handle lower and upper limits for fan speeds
---
checks/brocade | 28 ++++++++++++++++++++--------
web/plugins/wato/check_parameters.py | 27 ++++++++++++++++++++++-----
2 files changed, 42 insertions(+), 13 deletions(-)
diff --git a/checks/brocade b/checks/brocade
index a6d8b08..98d2757 100644
--- a/checks/brocade
+++ b/checks/brocade
@@ -48,8 +48,7 @@ def brocade_scan(oid):
brocade_info = ('.1.3.6.1.4.1.1588.2.1.1.1.1.22.1', [ 4, 5 ])
-
-brocade_fan_default_levels = ( 3000 , 2800 )
+brocade_fan_default_levels = { "lower": (3000 , 2800 ) }
def inventory_brocade_fan(info):
info = brocade_sensor_convert(info, "FAN")
@@ -57,20 +56,33 @@ def inventory_brocade_fan(info):
def check_brocade_fan(item, params, info):
info = brocade_sensor_convert(info, "FAN")
- warn, crit = params
+ if type(params) is tuple: # old format
+ warn, crit = params
+ else: # new format
+ warn, crit = params.get("lower")
+ if params.get("upper"):
+ upperwarn, uppercrit = params["upper"]
+ else
+ upperwarn, uppercrit = ( None, None )
+
for snmp_item, name, value in info:
if item == snmp_item:
state = 0
label = ""
value = saveint(value)
perf = [ ('fan', value, warn, crit) ]
- if value <= warn:
+ if value <= crit or ( uppercrit and value >= uppercrit ):
state = 2
- label = "(Levels bellow: %d/%d)" % (warn, crit)
- elif value <= crit:
+ label = "(Levels below: %d/%d)" % (warn, crit)
+ elif value <= warn or ( upperwarn and value >= upperwarn ):
state = 1
- label = "(Levels bellow: %d/%d)" % (warn, crit)
-
+ label = "(Levels below: %d/%d)" % (warn, crit)
+ elif uppercrit and value >= uppercrit:
+ state = 2
+ label = "(Levels above: %d/%d)" % (upperwarn, uppercrit)
+ elif upperwarn and value >= upperwarn:
+ state = 1
+ label = "(Levels above: %d/%d)" % (upperwarn, uppercrit)
return state, "Fans at %drpm %s " % (value, label), perf
return 3, "FAN not found"
diff --git a/web/plugins/wato/check_parameters.py b/web/plugins/wato/check_parameters.py
index e76dd2f..c8759b0 100644
--- a/web/plugins/wato/check_parameters.py
+++ b/web/plugins/wato/check_parameters.py
@@ -3143,12 +3143,29 @@ register_check_parameters(
subgroup_environment,
"hw_fans",
_("FAN speed of Hardware devices"),
- Tuple(
- help = _("Levels for the FAN speed of a hardware device like a
switch"),
+ Dictionary(
elements = [
- Integer(title = _("warning if below"), unit = u"rpm",
default_value = 3000),
- Integer(title = _("critical if below"), unit = u"rpm",
default_value = 2500),
- ]),
+ ("lower",
+ Tuple(
+ help = _("Lower levels for the FAN speed of a hardware
device"),
+ title = _("Lower levels"),
+ elements = [
+ Integer(title = _("warning if below"), unit =
u"rpm"),
+ Integer(title = _("critical if below"), unit =
u"rpm"),
+ ]),
+ ),
+ ( "upper",
+ Tuple(
+ help = _("Upper levels for the FAN speed of a hardware
device"),
+ title = _("Upper levels"),
+ elements = [
+ Integer(title = _("warning if above"), unit =
u"rpm", default_value = 8000),
+ Integer(title = _("critical if above"), unit =
u"rpm", default_value = 8400),
+ ]),
+ ),
+ ],
+ optional_keys = ["upper"],
+ ),
TextAscii(
title = _("Fan Name"),
help = _("The identificator of the fan.")),