Module: check_mk
Branch: master
Commit: 9497d5556b83376d3a5eda4c643d2901ad9ca27a
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=9497d5556b8337…
Author: Marcel Schulte <ms(a)mathias-kettner.de>
Date: Thu Dec 29 11:04:15 2016 +0100
4122 FIX ibm_svc_enclosure: added support for firmware >= 7.8
SVC firmware >= 7.8 provides more output than former firmware versions. The additional
data shows information about total and online secondary expander modules.
The check has been customized to support the additional data.
Change-Id: I744d210171e3d0224d2592dd352d3865cbb03757
---
.werks/4122 | 11 +++++++++++
ChangeLog | 1 +
checks/ibm_svc_enclosure | 23 ++++++++++++++++++++---
3 files changed, 32 insertions(+), 3 deletions(-)
diff --git a/.werks/4122 b/.werks/4122
new file mode 100644
index 0000000..5bab180
--- /dev/null
+++ b/.werks/4122
@@ -0,0 +1,11 @@
+Title: ibm_svc_enclosure: added support for firmware >= 7.8
+Level: 1
+Component: checks
+Class: fix
+Compatible: compat
+State: unknown
+Version: 1.4.0i4
+Date: 1483005691
+
+SVC firmware >= 7.8 provides more output than former firmware versions. The additional
data shows information about total and online secondary expander modules.
+The check has been customized to support the additional data.
diff --git a/ChangeLog b/ChangeLog
index 3e02495..9ff9e1a 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -21,6 +21,7 @@
* 4209 FIX: mk_jolokia: Setting a default product now works...
* 4120 FIX: fixed checks mysql and mysql.sessions for multiple MySQL instances...
* 4121 FIX: mk_mysql: fixed handling of multiple instances
+ * 4122 FIX: ibm_svc_enclosure: added support for firmware >= 7.8...
Multisite:
* 4169 View action: Default values of sticky, notification and persistent options can
now be configured via global settings....
diff --git a/checks/ibm_svc_enclosure b/checks/ibm_svc_enclosure
index 3a25051..d79d938 100644
--- a/checks/ibm_svc_enclosure
+++ b/checks/ibm_svc_enclosure
@@ -37,8 +37,14 @@
# 3:online:expansion:yes:0:io_grp0:2072-24E:7804326:2:2:2:2:24:0:0
# 4:online:expansion:yes:0:io_grp0:2072-24E:7804352:2:2:2:2:24:0:0
+# FW >= 7.8
+# 1:online:control:yes:0:io_grp0:2072-24C:7804037:2:2:2:2:24:0:0:0:0
+# 2:online:expansion:yes:0:io_grp0:2072-24E:7804306:2:2:2:2:24:0:0:0:0
+# 3:online:expansion:yes:0:io_grp0:2072-24E:7804326:2:2:2:2:24:0:0:0:0
+# 4:online:expansion:yes:0:io_grp0:2072-24E:7804352:2:2:2:2:24:0:0:0:0
+
# The names of the columns are:
-#
id:status:type:managed:IO_group_id:IO_group_name:product_MTM:serial_number:total_canisters:online_canisters:total_PSUs:online_PSUs:drive_slots:total_fan_modules:online_fan_modules
+#
id:status:type:managed:IO_group_id:IO_group_name:product_MTM:serial_number:total_canisters:online_canisters:total_PSUs:online_PSUs:drive_slots:total_fan_modules:online_fan_modules:total_sems:online_sems
def inventory_ibm_svc_enclosure(info):
@@ -51,12 +57,15 @@ def inventory_ibm_svc_enclosure(info):
def check_ibm_svc_enclosure(item, _no_params, info):
for line in info:
if line[0] == item:
- if len(line) < 15: # old format
+ if len(line) < 15: # old(est) format
+ line = line + ["0", "0", "0",
"0"] # do not modify line!
+ if len(line) < 17: # old format
line = line + ["0", "0"] # do not modify line!
enclosure_id, enclosure_status, enclosure_type, managed, IO_group_id, \
IO_group_name, product_MTM, serial_number, total_canisters,
online_canisters, \
- total_PSUs, online_PSUs, drive_slots, total_fan_modules,
online_fan_modules = line
+ total_PSUs, online_PSUs, drive_slots, total_fan_modules,
online_fan_modules, \
+ total_secondary_expander_modules, online_secondary_expander_modules =
line
# Check status
message = "Enclosure %s is %s" % (enclosure_id, enclosure_status)
@@ -88,6 +97,14 @@ def check_ibm_svc_enclosure(item, _no_params, info):
status = 2
message += ", only %s of %s fan modules are online(!!)" %
(online_fan_modules, total_fan_modules)
+ # Check SEMs (only firmware >= 7.8)
+ if online_secondary_expander_modules == total_secondary_expander_modules:
+ if total_secondary_expander_modules != "0":
+ message += ", all %s secondary expander modules are online"
% total_secondary_expander_modules
+ else:
+ status = 2
+ message += ", only %s of %s secondary expander modules are
online(!!)" % (online_secondary_expander_modules, total_secondary_expander_modules)
+
return status, message
return 3, "Enclosure %s not found in agent output" % item