From f0795a0ab4bf5a3f28f52081109127225271d191 Mon Sep 17 00:00:00 2001 From: "th.l" <thl-cmk@outlook.com> Date: Wed, 30 Nov 2022 21:00:35 +0100 Subject: [PATCH] update project --- agent_based/checkpoint_asg_vsls.py | 58 +++++++++++++++++++++-------- checkpoint_asg_vsls.mkp | Bin 2312 -> 2463 bytes packages/checkpoint_asg_vsls | 2 +- 3 files changed, 43 insertions(+), 17 deletions(-) diff --git a/agent_based/checkpoint_asg_vsls.py b/agent_based/checkpoint_asg_vsls.py index 43ce98e..a649d3f 100644 --- a/agent_based/checkpoint_asg_vsls.py +++ b/agent_based/checkpoint_asg_vsls.py @@ -35,7 +35,7 @@ # ['50', '1 2'] # ], # [ -# ['0', 'k01001s11-017500009', '1', '1', 'OK', 'Primary chassis health is good.', '2', '2', '1', '1', '', ''] +# ['0', 'k01001s11-017500009', '1', '1', 'OK', 'Primary chassis health is good.', '2', '2', '1', '1'] # ] # ] # @@ -45,7 +45,7 @@ # VsPrimaryChassis='1', VsActiveChassis='1', VsHealth='OK', # VsReason='Primary chassis health is good.', ChassisState=[(2, 2), (1, 1)]) -from typing import List, Tuple, Optional +from typing import List, NamedTuple, Optional from dataclasses import dataclass from cmk.base.plugins.agent_based.agent_based_api.v1.type_defs import ( DiscoveryResult, @@ -66,17 +66,24 @@ from cmk.base.plugins.agent_based.agent_based_api.v1 import ( ) +class CheckpoinstAsgVlslChassis(NamedTuple): + InterfacesUp: int + InterfacesTotal: int + FwksUp: int + FwksTotal: int + + @dataclass class CheckpointAsgVsls: SgmRatio: str - SystemPrimaryChassis: str + SystemPrimaryChassis: list Vsid: str VsName: str VsPrimaryChassis: str VsActiveChassis: str VsHealth: str VsReason: str - ChassisState: List[Tuple[int, int]] + ChassisState: List[CheckpoinstAsgVlslChassis] def parse_checkpoint_asg_vsls(string_table: List[StringTable]) -> Optional[CheckpointAsgVsls]: @@ -87,14 +94,15 @@ def parse_checkpoint_asg_vsls(string_table: List[StringTable]) -> Optional[Check return try: - Vsid, VsName, VsPrimaryChassis, VsActiveChassis, VsHealth, VsReason, VsChassis1FwksUp, VsChassis1FwksTotal, \ - VsChassis2FwksUp, VsChassis2FwksTotal, VsChassis3FwksUp, VsChassis3FwksTotal = chassis_state[0] + Vsid, VsName, VsPrimaryChassis, VsActiveChassis, VsHealth, VsReason, \ + VsChassis1InterfacesUp, VsChassis1InterfacesTotal, VsChassis1FwksUp, VsChassis1FwksTotal, \ + VsChassis2InterfacesUp, VsChassis2InterfacesTotal, VsChassis2FwksUp, VsChassis2FwksTotal, = chassis_state[0] except (IndexError, ValueError): return return CheckpointAsgVsls( SgmRatio=SgmRatio, - SystemPrimaryChassis=SystemPrimaryChassis, + SystemPrimaryChassis=SystemPrimaryChassis.strip(), Vsid=Vsid, VsName=VsName, VsPrimaryChassis=VsPrimaryChassis, @@ -102,9 +110,18 @@ def parse_checkpoint_asg_vsls(string_table: List[StringTable]) -> Optional[Check VsHealth=VsHealth, VsReason=VsReason, ChassisState=[ - (int(VsChassis1FwksUp), int(VsChassis1FwksTotal)), - (int(VsChassis2FwksUp), int(VsChassis2FwksTotal)), - # (int(VsChassis3FwksUp), int(VsChassis3FwksTotal)), + CheckpoinstAsgVlslChassis( + int(VsChassis1InterfacesUp), + int(VsChassis1InterfacesTotal), + int(VsChassis1FwksUp), + int(VsChassis1FwksTotal) + ), + CheckpoinstAsgVlslChassis( + int(VsChassis2InterfacesUp), + int(VsChassis2InterfacesTotal), + int(VsChassis2FwksUp), + int(VsChassis2FwksTotal) + ), ] ) @@ -114,10 +131,11 @@ def discovery_checkpoint_asg_vsls(section: CheckpointAsgVsls) -> DiscoveryResult def check_checkpoint_asg_vsls(params, section: CheckpointAsgVsls) -> CheckResult: - SystemPrimaryChassis = section.SystemPrimaryChassis.strip().split(' ') inv_asgVslsVsActiveChassis = params['discovery_active_chassis'] longoutput = '' + longoutput += f'\nThreshold ratio for failover: {section.SgmRatio}' + longoutput += f'\nMethod for defaulting Chassis per each VS: {section.SystemPrimaryChassis}' longoutput += f'\nSystem name: {section.VsName}' longoutput += f'\nHealth status: {section.VsHealth}' longoutput += f'\nHealth reason: {section.VsReason}' @@ -132,14 +150,20 @@ def check_checkpoint_asg_vsls(params, section: CheckpointAsgVsls) -> CheckResult else: yield Result(state=State.OK, notice=yield_text) - for chassis in SystemPrimaryChassis: - VsChassisFwksUp, VsChassisFwksTotal = section.ChassisState[int(chassis) - 1] - yield_text = f'Chassis {chassis}: {VsChassisFwksUp}/{VsChassisFwksTotal} SGMs UP' + chassis = 0 + for InterfacesUp, InterfacesTotal, VsChassisFwksUp, VsChassisFwksTotal in section.ChassisState: + chassis += 1 + yield_text = f'Chassis {chassis}: {VsChassisFwksUp}/{VsChassisFwksTotal} SGMs Up' if VsChassisFwksUp != VsChassisFwksTotal: yield Result(state=State.CRIT, notice=yield_text) else: yield Result(state=State.OK, summary=yield_text) + yield_text = f'Interfaces: {InterfacesUp}/{InterfacesTotal} (Up/Total)' + if InterfacesUp != InterfacesTotal: + yield Result(state=State.CRIT, notice=yield_text) + else: + yield Result(state=State.OK, summary=yield_text) register.snmp_section( name='checkpoint_asg_vsls', @@ -161,12 +185,14 @@ register.snmp_section( '4', # asgVslsVsActiveChassis '5', # asgVslsVsHealth '6', # asgVslsVsReason + '7', # asgVslsVsChassis1InterfacesUp + '8', # asgVslsVsChassis1InterfacesTotal '9', # asgVslsVsChassis1FwksUp '10', # asgVslsVsChassis1FwksTotal + '21', # asgVslsVsChassis2InterfacesUp + '22', # asgVslsVsChassis2InterfacesTotal '23', # asgVslsVsChassis2FwksUp '24', # asgVslsVsChassis2FwksTotal - '33', # asgVslsVsChassis3FwksUp - '34', # asgVslsVsChassis3FwksTotal ] ), ], diff --git a/checkpoint_asg_vsls.mkp b/checkpoint_asg_vsls.mkp index 06e71246815a9af5efef8ceed1cc85702cf023e8..55870c42e3541ae6158d8e5488d1062443690112 100644 GIT binary patch delta 2448 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 Oh5rERI<v0;PyhfbJ;6c% delta 2296 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 S3KS^#XW<Vvq5Pi!PyhhLIdAU( diff --git a/packages/checkpoint_asg_vsls b/packages/checkpoint_asg_vsls index 910b669..22fb51e 100644 --- a/packages/checkpoint_asg_vsls +++ b/packages/checkpoint_asg_vsls @@ -7,5 +7,5 @@ 'title': 'Check Point Maestro SMO ASG VSLS Chassis', 'version': '20210911.v0.2', 'version.min_required': '2.0.0', - 'version.packaged': '2021.07.14', + 'version.packaged': '2021.09.20', 'version.usable_until': None} \ No newline at end of file -- GitLab