From 458ac21d7935259ce7950743400613d8f5918e71 Mon Sep 17 00:00:00 2001
From: "th.l" <thl-cmk@outlook.com>
Date: Mon, 29 May 2023 21:22:14 +0200
Subject: [PATCH] update project

---
 checkpoint_mho_buffers-0.0.2-20230529.mkp | Bin 0 -> 3483 bytes
 checkpoint_mho_buffers.mkp                | Bin 3512 -> 3483 bytes
 gui/metrics/checkpoint_mho_buffers.py     |  96 ++++++++++++++++++++++
 gui/wato/checkpoint_mho_buffers.py        |  49 +++++++++++
 packages/checkpoint_mho_buffers           |  11 ++-
 5 files changed, 150 insertions(+), 6 deletions(-)
 create mode 100644 checkpoint_mho_buffers-0.0.2-20230529.mkp
 create mode 100644 gui/metrics/checkpoint_mho_buffers.py
 create mode 100644 gui/wato/checkpoint_mho_buffers.py

diff --git a/checkpoint_mho_buffers-0.0.2-20230529.mkp b/checkpoint_mho_buffers-0.0.2-20230529.mkp
new file mode 100644
index 0000000000000000000000000000000000000000..4552a472c32472218e7180734397142c222d9551
GIT binary patch
literal 3483
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
JQl0>K0034N<BR|R

literal 0
HcmV?d00001

diff --git a/checkpoint_mho_buffers.mkp b/checkpoint_mho_buffers.mkp
index a5df0745b63a0f2afe7f73902e33f2e782549511..4552a472c32472218e7180734397142c222d9551 100644
GIT binary patch
delta 3458
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

delta 3490
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
QK*9d-Ka3E~y8w6q0M_o?vH$=8

