From 29617688149e4e5ef092acc7cd0a650e18f6496c Mon Sep 17 00:00:00 2001
From: "th.l" <thl-cmk@outlook.com>
Date: Thu, 8 Sep 2022 11:16:19 +0200
Subject: [PATCH] update project

---
 agent_based/checkpoint_threat_emulation.py |  14 +++++++++++++-
 checkpoint_threat_emulation.mkp            | Bin 4887 -> 4929 bytes
 2 files changed, 13 insertions(+), 1 deletion(-)

diff --git a/agent_based/checkpoint_threat_emulation.py b/agent_based/checkpoint_threat_emulation.py
index e217909..d17fff2 100644
--- a/agent_based/checkpoint_threat_emulation.py
+++ b/agent_based/checkpoint_threat_emulation.py
@@ -16,6 +16,7 @@
 # 2020-06-08: changed snmp-scan function
 # 2021-08-27: rewritten for CMK 2.0
 # 2022-09-08: fixed check_default_parameters
+#             fixed levels for remaining quota in cloud, use lower instead of upper
 #
 
 # snmpwalk sample
@@ -145,7 +146,6 @@ def check_checkpoint_threat_emulation(params, section: CheckpointTeStatus) -> Ch
 
     for levels, metric, label, value in [
         (params.get('used_monthly_quota_levels'), 'monthly_quota_on_cloud_used', 'Used quota on cloud', section.monthly_quota_on_cloud_used),
-        (params.get('remaining_quota_levels'), 'remaining_quota_on_cloud', 'Remaining quota on cloud', section.remaining_quota_on_cloud),  # max: quota_on_cloud
         (params.get('files_waiting_levels'), 'current_files_waiting_for_emulation', 'Current files waiting for emulation', section.current_files_waiting_for_emulation),  # max: quota_on_cloud
     ]:
         if value:
@@ -157,6 +157,18 @@ def check_checkpoint_threat_emulation(params, section: CheckpointTeStatus) -> Ch
                 render_func=lambda v: f'{v:.0f}'
             )
 
+    for levels, metric, label, value in [
+        (params.get('remaining_quota_levels'), 'remaining_quota_on_cloud', 'Remaining quota on cloud', section.remaining_quota_on_cloud),  # min: quota_on_cloud
+    ]:
+        if value:
+            yield from check_levels(
+                value=value,
+                label=label,
+                levels_lower=levels,
+                metric_name=metric,
+                render_func=lambda v: f'{v:.0f}'
+            )
+
     for metric, value in section.metric_count:
         yield Metric(
             value=value,
diff --git a/checkpoint_threat_emulation.mkp b/checkpoint_threat_emulation.mkp
index 877920ec73eda1ed23d1de792b54247e98bd9288..57ab82e46a3382726d99b6535b5ba5f736db996b 100644
GIT binary patch
literal 4929
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

delta 4877
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

-- 
GitLab