From abbbf0e47941f5950acbca0814d92bca196f2492 Mon Sep 17 00:00:00 2001
From: "th.l" <thl-cmk@outlook.com>
Date: Fri, 27 Aug 2021 00:14:34 +0200
Subject: [PATCH] update project

---
 agent_based/checkpoint_ia_adquery.py         |  11 ++-
 agent_based/checkpoint_identity_awareness.py |   2 +-
 checkpoint_identity_awareness.mkp            | Bin 6279 -> 6363 bytes
 web/plugins/metrics/checkpoint_ia_adquery.py |  93 +++++--------------
 4 files changed, 29 insertions(+), 77 deletions(-)

diff --git a/agent_based/checkpoint_ia_adquery.py b/agent_based/checkpoint_ia_adquery.py
index 75592c6..965f29b 100644
--- a/agent_based/checkpoint_ia_adquery.py
+++ b/agent_based/checkpoint_ia_adquery.py
@@ -74,6 +74,7 @@ from cmk.base.plugins.agent_based.agent_based_api.v1.type_defs import (
 
 @dataclass
 class CheckpointIaDc:
+    index: int
     status_code: int
     status_str: str
     events: int
@@ -92,7 +93,7 @@ def parse_checkpoint_ia_adquery(string_table: StringTable) -> Optional[Dict[str,
     domains = {}
     for entry in string_table:
         try:
-            status, domain, ipaddr, events = entry
+            index, status, domain, ipaddr, events = entry
         except ValueError:
             return
 
@@ -102,6 +103,7 @@ def parse_checkpoint_ia_adquery(string_table: StringTable) -> Optional[Dict[str,
 
             domains[domain].update({
                 ipaddr: CheckpointIaDc(
+                    index=int(index),
                     status_code=int(status),
                     status_str=_dcstatus.get(status, f'unknown: {status}'),
                     events=int(events)
@@ -136,8 +138,8 @@ def check_checkpoint_ia_adquery(item, params, section: Dict[str, Dict[str, Check
             value = 0
         yield from check_levels(
             value=value,
-            label=f'DC {key} Events',
-            metric_name=f'checkpoint_ia_adquery_{dc_ip_address}',
+            label=f'DC{dc.index:02d} ({key}) Events',
+            metric_name=f'checkpoint_ia_adquery_dc_{dc.index}',
             render_func=lambda v: f'{v:.2f}/s',
             notice_only=True
         )
@@ -167,6 +169,7 @@ register.snmp_section(
     fetch=SNMPTree(
         base='.1.3.6.1.4.1.2620.1.38.25.1',  # CHECKPOINT-MIB::identityAwarenessADQueryStatusEntry
         oids=[
+            '1',  # identityAwarenessADQueryStatusTableIndex
             '2',  # identityAwarenessADQueryStatusCurrStatus
             '3',  # identityAwarenessADQueryStatusDomainName
             '4',  # identityAwarenessADQueryStatusDomainIP
@@ -184,7 +187,7 @@ register.snmp_section(
 
 register.check_plugin(
     name='checkpoint_ia_adquery',
-    service_name='Identity Awareness AD Domain %s',
+    service_name='IA AD Domain %s',
     discovery_function=discovery_checkpoint_ia_adquery,
     check_function=check_checkpoint_ia_adquery,
     check_default_parameters={
diff --git a/agent_based/checkpoint_identity_awareness.py b/agent_based/checkpoint_identity_awareness.py
index 8323114..1cb6ee2 100644
--- a/agent_based/checkpoint_identity_awareness.py
+++ b/agent_based/checkpoint_identity_awareness.py
@@ -224,7 +224,7 @@ register.snmp_section(
 
 register.check_plugin(
     name='checkpoint_identity_awareness',
-    service_name='Identity Awareness status',
+    service_name='IA summary',
     discovery_function=discovery_checkpoint_identity_awareness,
     check_function=check_checkpoint_identity_awareness,
     check_default_parameters={
diff --git a/checkpoint_identity_awareness.mkp b/checkpoint_identity_awareness.mkp
index 6f955c27b3fe11a9f76208d9ac9cbabc7680c3ba..b6356f26bd3fca2b597d9a772cd0acd5aa7759e5 100644
GIT binary patch
delta 6366
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
Z%m05=>HjgI8W1SVC}uVf%oq&J{{TAOYMKB5

literal 6279
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

diff --git a/web/plugins/metrics/checkpoint_ia_adquery.py b/web/plugins/metrics/checkpoint_ia_adquery.py
index 0aaf9e1..cadbd0e 100644
--- a/web/plugins/metrics/checkpoint_ia_adquery.py
+++ b/web/plugins/metrics/checkpoint_ia_adquery.py
@@ -17,93 +17,42 @@ from cmk.gui.plugins.metrics import (
     metric_info,
     graph_info,
     perfometer_info,
+    indexed_color,
 )
 
-metric_info['checkpoint_ia_adquery_summary'] = {
-    'title': _('Events summary'),
-    'unit': '1/s',
-    'color': '11/b',
-}
-# create one metric per dc
-metric_info['checkpoint_ia_adquery_dc_10_140_110_1'] = {
-    'title': _('SDACDOM401 (10.140.110.1)'),
-    'unit': '1/s',
-    'color': '12/a',
-}
-metric_info['checkpoint_ia_adquery_dc_10_140_110_2'] = {
-    'title': _('SDACDOM402 (10.140.110.2)'),
-    'unit': '1/s',
-    'color': '22/a',
-}
+_MAX_DCS = 48  # max colors ;-)
 
-metric_info['checkpoint_ia_adquery_dc_10_215_2_252'] = {
-    'title': _('SDACDOM02 (10.215.2.252)'),
-    'unit': '1/s',
-    'color': '22/a',
-}
-metric_info['checkpoint_ia_adquery_dc_10_215_2_253'] = {
-    'title': _('SDACDOM01 (10.215.2.253)'),
-    'unit': '1/s',
-    'color': '32/a',
-}
-metric_info['checkpoint_ia_adquery_dc_10_225_110_240'] = {
-    'title': _('SDACDNS01 (10.225.110.240)'),
+metric_info['checkpoint_ia_adquery_events_sum'] = {
+    'title': _('Events summary'),
     'unit': '1/s',
-    'color': '42/a',
+    'color': '26/a',
 }
 
-metric_info['checkpoint_ia_adquery_dc_10_250_1_112'] = {
-    'title': _('S250AD01 (10.250.1.112)'),
-    'unit': '1/s',
-    'color': '33/a',
-}
-metric_info['checkpoint_ia_adquery_dc_10_250_1_113'] = {
-    'title': _('S250AD02 (10.250.1.113)'),
-    'unit': '1/s',
-    'color': '43/a',
-}
-#
-#
-#
+for i in range(1, _MAX_DCS):
+    # generate different colors for each DC.
+    # unfortunately there are only 24 colors on our
+    # color wheel, times two for two shades each, we
+    # can only draw 48 differently colored graphs
+    metric_info[f'checkpoint_ia_adquery_dc_{i}'] = {
+        'title': _(f'DC{i:02d} Events'),
+        'unit': '1/s',
+        'color': indexed_color(i, _MAX_DCS),
+    }
 
+dc_metric = ([(f'checkpoint_ia_adquery_dc_{num:d}', 'stack') for num in range(_MAX_DCS, 0, -1)])
+dc_metric.insert(0, ('checkpoint_ia_adquery_events_sum', 'line'))
 
 graph_info['checkpoint_ia_adquery_dc'] = {
     'title': _('Check Point Identity Awareness AD queries'),
-    'metrics': [
-        ('checkpoint_ia_adquery_summary', 'line'),
-        ('checkpoint_ia_adquery_dc_10_250_1_112', 'stack'),
-        ('checkpoint_ia_adquery_dc_10_250_1_113', 'stack'),
-    ],
-    'optional_metrics': [
-        'checkpoint_ia_adquery_dc_10_250_1_112',
-        'checkpoint_ia_adquery_dc_10_250_1_113',
-    ],
+    'metrics': dc_metric,
+    'range': (0, None),
+    'optional_metrics': [f'checkpoint_ia_adquery_dc_{num:d}' for num in range(0, _MAX_DCS + 1)]
 }
 
-
-# graph_info.append({
-#     'title': _('Check Point Identity Awareness AD queries'),
-#     'metrics': [
-#         ('checkpoint_ia_adquery_summary', 'line'),
-#         ('checkpoint_ia_adquery_dc_10_140_110_1', 'stack'),
-#         ('checkpoint_ia_adquery_dc_10_140_110_2', 'stack'),
-#     ],
-# })
-
-# graph_info.append({
-#     'title': _('Check Point Identity Awareness AD queries'),
-#     'metrics': [
-#         ('checkpoint_ia_adquery_summary', 'line'),
-#         ('checkpoint_ia_adquery_dc_10_215_2_252', 'stack'),
-#         ('checkpoint_ia_adquery_dc_10_215_2_253', 'stack'),
-#         ('checkpoint_ia_adquery_dc_10_225_110_240', 'stack'),
-#     ],
-# })
-
 perfometer_info.append({
     'type': 'linear',
     'segments': [
-        'checkpoint_ia_adquery_summary',
+        'checkpoint_ia_adquery_events_sum',
     ],
     'total': 100,
 })
-- 
GitLab