From 0fef55f18c6f76ee844ac04bd3cd20dbac8df2d4 Mon Sep 17 00:00:00 2001
From: OMD site cmk16x <thl-cmk@outlook.com>
Date: Tue, 10 Nov 2020 11:44:12 +0100
Subject: [PATCH] update project

---
 checkpoint_soft_raid.mkp                 | Bin 3894 -> 4420 bytes
 checks/checkpoint_soft_raid              |  47 +++++++++++++----------
 packages/checkpoint_soft_raid            |  10 +++--
 web/plugins/wato/checkpoint_soft_raid.py |  33 ++++++++++++++++
 4 files changed, 66 insertions(+), 24 deletions(-)
 create mode 100644 web/plugins/wato/checkpoint_soft_raid.py

diff --git a/checkpoint_soft_raid.mkp b/checkpoint_soft_raid.mkp
index 0ce965de97064a5c2fe540dd9d7e7cb894b8b2b3..29497dc04883b520198b3a93a90b8932d8a14a85 100644
GIT binary patch
literal 4420
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

literal 3894
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
VU#KYme_#X^8hV9{J0*AS{118Os^b6v

diff --git a/checks/checkpoint_soft_raid b/checks/checkpoint_soft_raid
index 1b084c0..40eca23 100644
--- a/checks/checkpoint_soft_raid
+++ b/checks/checkpoint_soft_raid
@@ -11,6 +11,9 @@
 # 13.03.2018 : code cleanup
 # 15.03.2018 : more code cleanup
 # 08.06.2020 : changed snmp-scan function
+# 10.11.2020 : removed perfdata
+#               added wato option to configure 'ignore disks'. For example on the Smart-1 5150 (Array has 12 Disks,
+#               but only 6 Disks are in the default hardware
 #
 # sample snmpwalk (one volume / two disks)
 #
@@ -57,7 +60,7 @@
 #
 
 factory_settings['checkpoint_soft_raid_defaults'] = {
-
+    'ignore_disks': '',
 }
 
 
@@ -125,10 +128,10 @@ def inventory_checkpoint_soft_raid(parse):
                 if disk.get('diskvolumeid') == volumeid:
                     disksonvolume.append(disk)
                     disks.remove(disk)
