Module: check_mk
Branch: master
Commit: 3d7d2760d2530d746173d48c94f884e751fedb6a
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=3d7d2760d2530d…
Author: Konstantin Büttner <kb(a)mathias-kettner.de>
Date: Wed Sep 12 13:27:28 2018 +0200
6466 FIX netgear_fans: Don't crash on empty info
Change-Id: Ie40f2cb42954c88c0bf7e298f0f672f9de3372bf
---
.werks/6466 | 11 +++++++++++
checks/netgear_fans | 23 ++++++++++++++---------
2 files changed, 25 insertions(+), 9 deletions(-)
diff --git a/.werks/6466 b/.werks/6466
new file mode 100644
index 0000000..f7a806f
--- /dev/null
+++ b/.werks/6466
@@ -0,0 +1,11 @@
+Title: netgear_fans: Don't crash on empty info
+Level: 1
+Component: checks
+Class: fix
+Compatible: compat
+Edition: cre
+State: unknown
+Version: 1.6.0i1
+Date: 1536751625
+
+
diff --git a/checks/netgear_fans b/checks/netgear_fans
index bf69dcd..62e540c 100644
--- a/checks/netgear_fans
+++ b/checks/netgear_fans
@@ -99,8 +99,11 @@ def netgear_map_state_txt_to_int(state_nr, version):
def parse_netgear_fans(info):
versioninfo, sensorinfo = info
- parsed = { "__version__" : versioninfo[0][0],
- "__fans__" : {}, }
+ if versioninfo == []:
+ parsed = { "__fans__" : {} }
+ else:
+ parsed = { "__version__" : versioninfo[0][0],
+ "__fans__" : {}, }
for oid_end, sstate, reading_str in sensorinfo:
parsed["__fans__"].setdefault("%s" %
oid_end.replace(".", "/"), {
"state" : sstate,
@@ -118,13 +121,15 @@ def inventory_netgear_fans(parsed):
def check_netgear_fans(item, params, parsed):
- if item in parsed["__fans__"]:
- data = parsed["__fans__"][item]
- reading_str = data["reading_str"]
- if reading_str != "Not Supported":
- yield check_fan(int(data["reading_str"]), params)
- state, state_readable = netgear_map_state_txt_to_int(data["state"],
parsed["__version__"])
- yield state, "Status: %s" % state_readable
+ data = parsed["__fans__"].get(item)
+ if data is None:
+ return
+
+ reading_str = data["reading_str"]
+ if reading_str != "Not Supported":
+ yield check_fan(int(data["reading_str"]), params)
+ state, state_readable = netgear_map_state_txt_to_int(data["state"],
parsed.get("__version__", ""))
+ yield state, "Status: %s" % state_readable
check_info['netgear_fans'] = {