diff --git a/agent_based/checkpoint_asg_chassis.py b/agent_based/checkpoint_asg_chassis.py index f25c4a3063fad33e3ef4a8c8f42e17ae9512dae4..3295b0f16153b5a5f95d05a5ad2fffac6f095a62 100644 --- a/agent_based/checkpoint_asg_chassis.py +++ b/agent_based/checkpoint_asg_chassis.py @@ -11,6 +11,7 @@ # # 2021-02-25: rewrite for CMK 2.x # added warning/critical is chassis grade not equeal maxGrade +# 2021-09-10: rewrite parse function # # ToDo: add warning if SGM/Chassis is missing compared to inventory time # @@ -65,15 +66,15 @@ # from pprint import pprint -from typing import Mapping, Dict, List, Tuple, NamedTuple +from typing import Mapping, Dict, List, Tuple, NamedTuple, Optional -from .agent_based_api.v1.type_defs import ( +from cmk.base.plugins.agent_based.agent_based_api.v1.type_defs import ( DiscoveryResult, CheckResult, StringTable, ) -from .agent_based_api.v1 import ( +from cmk.base.plugins.agent_based.agent_based_api.v1 import ( register, Service, equals, @@ -112,17 +113,15 @@ class CheckPointASGChassis(NamedTuple): sgms: List -def parse_checkpoint_asg_chassis(string_table: List[StringTable]) -> CheckPointASGChassis: - chassis = CheckPointASGChassis +def parse_checkpoint_asg_chassis(string_table: List[StringTable]) -> Optional[CheckPointASGChassis]: try: - chassis.info = CheckPointASGChassisInfo(*string_table[0][0]) - except TypeError: - return None - chassis.chassis = string_table[1] - chassis.sgms = string_table[2] - - parsed = chassis - return parsed + return CheckPointASGChassis( + info=CheckPointASGChassisInfo(*string_table[0][0]), + chassis=string_table[1], + sgms=string_table[2] + ) + except (TypeError, IndexError): + pass def discovery_checkpoint_asg_chassis(section: CheckPointASGChassis) -> DiscoveryResult: @@ -152,7 +151,7 @@ def check_checkpoint_asg_chassis(params, section: CheckPointASGChassis) -> Check 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.WARN, notice=yield_text + ' (expected: %s, grade: %s/%s)' % (inv_chassis.status, inv_chassis.grade, inv_chassis.maxgrade)) + yield Result(state=State.WARN, 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) diff --git a/checkpoint_asg_chassis.mkp b/checkpoint_asg_chassis.mkp index f8766dd0c4278ff0608e44ff729186046bf56684..a2106c38776678c9d46049dedfdde96fa06e9c70 100644 Binary files a/checkpoint_asg_chassis.mkp and b/checkpoint_asg_chassis.mkp differ diff --git a/packages/checkpoint_asg_chassis b/packages/checkpoint_asg_chassis index f59b1c18e1489f5dd8136e283f251caea2874ac3..1fde3a6d0fe3674f289a75a2e1bae4f3f263ea1c 100644 --- a/packages/checkpoint_asg_chassis +++ b/packages/checkpoint_asg_chassis @@ -9,5 +9,5 @@ 'title': 'Check Point Maestro SMO ASG Chassis', 'version': '20210225.v0.2', 'version.min_required': '2.0.0b8', - 'version.packaged': '2.0.0p1', + 'version.packaged': '2021.07.14', 'version.usable_until': None} \ No newline at end of file