Module: check_mk
Branch: master
Commit: 15638d38de434a3980162dea54fe1e4836ff8cef
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=15638d38de434a…
Author: Andreas Boesl <ab(a)mathias-kettner.de>
Date: Mon Apr 4 13:41:33 2016 +0200
3020: netapp_api_volumes: ignore volumes of cluster partner
---
.werks/3020 | 11 +++++++++++
agents/special/agent_netapp | 10 ++++++++--
2 files changed, 19 insertions(+), 2 deletions(-)
diff --git a/.werks/3020 b/.werks/3020
new file mode 100644
index 0000000..5f85e92
--- /dev/null
+++ b/.werks/3020
@@ -0,0 +1,11 @@
+Title: netapp_api_volumes: ignore volumes of cluster partner
+Level: 1
+Component: checks
+Compatible: compat
+Version: 1.2.9i1
+Date: 1459769140
+Class: fix
+
+Volumes from the cluster partner are no longer detected as services.
+These partner-volumes did not provide the entire span of information and
+caused check errors like "Volume is None".
diff --git a/agents/special/agent_netapp b/agents/special/agent_netapp
index 1af7c8f..f6b8091 100755
--- a/agents/special/agent_netapp
+++ b/agents/special/agent_netapp
@@ -202,7 +202,7 @@ def create_dict(instances, custom_key = [], is_counter = True):
def format_config(instances, prefix, config_key, config_report = "all",
config_scale = {}, config_rename = {},
extra_info = {}, extra_info_report = "all",
- delimeter = "\t"):
+ delimeter = "\t", skip_missing_config_key = False):
result = []
values = {}
@@ -227,6 +227,11 @@ def format_config(instances, prefix, config_key, config_report =
"all",
instance_key.append(values.get(entry))
instance_key = ".".join(instance_key)
else:
+ if skip_missing_config_key and config_key not in values:
+ # The config_key is not available in the xml node
+ # Looks like the information is only available through the other node
+ continue
+
instance_key = values.get(config_key, config_key)
if config_key in values:
del values[config_key]
@@ -573,7 +578,8 @@ if netapp_mode == "clustermode":
"volume-inode-attributes.files-used" : "files-used" },
extra_info = create_dict(volume_counters, custom_key
= [ "instance_uuid" ]),
extra_info_report = sum(map(lambda x: ["%s"
% x, "nfs_%s" % x, "cifs_%s" % x, "san_%s" % x,
"fcp_%s" % x, "iscsi_%s" % x],
- sum(map(lambda x:
["read_%s" % x, "write_%s" % x], ["data",
"latency"]), [])), []) + [ "instance_name" ]
+ sum(map(lambda x:
["read_%s" % x, "write_%s" % x], ["data",
"latency"]), [])), []) + [ "instance_name" ],
+ skip_missing_config_key = True
)
# Aggregations