Module: check_mk
Branch: master
Commit: a57816c0f866eec3baaca9bcf878cfa510a9459c
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=a57816c0f866ee…
Author: Andreas Boesl <ab(a)mathias-kettner.de>
Date: Wed Nov 8 14:42:56 2017 +0100
5240 FIX agent_netapp, environmental sensors monitoring. No longer fails if a node has no
configured shelfes
This fixes the error message <tt>"NoneType" object has no attribute
'children_get'</tt>, reported by the check <tt>NetApp filer
connection</tt>.
Change-Id: I5d27c07cf801012e14fef15326d1519a2e08d6d1
---
.werks/5240 | 13 +++++++++++++
agents/special/agent_netapp | 20 ++++++++++++--------
2 files changed, 25 insertions(+), 8 deletions(-)
diff --git a/.werks/5240 b/.werks/5240
new file mode 100644
index 0000000..24ae476
--- /dev/null
+++ b/.werks/5240
@@ -0,0 +1,13 @@
+Title: agent_netapp, environmental sensors monitoring. No longer fails if a node has no
configured shelfes
+Level: 1
+Component: checks
+Class: fix
+Compatible: compat
+Edition: cre
+State: unknown
+Version: 1.5.0i1
+Date: 1510148440
+
+This fixes the error message <tt>"NoneType" object has no attribute
'children_get'</tt>, reported by the check <tt>NetApp filer
connection</tt>.
+
+
diff --git a/agents/special/agent_netapp b/agents/special/agent_netapp
old mode 100755
new mode 100644
index 77f2654..4a1d6c8
--- a/agents/special/agent_netapp
+++ b/agents/special/agent_netapp
@@ -985,9 +985,9 @@ try:
# Cluster info
# TODO: check is missing
+ ha_partners = {} # Used later on by environmental sensors
if "cf" not in licenses["v1_disabled"]:
cluster_status = query_nodes("cf-status", node_attribute =
"node")
- ha_partners = {} # Used later on by environmental sensors
if cluster_status:
print "<<<netapp_api_cm_cluster:sep(9)>>>"
for node, entry in cluster_status.items():
@@ -1137,9 +1137,19 @@ try:
for node, values in environment_info.items():
if node in processed_nodes:
continue
+
+ # HA partners always report redundant environmental data.
+ # (Node1/Node2) <--Cluster--> (Node3/Node4)
+ # We skip data from Node2 and Node4.
+ processed_nodes.append(node)
+ if node in ha_partners:
+ processed_nodes.append(ha_partners[node])
+
channel_list = values.child_get("shelf-environ-channel-list")
+ if not channel_list:
+ continue
+
for channel in channel_list.children_get():
# cycle channel list
- shelf_list = channel.child_get("shelf-environ-shelf-list")
for shelf in
channel.child_get("shelf-environ-shelf-list").children_get(): # cycle shelf
list
shelf_id = shelf.child_get_string("shelf-id")
for what, section in [ ("power-supply-list",
"netapp_api_psu"),
@@ -1148,12 +1158,6 @@ try:
print "<<<%s:sep(9)>>>" %
section
node = shelf.child_get(what)
print format_config(node, what, shelf_id)
- # HA partners always report redundant environmental data.
- # (Node1/Node2) <--Cluster--> (Node3/Node4)
- # We skip data from Node2 and Node4.
- processed_nodes.append(node)
- if node in ha_partners:
- processed_nodes.append(ha_partners[node])
# Controller Status