From 616372346d8b4ecddecae0d948e30846f7a55109 Mon Sep 17 00:00:00 2001 From: "th.l" <thl-cmk@outlook.com> Date: Sun, 23 Apr 2023 19:30:50 +0200 Subject: [PATCH] update project --- agent_based/checkpoint_powersupply.py | 31 +++++++++--------- checkpoint_powersupply.mkp | Bin 3092 -> 2285 bytes gui/wato/checkpoint_powersupply.py | 44 ++++++++++++++++++++++++++ packages/checkpoint_powersupply | 10 +++--- 4 files changed, 64 insertions(+), 21 deletions(-) create mode 100644 gui/wato/checkpoint_powersupply.py diff --git a/agent_based/checkpoint_powersupply.py b/agent_based/checkpoint_powersupply.py index 5a65d5c..fd3252a 100644 --- a/agent_based/checkpoint_powersupply.py +++ b/agent_based/checkpoint_powersupply.py @@ -12,6 +12,7 @@ # 2020-06-08: changed snmp-scan function # 2021-08-10: rewritten for CMK 2.0 # added WATO +# 2023-04-23: refactoring # # # ToDo: remove VSX... @@ -30,12 +31,6 @@ # .1.3.6.1.4.1.2620.1.6.7.9.1.1.2.2.0 = STRING: Up # -# -# sample section -# smart-1 5150 -# {'1': 'Present', '2': 'Present'} -# 23800 appliance -# {'1': 'Up', '2': 'Up'} from typing import Dict, Optional @@ -59,12 +54,18 @@ from cmk.base.plugins.agent_based.agent_based_api.v1 import ( def parse_checkpoint_powersupply(string_table: StringTable) -> Dict[str, str]: - powersupplys = {} - for psindex, psstatus in string_table: - if psindex.isdigit(): - powersupplys.update({psindex: psstatus}) + """ + >>> print(parse_checkpoint_powersupply([['1', 'Up'], ['2', 'Up']])) + {'1': 'Up', '2': 'Up'} + >>> print(parse_checkpoint_powersupply([['1', 'Present'], ['2', 'Present']])) + {'1': 'Present', '2': 'Present'} + """ + power_supplys = {} + for ps_index, ps_status in string_table: + if ps_index.isdigit(): + power_supplys.update({ps_index: ps_status}) - return powersupplys + return power_supplys def discovery_checkpoint_powersupply(section: Dict[str, str]) -> DiscoveryResult: @@ -74,14 +75,14 @@ def discovery_checkpoint_powersupply(section: Dict[str, str]) -> DiscoveryResult def check_checkpoint_powersupply(item, params, section: Dict[str, str]) -> Optional[CheckResult]: try: - psstatus = section[item] + ps_status = section[item] except KeyError: return - if psstatus.lower() in ['up', 'present']: - yield Result(state=State.OK, summary=f'Status: {psstatus}') + if ps_status.lower() in ['up', 'present']: + yield Result(state=State.OK, summary=f'Status: {ps_status}') else: - yield Result(state=State(params['ps_not_up']), summary=f'Status: {psstatus}') + yield Result(state=State(params['ps_not_up']), summary=f'Status: {ps_status}') register.snmp_section( diff --git a/checkpoint_powersupply.mkp b/checkpoint_powersupply.mkp index c19b16f8fd251bf840ff1ac48959c090d01b69c8..fba787f008fc7b15b776c194a33d2a92720d899b 100644 GIT binary patch delta 2251 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 ZKa=na7?bP^7z{rr{sSQMbhH3?002+PclZDR delta 3049 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 diff --git a/gui/wato/checkpoint_powersupply.py b/gui/wato/checkpoint_powersupply.py new file mode 100644 index 0000000..2fc4343 --- /dev/null +++ b/gui/wato/checkpoint_powersupply.py @@ -0,0 +1,44 @@ +#!/usr/bin/env python3 +# -*- coding: utf-8 -*- +# +# License: GNU General Public License v2 +# +# Author: thl-cmk[at]outlook[dot]com +# URL : https://thl-cmk.hopto.org +# Date : 2021-08-10 +# +# 2023-04-23: moved wato file to ~/local/lib/check_mk/gui/plugins/wato +# moved rule set from networking to hardware + +from cmk.gui.i18n import _ +from cmk.gui.valuespec import ( + Dictionary, + TextAscii, + MonitoringState, +) +from cmk.gui.plugins.wato.utils import ( + CheckParameterRulespecWithItem, + rulespec_registry, + RulespecGroupCheckParametersHardware, +) + + +def _parameter_valuespec_checkpoint_powersupply(): + return Dictionary(elements=[ + ('ps_not_up', + MonitoringState( + default_value=2, + title=_('State if power supply is not "UP" or "Present".'), + )), + ]) + + +rulespec_registry.register( + CheckParameterRulespecWithItem( + check_group_name='checkpoint_powersupply', + group=RulespecGroupCheckParametersHardware, + item_spec=lambda: TextAscii(title=_('Power Supply index'), ), + match_type='dict', + parameter_valuespec=_parameter_valuespec_checkpoint_powersupply, + title=lambda: _('Check Point Power Supply'), + )) diff --git a/packages/checkpoint_powersupply b/packages/checkpoint_powersupply index e2ab239..6180734 100644 --- a/packages/checkpoint_powersupply +++ b/packages/checkpoint_powersupply @@ -5,12 +5,10 @@ 'WATO\n', 'download_url': 'https://thl-cmk.hopto.org', 'files': {'agent_based': ['checkpoint_powersupply.py'], - 'checkman': ['checkpoint_powersupply'], - 'web': ['plugins/wato/checkpoint_powersupply.py']}, + 'gui': ['wato/checkpoint_powersupply.py']}, 'name': 'checkpoint_powersupply', - 'num_files': 3, 'title': 'Check Point power supply status', - 'version': '20210810.v0.0.2', - 'version.min_required': '2.0.0', - 'version.packaged': '2021.09.20', + 'version': '1.0.1-20230423', + 'version.min_required': '2.1.0b1', + 'version.packaged': '2.1.0p21', 'version.usable_until': None} \ No newline at end of file -- GitLab