Module: check_mk
Branch: master
Commit: b059c975db9c7f330864fb138185d97be6be5468
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=b059c975db9c7f…
Author: Florian Kromer <fk(a)mathias-kettner.de>
Date: Wed Nov 7 16:12:22 2018 +0100
apc_symmetra: configurable battery replace state
CMK-1238
Change-Id: Ida977a9c6208304d801b3307b0d82284e18ef738
---
.werks/6891 | 10 +++++
checks/apc_symmetra | 7 ++--
cmk/gui/plugins/wato/check_parameters.py | 10 ++++-
.../datasets/apc_symmetra_regression.py | 45 ++++++++++++++++++++++
4 files changed, 67 insertions(+), 5 deletions(-)
diff --git a/.werks/6891 b/.werks/6891
new file mode 100644
index 0000000..092a98f
--- /dev/null
+++ b/.werks/6891
@@ -0,0 +1,10 @@
+Title: apc_symmetra: Customizable state if battery needs replacing
+Level: 1
+Component: checks
+Compatible: compat
+Edition: cre
+Version: 1.6.0i1
+Date: 1541602837
+Class: feature
+
+Previously the state in case the battery needs replacement was hardcoded to 1. The state
may be configured via WATO now.
diff --git a/checks/apc_symmetra b/checks/apc_symmetra
index 388287a..6a566d4 100644
--- a/checks/apc_symmetra
+++ b/checks/apc_symmetra
@@ -114,8 +114,9 @@ def parse_apc_symmetra(info):
# crit_capacity, crit_sys_temp, crit_batt_curr, crit_voltage = levels
# Temperature default now 60C: regadring to a apc technician a temperature up tp 70C is
possible
factory_settings["apc_default_levels"] = {
- "capacity" : ( 95, 80 ),
- "calibration_state" : 0
+ "capacity" : ( 95, 80 ),
+ "calibration_state" : 0,
+ "battery_replace_state" : 1,
}
@@ -165,7 +166,7 @@ def check_apc_symmetra(_no_item, params, parsed):
if battery_replace:
state, state_readable = {
"1" : (0, "no battery needs replacing"),
- "2" : (1, "battery needs replacing"), }[battery_replace]
+ "2" : (params.get("battery_replace_state"), "battery
needs replacing"), }[battery_replace]
if battery_num_batt_packs and int(battery_num_batt_packs) > 1:
yield 2, "%i batteries need replacement" %
int(battery_num_batt_packs)
elif state:
diff --git a/cmk/gui/plugins/wato/check_parameters.py
b/cmk/gui/plugins/wato/check_parameters.py
index 7a7f17b..6126dbc 100644
--- a/cmk/gui/plugins/wato/check_parameters.py
+++ b/cmk/gui/plugins/wato/check_parameters.py
@@ -5426,10 +5426,16 @@ register_check_parameters(
help = _("Time Left on Battery at and below which a critical
state is triggered"),
default_value = 0,
display = [ "hours", "minutes" ]
- ),
+ ),
],
+ ),
),
- )],
+ ("battery_replace_state",
+ MonitoringState(
+ title = _("State if battery needs replacement"),
+ default_value = 1,
+ )
+ )],
optional_keys = ['post_calibration_levels', 'output_load',
'battime'],
),
forth = transform_apc_symmetra,
diff --git a/tests/unit/checks/generictests/datasets/apc_symmetra_regression.py
b/tests/unit/checks/generictests/datasets/apc_symmetra_regression.py
new file mode 100644
index 0000000..1b670e5
--- /dev/null
+++ b/tests/unit/checks/generictests/datasets/apc_symmetra_regression.py
@@ -0,0 +1,45 @@
+
+
+checkname = 'apc_symmetra'
+
+
+info = [[u'2',
+ u'2',
+ u'100',
+ u'2',
+ u'0',
+ u'366000',
+ u'2',
+ u'06/20/2012',
+ u'18',
+ u'0',
+ u'0001010000000000001000000000000000000000000000000000000000000000']]
+
+
+discovery = {'': [(None, {})], 'elphase': [('Battery', {})],
'temp': [('Battery', {})]}
+
+
+checks = {'': [(None,
+ 'default',
+ [(0, 'Battery status: normal', []),
+ (1, 'battery needs replacing', []),
+ (0, 'Output status: on line (calibration invalid)', []),
+ (0, 'Capacity: 100%', [('capacity', 100, 95, 80, 0,
100)]),
+ (0,
+ 'Time remaining: 61 m',
+ [('runtime', 61.0, None, None, None, None)])]),
+ (None,
+ {'battery_replace_state': 2},
+ [(0, 'Battery status: normal', []),
+ (2, 'battery needs replacing', []),
+ (0, 'Output status: on line (calibration invalid)', []),
+ (0, 'Capacity: 100%', [('capacity', 100, 95, 80, 0,
100)]),
+ (0,
+ 'Time remaining: 61 m',
+ [('runtime', 61.0, None, None, None, None)])])],
+ 'elphase': [('Battery',
+ 'default',
+ [(0, 'Current: 0.0 A', [('current', 0.0, 1, 1,
None, None)])])],
+ 'temp': [('Battery',
+ 'default',
+ [(0, u'18.0 \xb0C', [('temp', 18.0, 50, 60, None,
None)])])]}