diff --git a/gui/metrics/checkpoint_mho_buffers.py b/gui/metrics/checkpoint_mho_buffers.py
new file mode 100644
index 0000000..364abd6
--- /dev/null
+++ b/gui/metrics/checkpoint_mho_buffers.py
@@ -0,0 +1,96 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+#
+
+from cmk.gui.i18n import _
+
+from cmk.gui.plugins.metrics.utils import (
+    metric_info,
+    graph_info,
+    perfometer_info,
+)
+
+
+_i = 0
+while _i < 8:
+    metric_info[f'checkpoint_mho_port_buffer_{_i}_frames'] = {
+        'title': _(f'RX buffer {_i} frames'),
+        'unit': '1/s',
+        'color': f'1{_i // 2 + 1}/{chr(97 + _i % 2)}',
+    }
+    metric_info[f'checkpoint_mho_port_buffer_{_i}_octets'] = {
+        'title': _(f'RX buffer {_i} octets'),
+        'unit': '1/s',
+        'color': f'2{_i // 2 + 1}/{chr(97 + _i % 2)}',
+    }
+
+    metric_info[f'checkpoint_mho_port_buffer_{_i}_discards'] = {
+        'title': _(f'RX buffer {_i} discards'),
+        'unit': '1/s',
+        'color': f'3{_i // 2 + 1}/{chr(97 + _i % 2)}',
+    }
+
+    _i += 1
+
+metric_info['checkpoint_mho_port_buffer_sum_frames'] = {
+    'title': _('RX buffer frames summary'),
+    'unit': '1/s',
+    'color': '15/a',
+}
+metric_info['checkpoint_mho_port_buffer_sum_octets'] = {
+    'title': _('RX buffer octets summary'),
+    'unit': '1/s',
+    'color': '25/a',
+}
+
+metric_info['checkpoint_mho_port_buffer_sum_discards'] = {
+    'title': _('RX buffer discards summary'),
+    'unit': '1/s',
+    'color': f'35/a',
+}
+
+
+graph_info['checkpoint_mho_port_buffer_frames'] = {
+    'title': _('Check Point MHO RX buffer frames'),
+    'metrics': [
+        ('checkpoint_mho_port_buffer_sum_frames', 'line'),
+        ('checkpoint_mho_port_buffer_0_frames', 'line'),
+        ('checkpoint_mho_port_buffer_1_frames', 'line'),
+        ('checkpoint_mho_port_buffer_2_frames', 'line'),
+        ('checkpoint_mho_port_buffer_3_frames', 'line'),
+        ('checkpoint_mho_port_buffer_4_frames', 'line'),
+        ('checkpoint_mho_port_buffer_5_frames', 'line'),
+        ('checkpoint_mho_port_buffer_6_frames', 'line'),
+        ('checkpoint_mho_port_buffer_7_frames', 'line'),
+    ],
+}
+
+graph_info['checkpoint_mho_port_buffer_octets'] = {
+    'title': _('Check Point MHO RX buffer octets'),
+    'metrics': [
+        ('checkpoint_mho_port_buffer_sum_octets', 'line'),
+        ('checkpoint_mho_port_buffer_0_octets', 'line'),
+        ('checkpoint_mho_port_buffer_1_octets', 'line'),
+        ('checkpoint_mho_port_buffer_2_octets', 'line'),
+        ('checkpoint_mho_port_buffer_3_octets', 'line'),
+        ('checkpoint_mho_port_buffer_4_octets', 'line'),
+        ('checkpoint_mho_port_buffer_5_octets', 'line'),
+        ('checkpoint_mho_port_buffer_6_octets', 'line'),
+        ('checkpoint_mho_port_buffer_7_octets', 'line'),
+    ],
+}
+
+graph_info['checkpoint_mho_port_buffer_discards'] = {
+    'title': _('Check Point MHO RX buffer discards'),
+    'metrics': [
+        ('checkpoint_mho_port_buffer_sum_discards', 'line'),
+        ('checkpoint_mho_port_buffer_0_discards', 'line'),
+        ('checkpoint_mho_port_buffer_1_discards', 'line'),
+        ('checkpoint_mho_port_buffer_2_discards', 'line'),
+        ('checkpoint_mho_port_buffer_3_discards', 'line'),
+        ('checkpoint_mho_port_buffer_4_discards', 'line'),
+        ('checkpoint_mho_port_buffer_5_discards', 'line'),
+        ('checkpoint_mho_port_buffer_6_discards', 'line'),
+        ('checkpoint_mho_port_buffer_7_discards', 'line'),
+    ],
+}
diff --git a/gui/wato/checkpoint_mho_buffers.py b/gui/wato/checkpoint_mho_buffers.py
new file mode 100644
index 0000000..2040dc4
--- /dev/null
+++ b/gui/wato/checkpoint_mho_buffers.py
@@ -0,0 +1,49 @@
+#!/usr/bin/env python3
+# -*- coding: utf-8 -*-
+#
+# License: GNU General Public License v2
+#
+# Author: thl-cmk[at]outlook[dot]com
+# URL   : https://thl-cmk.hopto.org
+# Date  : 2021-12-02
+#
+from cmk.gui.i18n import _
+from cmk.gui.valuespec import (
+    Dictionary,
+    FixedValue,
+)
+
+from cmk.gui.plugins.wato.utils import (
+    rulespec_registry,
+    RulespecGroupCheckParametersDiscovery,
+    HostRulespec,
+)
+
+
+def _valuespec_discovery_checkpoint_mho_buffers():
+    return Dictionary(
+            title=_('Check Point MHO buffers'),
+            elements=[
+                ('add_admin_down',
+                 FixedValue(
+                     False,
+                     title=_('Do not add Admin down ports'),
+                     totext=_('If enabled the plugin will not add ports in Admin down state'),
+                 )),
+                ('add_link_down',
+                 FixedValue(
+                     False,
+                     title=_('Do not add Link down ports'),
+                     totext=_('If enabled the plugin will not add ports in Link down state'),
+                 )),
+            ],
+        )
+
+
+rulespec_registry.register(
+    HostRulespec(
+        group=RulespecGroupCheckParametersDiscovery,
+        match_type='dict',
+        name='discovery_checkpoint_mho_buffers',
+        valuespec=_valuespec_discovery_checkpoint_mho_buffers,
+    ))
diff --git a/packages/checkpoint_mho_buffers b/packages/checkpoint_mho_buffers
index 4ade262..ae8a74b 100644
--- a/packages/checkpoint_mho_buffers
+++ b/packages/checkpoint_mho_buffers
@@ -4,12 +4,11 @@
                 'Tested on Orchestrator MHO-140 with R8020.SP HFA_317\n',
  'download_url': 'https://thl-cmk.hopto.org',
  'files': {'agent_based': ['checkpoint_mho_buffers.py'],
-           'web': ['plugins/metrics/checkpoint_mho_buffers.py',
-                   'plugins/wato/checkpoint_mho_buffers.py']},
+           'gui': ['metrics/checkpoint_mho_buffers.py',
+                   'wato/checkpoint_mho_buffers.py']},
  'name': 'checkpoint_mho_buffers',
- 'num_files': 3,
  'title': 'Check Point MHO port RX buffers',
- 'version': '20211130.v0.0.1',
- 'version.min_required': '2.0.0',
- 'version.packaged': '2021.09.20',
+ 'version': '0.0.2-20230529',
+ 'version.min_required': '2.1.0b1',
+ 'version.packaged': '2.1.0p21',
  'version.usable_until': None}
\ No newline at end of file
-- 
GitLab