From 1d8b21fb0c9cff3db1291f648b2bddd5855b178c Mon Sep 17 00:00:00 2001
From: thl-cmk <thl-cmk@outlook.com>
Date: Thu, 25 Feb 2021 23:22:07 +0100
Subject: [PATCH] update project

---
 agent_based/checkpoint_asg_chassis.py |  18 +++++++++++-------
 checkman/checkpoint_asg_chassis       |   3 ++-
 checkpoint_asg_chassis.mkp            | Bin 2874 -> 2956 bytes
 3 files changed, 13 insertions(+), 8 deletions(-)

diff --git a/agent_based/checkpoint_asg_chassis.py b/agent_based/checkpoint_asg_chassis.py
index e128154..96b147a 100644
--- a/agent_based/checkpoint_asg_chassis.py
+++ b/agent_based/checkpoint_asg_chassis.py
@@ -10,6 +10,7 @@
 # Monitor Check Point Maestro SMO Chassis status (asg monitor)
 #
 # 2021-02-25: rewrite for CMK 2.x
+#             added warning/critical is chassis grade not equeal maxGrade
 #
 # ToDo: add warning if SGM/Chassis is missing compared to inventory time
 #
@@ -92,6 +93,7 @@ class CheckPointASGChassisInfo(NamedTuple):
     synctoactive: str
     synctostandby: str
 
+
 class CheckPointASGChassisParams(NamedTuple):
     id: str
     status: str
@@ -99,6 +101,7 @@ class CheckPointASGChassisParams(NamedTuple):
     maxgrade: str
     uniqueip: str
 
+
 class CheckPointASGChassisSgms(NamedTuple):
     id: str
     status: str
@@ -110,7 +113,7 @@ class CheckPointASGChassis(NamedTuple):
     sgms: List
 
 
-def parse_checkpoint_asg_chassis(string_table: List[StringTable]): #-> CheckPointASGChassis:
+def parse_checkpoint_asg_chassis(string_table: List[StringTable]):  # -> CheckPointASGChassis:
     chassis = CheckPointASGChassis
     try:
         chassis.info = CheckPointASGChassisInfo(*string_table[0][0])
@@ -128,9 +131,8 @@ def discovery_checkpoint_asg_chassis(section: CheckPointASGChassis) -> Discovery
 
 
 def check_checkpoint_asg_chassis(params, section: CheckPointASGChassis) -> CheckResult:
-
     details = ''
-    details += '\n\nTo verify this output use the "asg monitor" CLI command on the Check Point SMO,\n'
+    details += '\nTo verify this output use the "asg monitor" CLI command on the Check Point SMO,\n'
     details += '\nChassis Mode: %s' % section.info.mode
     details += '\nH/A Mode: %s' % section.info.hamode
     details += '\nSync to active: %s' % section.info.synctoactive
@@ -142,16 +144,17 @@ def check_checkpoint_asg_chassis(params, section: CheckPointASGChassis) -> Check
         chassis = CheckPointASGChassisParams(*chassis)
 
         if chassis.uniqueip != 'N/A':
-             details += '\nChassis %s unique IP: %s' % (chassis.id, chassis.uniqueip)
+            details += '\nChassis %s unique IP: %s' % (chassis.id, chassis.uniqueip)
 
         for inv_chassis in inv_chassis_parms:
             inv_chassis = CheckPointASGChassisParams(*inv_chassis)
             if chassis.id == inv_chassis.id:
-                yield_text = 'Chassis %s: %s, grade: %s/%s' % (chassis.id, chassis.status,chassis.grade,chassis.maxgrade)
-                if not chassis.status.lower() in ['active', 'standby']:
+                yield_text = 'Chassis %s: %s, grade: %s/%s' % (
+                chassis.id, chassis.status, chassis.grade, chassis.maxgrade)
+                if not chassis.status.lower() in ['active', 'standby'] or chassis.grade != chassis.maxgrade:
                     yield Result(state=State.CRIT, summary=yield_text)
                 elif (chassis.status != inv_chassis.status) or (chassis.grade != inv_chassis.grade) or (chassis.maxgrade != inv_chassis.maxgrade):
-                     yield Result(State.WARNING, notice=yield_text + ' (expected: %s, grade: %s/%s)' % (inv_chassis.status, inv_chassis.grade, inv_chassis.maxgrade))
+                    yield Result(State.WARNING, notice=yield_text + ' (expected: %s, grade: %s/%s)' % (inv_chassis.status, inv_chassis.grade, inv_chassis.maxgrade))
                 else:
                     yield Result(state=State.OK, summary=yield_text)
 
@@ -167,6 +170,7 @@ def check_checkpoint_asg_chassis(params, section: CheckPointASGChassis) -> Check
                  summary='%d/%d SGMs active' % (active_sgms, len(section.sgms)),
                  details=details)
 
+
 register.snmp_section(
     name='checkpoint_asg_chassis',
     parse_function=parse_checkpoint_asg_chassis,
diff --git a/checkman/checkpoint_asg_chassis b/checkman/checkpoint_asg_chassis
index aa00be2..56dce08 100644
--- a/checkman/checkpoint_asg_chassis
+++ b/checkman/checkpoint_asg_chassis
@@ -8,7 +8,8 @@ description:
  and of the Security Gateway Modules (SGM).
  The Check goes into warning if the chassis state is not equal compared to the state at invetory time.
  If the chassis state is not "ACTIVE" or "STANDBY" the check goes critical. Also if a SGM not "ACTIVE".
- 
+ To verify the output of this check use the "asg monitor" CLI command on the Check Point Single Management Object (SMO).
+
 default thresholds are:
  there are no defaults.
 
diff --git a/checkpoint_asg_chassis.mkp b/checkpoint_asg_chassis.mkp
index 4b992b4e089bac7d6a2603200b2f3d9c60e7d0f0..431c9531ee5ff0e6f50a543c63e5fc3afe8fbf4a 100644
GIT binary patch
delta 2940
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
Xdg&JC|8K{~G``}Vo(-mOCZ_)Z<0!x>

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

-- 
GitLab