-            yield item, [volume, disksonvolume]
+            yield item, None
 
 
-def check_checkpoint_soft_raid(item, _no_params, parse):
+def check_checkpoint_soft_raid(item, params, parse):
     raidvolumestate = {
         0: 'OPTIMAL',
         1: 'DEGRADED',
@@ -206,6 +209,9 @@ def check_checkpoint_soft_raid(item, _no_params, parse):
     longoutput = ''
     perfdata = []
 
+    if params:
+        ignore_disks = params.get('ignore_disks', '').split(',')
+
     if len(volumes) != 0:
         for volume in volumes:
             volumeid = volume.get('volumeid')
@@ -234,28 +240,29 @@ def check_checkpoint_soft_raid(item, _no_params, parse):
                 # disk infos
                 for disk in disks:
                     diskid = disk.get('diskid')
-                    syncstate = disk.get('disksyncstate')
-                    if disk.get('diskstate') != 0:
-                        yield 2, 'Disk ID: %d state: %s' % (diskid, raiddiskstate.get(disk.get('diskstate')))
-                    else:
-                        yield 0, 'Disk ID %d state %s' % (diskid, raiddiskstate.get(disk.get('diskstate')))
+                    if not str(diskid) in ignore_disks:
+                        syncstate = disk.get('disksyncstate')
+                        if disk.get('diskstate') != 0:
+                            yield 2, 'Disk ID: %d state: %s' % (diskid, raiddiskstate.get(disk.get('diskstate')))
+                        else:
+                            yield 0, 'Disk ID %d state %s' % (diskid, raiddiskstate.get(disk.get('diskstate')))
 
-                    longoutput += '\n%s disk (id %d): ' % (raiddiskid.get(diskid), diskid)
-                    longoutput += 'State: %s, '         % raiddiskstate.get(disk.get('diskstate'))
-                    longoutput += 'Sync: %d%s, '        % (syncstate, '%')
-                    longoutput += 'Size: %d GB, '       % disk.get('disksize')
-                    longoutput += 'max LBA: %d, '       % disk.get('diskmaxlba')
-                    longoutput += 'Vendor: %s, '        % disk.get('diskvendor')
-                    longoutput += 'Product id: %s, '    % disk.get('diskproductid')
-                    longoutput += 'Revision: %s, '      % disk.get('diskrevision')
-                    longoutput += 'Flags: %s'           % getflags(disk.get('diskflags'), raiddiskflags)
+                        longoutput += '\n%s disk (id %d): ' % (raiddiskid.get(diskid), diskid)
+                        longoutput += 'State: %s, '         % raiddiskstate.get(disk.get('diskstate'))
+                        longoutput += 'Sync: %d%s, '        % (syncstate, '%')
+                        longoutput += 'Size: %d GB, '       % disk.get('disksize')
+                        longoutput += 'max LBA: %d, '       % disk.get('diskmaxlba')
+                        longoutput += 'Vendor: %s, '        % disk.get('diskvendor')
+                        longoutput += 'Product id: %s, '    % disk.get('diskproductid')
+                        longoutput += 'Revision: %s, '      % disk.get('diskrevision')
+                        longoutput += 'Flags: %s'           % getflags(disk.get('diskflags'), raiddiskflags)
 
-                    perfdata.append(('disk_id_%d' % diskid, syncstate, None, None, 0, 100))
+                        # perfdata.append(('disk_id_%d' % diskid, syncstate, None, None, 0, 100))
 
                 # remove last ', '
                 # infotext = infotext[:-2]
 
-                yield 0, infotext + longoutput, perfdata
+                yield 0, infotext + longoutput # , perfdata
 
 
 check_info['checkpoint_soft_raid'] = {
@@ -265,7 +272,7 @@ check_info['checkpoint_soft_raid'] = {
     'default_levels_variable' : 'checkpoint_soft_raid_defaults',
     'service_description'     : 'Soft RAID %s',
     'group'                   : 'checkpoint_soft_raid',
-    'has_perfdata'           : True,
+    # 'has_perfdata'           : True,
     'snmp_scan_function': lambda oid: (oid('.1.3.6.1.2.1.1.2.0').startswith('.1.3.6.1.4.1.2620.1.6.123.1') or
                                        oid('.1.3.6.1.2.1.1.2.0').startswith('.1.3.6.1.4.1.8072.3.2.10')) and
                                       oid('.1.3.6.1.4.1.2620.1.6.1.0', '').lower().startswith('svn foundation'),
diff --git a/packages/checkpoint_soft_raid b/packages/checkpoint_soft_raid
index 992578c..5b56845 100644
--- a/packages/checkpoint_soft_raid
+++ b/packages/checkpoint_soft_raid
@@ -2,10 +2,12 @@
  'description': u'monitor Check Point appliance soft RAID\n',
  'download_url': 'http://thl-cmk.hopto.org/',
  'files': {'checks': ['checkpoint_soft_raid'],
-           'web': ['plugins/metrics/checkpoint_soft_raid.py']},
+           'web': ['plugins/metrics/checkpoint_soft_raid.py',
+                   'plugins/wato/checkpoint_soft_raid.py']},
  'name': 'checkpoint_soft_raid',
- 'num_files': 2,
+ 'num_files': 3,
  'title': u'Check Point appliance soft RAID',
- 'version': '20200608.v0.2c',
+ 'version': '20201110.v0.3',
  'version.min_required': '1.2.8b8',
- 'version.packaged': '1.4.0p38'}
\ No newline at end of file
+ 'version.packaged': '1.6.0p12',
+ 'version.usable_until': None}
\ No newline at end of file
diff --git a/web/plugins/wato/checkpoint_soft_raid.py b/web/plugins/wato/checkpoint_soft_raid.py
new file mode 100644
index 0000000..47c994e
--- /dev/null
+++ b/web/plugins/wato/checkpoint_soft_raid.py
@@ -0,0 +1,33 @@
+#!/usr/bin/python
+# -*- encoding: utf-8; py-indent-offset: 4 -*-
+#
+# License: GNU General Public License v2
+#
+# Author: thl-cmk[at]outlook[dot]com
+# URL   : https://thl-cmk.hopto.org
+#
+# Check_MK checkpoint_soft_rais WATO plugin
+#
+#
+#
+
+register_check_parameters(
+    subgroup_networking,
+    'checkpoint_soft_raid',
+    _('Check Point Soft Raid'),
+    Dictionary(
+        help=_(''),
+        elements=[
+            ('ignore_disks',
+             TextUnicode(
+                 title=_('list of comma separated disk IDs to ignore'),
+                 help=_('This is usefull for RAID Arrays with missing disks like on the Smart-1 5150. There the '
+                        'array is configured for 12 Disk but in the default Hardware are only 6 Disks.'),
+                 default_value=None,
+                 allow_empty=False,
+             )),
+        ],
+    ),
+    None,
+    match_type='dict',
+)
-- 
GitLab