Module: check_mk
Branch: master
Commit: 82808bc0500e115200d1bfd255be8d7bc3f6d63a
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=82808bc0500e11…
Author: Lars Michelsen <lm(a)mathias-kettner.de>
Date: Mon Dec 16 19:10:54 2013 +0100
FIX brocade_mlx_module*: Improved output of checks
---
.werks/370 | 8 ++++++++
ChangeLog | 1 +
checks/brocade_mlx | 38 ++++++++++++++++++--------------------
3 files changed, 27 insertions(+), 20 deletions(-)
diff --git a/.werks/370 b/.werks/370
new file mode 100644
index 0000000..a5aecae
--- /dev/null
+++ b/.werks/370
@@ -0,0 +1,8 @@
+Title: brocade_mlx_module*: Improved output of checks
+Level: 1
+Component: checks
+Version: 1.2.5i1
+Date: 1387217440
+Class: fix
+
+
diff --git a/ChangeLog b/ChangeLog
index 6fbc7e3..fc739f0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -40,6 +40,7 @@
* 0342 FIX: postgres_stat_database: make agent compatible with PostgreSQL 8.4.x...
* 0343 FIX: postgres_sessions: make agent plugin compatible with PostgreSQL 9.2...
* 0369 FIX: cups_queues: Fixed bug checking the last queue reported by agent...
+ * 0370 FIX: brocade_mlx_module*: Improved output of checks
Multisite:
* 0302 FIX: Fixed highlight of choosen elements in foldertee/views snapin in
Chrome/IE
diff --git a/checks/brocade_mlx b/checks/brocade_mlx
index fd49023..1602684 100644
--- a/checks/brocade_mlx
+++ b/checks/brocade_mlx
@@ -24,6 +24,17 @@
# to the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor,
# Boston, MA 02110-1301 USA.
+brocade_mlx_states = {
+ 0: (1, "Slot is empty"),
+ 2: (1, "Module is going down"),
+ 3: (2, "Rejected due to wrong configuration"),
+ 4: (2, "Hardware is bad"),
+ 8: (1, "Configured / Stacking"),
+ 9: (1, "In power-up cycle"),
+ 10: (0, "Running"),
+ 11: (1, "Blocked for full height card"),
+}
+
brocade_mlx_info = [
('.1.3.6.1.4.1.1991.1.1.2.2.1.1', [ 1, 2, 12, 24, 25 ]),
# id, descr, overall status, MemoryTotal, MemoryAvailable
@@ -31,6 +42,9 @@ brocade_mlx_info = [
# Rest of OId starting with module ID, CpuUtilPercent
]
+def brocade_mlx_get_state(state):
+ return brocade_mlx_states.get(state, (3, 'Unhandled state - %d' % state))
+
def brocade_mlx_scan(oid):
return
oid(".1.3.6.1.2.1.1.2.0").startswith(".1.3.6.1.4.1.1991.1.")
@@ -61,24 +75,7 @@ def inventory_brocade_mlx_module(info):
def check_brocade_mlx_module(item, _no_params, info):
for module_id, module_descr, module_state, mem_total, mem_avail in info[0]:
if brocade_mlx_combine_item(module_id, module_descr) == item:
- if module_state == "0":
- return 1, "Module reports status 0 (empty)"
- elif module_state == "2":
- return 1, "Module reports status 2 (going down)"
- elif module_state == "3":
- return 2, "Module reports status 3 (rejected)"
- elif module_state == "4":
- return 2, "Module reports status 4 (bad)"
- elif module_state == "8":
- return 1, "Module reports status 8 (configured / stacking)"
- elif module_state == "9":
- return 1, "Module reports status 9 (coming up)"
- elif module_state == "10":
- return 0, "Module reports status 10 (running)"
- elif module_state == "11":
- return 1, "Module reports status 11 (blocked for full height
card)"
- else:
- return 3, "Module reports unidentified status %s" %
module_state
+ return brocade_mlx_get_state(int(module_state))
return 3, "Module not found"
check_info["brocade_mlx.module_status"] = {
@@ -113,9 +110,10 @@ def inventory_brocade_mlx_module_mem(info):
def check_brocade_mlx_module_mem(item, params, info):
warn, crit = params["levels"]
for module_id, module_descr, module_state, mem_total, mem_avail in info[0]:
+ module_state = int(module_state)
if brocade_mlx_combine_item(module_id, module_descr) == item:
- if module_state != "10":
- return 3, "Module is not in state running"
+ if module_state != 10:
+ return 3, "Module is not running (Current State: %s)" %
brocade_mlx_get_state(module_state)[1]
mem_avail = saveint(mem_avail)
mem_total = saveint(mem_total)