From 44ee43977a01c29e6ca10a22cab3430f05726c7f Mon Sep 17 00:00:00 2001 From: "th.l" <thl-cmk@outlook.com> Date: Mon, 6 May 2024 14:54:46 +0200 Subject: [PATCH] update project --- README.md | 2 +- mkp/freeradius-0.1.3-20240506.mkp | Bin 0 -> 16401 bytes source/agent_based/freeradius.py | 42 +++++++++++++++++------------- source/packages/freeradius | 2 +- 4 files changed, 26 insertions(+), 20 deletions(-) create mode 100644 mkp/freeradius-0.1.3-20240506.mkp diff --git a/README.md b/README.md index 71de7ed..10d0c3c 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -[PACKAGE]: ../../raw/master/mkp/freeradius-0.1.2-20240501.mkp "freeradius-0.1.2-20240501.mkp" +[PACKAGE]: ../../raw/master/mkp/freeradius-0.1.3-20240506.mkp "freeradius-0.1.3-20240506.mkp" [PYRADLIB]: ../../raw/master/mkp/pyrad-2.4.0-240421.mkp "pyrad-2.4.0-240421.mkp" # FreeRADIUS diff --git a/mkp/freeradius-0.1.3-20240506.mkp b/mkp/freeradius-0.1.3-20240506.mkp new file mode 100644 index 0000000000000000000000000000000000000000..69a23677889e5f744a504f1275599f71dd31c58d GIT binary patch literal 16401 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 BBQpR1 literal 0 HcmV?d00001 diff --git a/source/agent_based/freeradius.py b/source/agent_based/freeradius.py index 74f5425..e306573 100644 --- a/source/agent_based/freeradius.py +++ b/source/agent_based/freeradius.py @@ -8,10 +8,14 @@ # Date : 2024-04-29 # File : freeradius.py (check plugin) +# 2024-05-06: fixed crash in _rate_attributes (missing values to unpack) +# changed time output to render.datetime from _collections_abc import Mapping, Sequence from json import loads as json_loads, JSONDecodeError -from time import localtime, mktime, strftime, strptime, time as now_tine +from time import time as now_tine +# from time import localtime, mktime, strftime, strptime, time as now_tine + from cmk.base.plugins.agent_based.agent_based_api.v1 import ( Result, @@ -30,8 +34,8 @@ from cmk.base.plugins.agent_based.agent_based_api.v1.type_defs import ( StringTable, ) -_CMK_TIME_FORMAT = '%Y-%m-%dT%H:%M:%S.%m %Z' -_FREERADIUS_TIME_FORMAT = "%b %d %Y %H:%M:%S %Z" +# _CMK_TIME_FORMAT = '%Y-%m-%dT%H:%M:%S.%m %Z' +# _FREERADIUS_TIME_FORMAT = "%b %d %Y %H:%M:%S %Z" # Authentication attributes _FreeRADIUS_Total_Access_Requests = 'FreeRADIUS-Total-Access-Requests' @@ -164,7 +168,7 @@ def _rate_attributes(params: Mapping[str, any], section: Mapping[str, int], attr now = now_tine() value_store = get_value_store() - for attribute, notice_only, upper, lower in attributes: + for attribute, notice_only in attributes: if (value := section.get(attribute)) is not None: try: value = get_rate(value_store, _get_metric(attribute), now, value, raise_overflow=True) @@ -217,11 +221,11 @@ def check_freeradius(params: Mapping[str, any], section: Mapping[str, int]) -> C ) return - if isinstance(start_time, str): - # str to sec "Apr 29 2024 10:09:54 CEST" -> 1714378194.0 - start_time = mktime(strptime(start_time, _FREERADIUS_TIME_FORMAT)) - if isinstance(hup_time, str): - hup_time = mktime(strptime(hup_time, _FREERADIUS_TIME_FORMAT)) + # if isinstance(start_time, str): + # # str to sec "Apr 29 2024 10:09:54 CEST" -> 1714378194.0 + # start_time = mktime(strptime(start_time, _FREERADIUS_TIME_FORMAT)) + # if isinstance(hup_time, str): + # hup_time = mktime(strptime(hup_time, _FREERADIUS_TIME_FORMAT)) yield from check_levels( value=now_tine() - start_time, @@ -237,17 +241,19 @@ def check_freeradius(params: Mapping[str, any], section: Mapping[str, int]) -> C metric_name='reload', ) - yield Result( - state=State.OK, - notice=f'Service started at: {strftime(_CMK_TIME_FORMAT, localtime(start_time))}' - ) + # yield Result( + # state=State.OK, + # notice=f'Service started at: {strftime(_CMK_TIME_FORMAT, localtime(start_time))}' + # ) + yield Result(state=State.OK, notice=f'Service started at: {render.datetime(start_time)}') if start_time != hup_time: - yield Result( - state=State.OK, - notice=f'Service restarted (HUP) at: {strftime(_CMK_TIME_FORMAT, localtime(hup_time))}' - ) + # yield Result( + # state=State.OK, + # notice=f'Service restarted (HUP) at: {strftime(_CMK_TIME_FORMAT, localtime(hup_time))}' + # ) + yield Result(state=State.OK, notice=f'Service reloaded (HUP) at: {render.datetime(hup_time)}') else: - yield Result(state=State.OK, notice='Service restarted (HUP) at: never') + yield Result(state=State.OK, notice='Service reloaded (HUP) at: never') yield Result(state=State.OK, summary=f'# of status attributes: {len(section)}') diff --git a/source/packages/freeradius b/source/packages/freeradius index 9a34140..9e4e799 100644 --- a/source/packages/freeradius +++ b/source/packages/freeradius @@ -21,7 +21,7 @@ 'web': ['plugins/wato/agent_freeradiusi.py']}, 'name': 'freeradius', 'title': 'FreeRADIUS special agent', - 'version': '0.1.2-20240501', + 'version': '0.1.3-20240506', 'version.min_required': '2.2.0b1', 'version.packaged': '2.2.0p24', 'version.usable_until': '2.3.0b1'} -- GitLab