From 53c8ad22d769fe155f5738f3ff12dd77bf835377 Mon Sep 17 00:00:00 2001
From: OMD site cmk16x <thl-cmk@outlook.com>
Date: Thu, 17 Nov 2022 14:34:38 +0100
Subject: [PATCH] workaround for bad grad/maxgrade

---
 agent_based/checkpoint_asg_chassis.py | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/agent_based/checkpoint_asg_chassis.py b/agent_based/checkpoint_asg_chassis.py
index 1dc5178..6d0eb6a 100644
--- a/agent_based/checkpoint_asg_chassis.py
+++ b/agent_based/checkpoint_asg_chassis.py
@@ -14,6 +14,7 @@
 # 2021-09-10: rewrite parse function
 # 2021-09-11: added WATO, cleanup
 # 2022-10-23: fixed warning on upgrade "non-empty params vanished" for discovery_chassis and discovery_sgms
+# 2022-11-17: added workaround for wrong SNMP data in grad/maxgrade in R81.x
 #
 # sample snmpwalk 
 # .1.3.6.1.4.1.2620.1.48.28.1.0 = STRING: "Multi"
@@ -157,8 +158,9 @@ def check_checkpoint_asg_chassis(params, section: CheckPointASGChassis) -> Check
         else:
             yield Result(state=State.OK, summary=f'Chassis {chassis.id}: {chassis.status}')
 
-        summary = f'grade: {chassis.grade}/{chassis.maxgrade}'
-        details = f'Chassis {chassis.id} grade: {chassis.grade}/{chassis.maxgrade}'
+        maxgrade = max(chassis.grad, chassis.maxgrade)  # bad workaround for anmp bug in R81.x
+        summary = f'grade: {chassis.grade}/{maxgrade}'
+        details = f'Chassis {chassis.id} grade: {chassis.grade}/{maxgrade}'
         if chassis.grade != chassis.maxgrade:
             yield Result(state=State(params['state_chassis_not_max_grade']), summary=summary, details=details)
         else:
-- 
GitLab