From 04938e4f48242f917486384bcdb9cd3f898073ff Mon Sep 17 00:00:00 2001 From: thl-cmk <thl-cmk@outlook.com> Date: Mon, 1 Mar 2021 22:23:03 +0100 Subject: [PATCH] update project --- agent_based/checkpoint_asg_diag.py | 53 ++++++++++++++++++++++------- checkpoint_asg_diag.mkp | Bin 3122 -> 3339 bytes 2 files changed, 41 insertions(+), 12 deletions(-) diff --git a/agent_based/checkpoint_asg_diag.py b/agent_based/checkpoint_asg_diag.py index 0f64892..545a005 100644 --- a/agent_based/checkpoint_asg_diag.py +++ b/agent_based/checkpoint_asg_diag.py @@ -88,9 +88,15 @@ from .agent_based_api.v1 import ( any_of, ) +class CheckPointASGDiagSummary(NamedTuple): + date: str + time: str + passed: int + maxtest: int + failed: list class CheckPointASGDiag(NamedTuple): - summary: str + summary: CheckPointASGDiagSummary tests: List @@ -100,8 +106,16 @@ def parse_checkpoint_asg_diag(string_table: List[StringTable]) -> CheckPointASGD if len(asgSummary) == 0: return None + asgSummary = asgSummary[0][0] + parsed = CheckPointASGDiag - parsed.summary = asgSummary[0][0] + parsed.summary = CheckPointASGDiagSummary + # todo: change date to real date string, and add warn/crit if last run to old + parsed.summary.date = asgSummary[0][0][3:13] + parsed.summary.time = asgSummary[0][0][18:26] + parsed.summary.passed = int(asgSummary[28:].split(".")[0].split(' ')[1].split('/')[0]) + parsed.summary.maxtest = int(asgSummary[28:].split(".")[0].split(' ')[1].split('/')[1]) + parsed.summary.failed = list(map(int, asgSummary.split(':')[-1].strip(' ').split(','))) parsed.tests = asgTests return parsed @@ -119,8 +133,23 @@ def check_checkpoint_asg_diag(params, section: CheckPointASGDiag): result: str comment: str - summary = 'Last run ' + section.summary + summary = '' + summary += 'Last run on: %s at: %s' % (section.summary.date, section.summary.time) + summary += ' Passed %d/%d tests' % (section.summary.passed, section.summary.maxtest) + if len(section.summary.failed) > 0: + summary += ' Failed: %s' % ','.join(map(str, section.summary.failed)) + details = '\n\nTo verify this output use the "asg diag verify" command on the Check Point SMO cli,\n' + + for test in section.tests: + test = CheckPointASGDiagTest(*test) + if test.comment == '': + details += '\nIndex: %s, Name: %s, LastRun: %s, Restult: %s' % ( + test.index, test.name, test.lastrun, test.result) + else: + details += '\nIndex: %s, Name: %s, LastRun: %s, Restult: %s, Comment: %s' % ( + test.index, test.name, test.result, test.result, test.comment) + state = State.OK asg_diag_ignore = [] @@ -129,9 +158,10 @@ def check_checkpoint_asg_diag(params, section: CheckPointASGDiag): if params: asg_diag_ignore = params.get('asg_diag_ignore', []) asg_diag_warning = params.get('asg_diag_warning', []) + asg_diag_ignore.sort() if len(asg_diag_ignore) > 0: - summary += ', Ignored tests: %s' % str(asg_diag_ignore).strip('[').strip(']').replace(' ', '') + summary += ', Ignored tests: %s' % ','.join(map(str, asg_diag_ignore)) for test in section.tests: test = CheckPointASGDiagTest(*test) @@ -142,14 +172,13 @@ def check_checkpoint_asg_diag(params, section: CheckPointASGDiag): details += '\nIndex: %s, Name: %s, LastRun: %s, Restult: %s, Comment: %s' % ( test.index, test.name, test.result, test.result, test.comment) - asgTestIndex = int(test.index) - if not asgTestIndex in asg_diag_ignore: - if test.result.lower() == 'failed (!)': - if asgTestIndex in asg_diag_warning: - if state == State.OK: - state = State.WARN - else: - state = State.CRIT + for test in section.summary.failed: + if not test in asg_diag_ignore: + if test in asg_diag_warning: + if state == State.OK: + state = State.WARN + else: + state = State.CRIT yield Result(state=state, summary=summary, details=details) diff --git a/checkpoint_asg_diag.mkp b/checkpoint_asg_diag.mkp index 2d910cc08f018ff4fbb37abed82d3b8a4b3b0902..9c6f26220ba522ef5d15aad526044b16c7e3ff88 100644 GIT binary patch delta 3330 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 CMP0D~ delta 3112 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 CK^h4F -- GitLab