Module: check_mk
Branch: master
Commit: da67731c2f2343f1a4020867155e482431143355
URL:
http://git.mathias-kettner.de/git/?p=check_mk.git;a=commit;h=da67731c2f2343…
Author: Marcel Arentz <ma(a)mathias-kettner.de>
Date: Thu Aug 17 16:03:42 2017 +0200
refactored all 3par check plugins
Change-Id: Ibe38dad1d99ed200927a33e9e0402485ea35df12
---
checks/3par_cpgs | 15 ++++++---------
checks/3par_hosts | 13 +++++--------
checks/3par_ports | 6 +++---
checks/3par_remotecopy | 6 +++---
checks/3par_system | 10 +++++-----
checks/3par_volumes | 11 +++--------
6 files changed, 25 insertions(+), 36 deletions(-)
diff --git a/checks/3par_cpgs b/checks/3par_cpgs
index 7bc9fde..aa74a1a 100644
--- a/checks/3par_cpgs
+++ b/checks/3par_cpgs
@@ -28,7 +28,7 @@ def count_3par_vvs(line):
return line['numFPVVs'] + line['numTDVVs'] +
line['numTPVVs']
def inventory_3par_cpgs(parsed):
- for entry in parsed['members']:
+ for entry in parsed.get('members', {}):
if "name" in entry and count_3par_vvs(entry) > 0:
yield (entry['name'], {})
@@ -40,11 +40,8 @@ def check_3par_cpgs(item, params, parsed):
3: (2, "Failed"),
}
- for entry in parsed['members']:
- if not "name" in entry:
- continue
-
- if entry['name'] == item:
+ for entry in parsed.get('members', {}):
+ if entry.get('name') == item:
state, state_readable = states[entry['state']]
yield state, "%s, %s VVs" % (state_readable,
count_3par_vvs(entry))
@@ -60,15 +57,15 @@ check_info['3par_cpgs'] = {
def inventory_3par_cpgs_usage(parsed):
- for entry in parsed['members']:
+ for entry in parsed.get('members', {}):
if count_3par_vvs(entry) > 0:
for fs in ["SAUsage", "SDUsage", "UsrUsage"]:
yield ("%s %s" % (entry['name'], fs), {})
def check_3par_cpgs_usage(item, params, parsed):
- for entry in parsed['members']:
+ for entry in parsed.get('members', {}):
for fs in ["SAUsage", "SDUsage", "UsrUsage"]:
- if "%s %s" % (entry['name'], fs) == item:
+ if "%s %s" % (entry.get('name'), fs) == item:
total = entry[fs]['totalMiB']
free = entry[fs]['totalMiB']-entry[fs]['usedMiB']
yield df_check_filesystem_list(item, params, [ (item, total, free, 0) ])
diff --git a/checks/3par_hosts b/checks/3par_hosts
index c851674..9ab4e8f 100644
--- a/checks/3par_hosts
+++ b/checks/3par_hosts
@@ -26,23 +26,20 @@
def inventory_3par_hosts(parsed):
- for entry in parsed['members']:
+ for entry in parsed.get('members', {}):
if "name" in entry:
yield (entry['name'], None)
def check_3par_hosts(item, _no_params, parsed):
- for entry in parsed['members']:
- if not "name" in entry:
- continue
-
- if item == entry['name']:
+ for entry in parsed.get('members', {}):
+ if item == entry.get('name'):
yield 0, "ID: %s" % entry['id']
if "descriptors" in entry:
yield 0, "OS: %s" % entry['descriptors']['os']
- if len(entry['FCPaths']) > 0:
+ if len(entry.get('FCPaths', 0)) > 0:
yield 0, "FC Paths: %s" % len(entry['FCPaths'])
- elif len(entry['iSCSIPaths']) > 0:
+ elif len(entry.get('iSCSIPaths', 0)) > 0:
yield 0, "iSCSI Paths: %s" % len(entry['iSCSIPaths'])
diff --git a/checks/3par_ports b/checks/3par_ports
index e24e8a0..2eedf79 100644
--- a/checks/3par_ports
+++ b/checks/3par_ports
@@ -62,9 +62,9 @@ def translate_protocol_3par_ports(number):
return protocols[number]
def inventory_3par_ports(parsed):
- for entry in parsed['members']:
+ for entry in parsed.get('members', {}):
# Only create an item if not "FREE" (type = 3)
- if not entry['type'] == 3:
+ if not entry.get('type', 3) == 3:
item = "%s Node %s Slot %s Port %s" % \
(translate_protocol_3par_ports(entry['protocol']), \
entry['portPos']['node'],
@@ -108,7 +108,7 @@ def check_3par_ports(item, params, parsed):
4 : "PEER",
}
- for entry in parsed['members']:
+ for entry in parsed.get('members', {}):
if item == "%s Node %s Slot %s Port %s" %
(translate_protocol_3par_ports(entry['protocol']), \
entry['portPos']['node'],
entry['portPos']['slot'],
diff --git a/checks/3par_remotecopy b/checks/3par_remotecopy
index 2e5aaaf..2d68e5f 100644
--- a/checks/3par_remotecopy
+++ b/checks/3par_remotecopy
@@ -39,7 +39,7 @@ factory_settings['threepar_remotecopy_default_levels'] = {
}
def inventory_3par_remotecopy(parsed):
- if parsed["mode"] > 1:
+ if parsed.get("mode", 0) > 1:
return [ (None, {}) ]
@@ -50,7 +50,7 @@ def check_3par_remotecopy(_no_item, params, parsed):
3 : (2, "STOPPED"),
}
- state, state_readable = mode_translate[parsed['mode']]
+ state, state_readable = mode_translate[parsed.get('mode', 1)]
yield state, "Mode: %s" % state_readable
status_translate = {
@@ -64,7 +64,7 @@ def check_3par_remotecopy(_no_item, params, parsed):
8 : "UPGRADE",
}
- status = parsed['status']
+ status = parsed.get('status', 6)
state_readable = status_translate[status]
yield params[status], "Status: %s" % state_readable
diff --git a/checks/3par_system b/checks/3par_system
index 848b088..6559378 100644
--- a/checks/3par_system
+++ b/checks/3par_system
@@ -33,11 +33,11 @@ def inventory_3par_system(parsed):
def check_3par_system(item, _no_params, parsed):
state = 0
- serial = parsed['serialNumber']
- model = parsed['model']
- sys_version = parsed['systemVersion']
- cluster_nodes = parsed['clusterNodes']
- online_nodes = parsed['onlineNodes']
+ serial = parsed.get('serialNumber', "N/A")
+ model = parsed.get('model', "N/A")
+ sys_version = parsed.get('systemVersion', "N/A")
+ cluster_nodes = parsed.get('clusterNodes', 0)
+ online_nodes = parsed.get('onlineNodes', 0)
yield state, 'Model: %s, Version: %s, Serial number: %s, Online nodes: %s/%s'
% \
(model, sys_version, serial, len(online_nodes), len(cluster_nodes))
diff --git a/checks/3par_volumes b/checks/3par_volumes
index 04a941f..e8405f5 100644
--- a/checks/3par_volumes
+++ b/checks/3par_volumes
@@ -26,7 +26,7 @@
def inventory_3par_volumes(parsed):
- for entry in parsed['members']:
+ for entry in parsed.get('members', {}):
if not entry['policies']['system'] == True and \
"name" in entry:
yield ( entry['name'], {} )
@@ -48,13 +48,8 @@ def check_3par_volumes(item, params, parsed):
6 : "TDVV",
}
- for entry in parsed['members']:
- # Avoid crashing of complete check if a LUN does
- # not exist anymore or is not available at the moment
- if not "name" in entry:
- continue
-
- if entry['name'] == item:
+ for entry in parsed.get('members', {}):
+ if entry.get('name') == item:
total = entry['sizeMiB']
usr_free = total - entry['userSpace']['usedMiB']
yield df_check_filesystem_list(item, params, [ (item, total, usr_free, 0) ])