diff --git a/README.md b/README.md index 71de7ed3332f1f2249c36a98e4cba3377fd707c4..10d0c3c7506981d3f8ecce67ce9126f9627c875b 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 Binary files /dev/null and b/mkp/freeradius-0.1.3-20240506.mkp differ diff --git a/source/agent_based/freeradius.py b/source/agent_based/freeradius.py index 74f54258b22fce33f316553aa5358832d03f53e9..e306573c9e97c10e765490b2eff1122d91b08f76 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 9a34140d581540cb0ec9f467383715ef51728dad..9e4e79920c624fc4d011620e8fd430b186d99a95 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'}