From c7fb33f6ab2beb5aa9f50fbba4d1f40e7c124920 Mon Sep 17 00:00:00 2001 From: "th.l" <thl-cmk@outlook.com> Date: Sun, 24 Nov 2024 15:53:56 +0100 Subject: [PATCH] update project --- README.md | 2 +- mkp/curl-0.3.2-20241124.mkp | Bin 0 -> 26593 bytes source/agent_based/curl.py | 78 +++++++++++++++++++----------------- source/packages/curl | 2 +- 4 files changed, 43 insertions(+), 39 deletions(-) create mode 100644 mkp/curl-0.3.2-20241124.mkp diff --git a/README.md b/README.md index 421dd26..76ad5ac 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -[PACKAGE]: ../../raw/master/mkp/curl-0.3.1-20241123.mkp "curl-0.3.1-20241123.mkp" +[PACKAGE]: ../../raw/master/mkp/curl-0.3.2-20241124.mkp "curl-0.3.2-20241124.mkp" [EXECUTABLE]: ../../raw/master/mkp/curl_executable-20220410.v7.82.0.mkp "curl_executable-20220410.v7.82.0.mkp" # cURL agent plugin for Linux and Windows diff --git a/mkp/curl-0.3.2-20241124.mkp b/mkp/curl-0.3.2-20241124.mkp new file mode 100644 index 0000000000000000000000000000000000000000..e41e1de24e3549a4a96342f6fc52a68e2aae0f0e GIT binary patch literal 26593 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 literal 0 HcmV?d00001 diff --git a/source/agent_based/curl.py b/source/agent_based/curl.py index 2e7d2a1..3f2fbf5 100644 --- a/source/agent_based/curl.py +++ b/source/agent_based/curl.py @@ -32,6 +32,7 @@ # 2024-06-23: modified imports for cmk 2.3 # removed work around for render negative timespan # 2024-11-23: fixed http_error_code_to_ignore and curl_error_code_to_ignore not working (compare int with str) +# 2024-11-24: removed empty default parameters # Example output from agent: # @@ -316,7 +317,7 @@ def check_curl(item, params, section: Dict[str, Any]) -> CheckResult: yield Result(state=State.OK, notice=f'{label}: {value}') if curl_error_code != 0: - if str(curl_error_code) in params['curl_error_code_to_ignore']: + if str(curl_error_code) in params.get('curl_error_code_to_ignore', []): yield Result( state=State.OK, notice=f'curl error code: {curl_error_code}, {_curl_error_codes.get(curl_error_code, "N/A")}') @@ -330,7 +331,7 @@ def check_curl(item, params, section: Dict[str, Any]) -> CheckResult: if http_return_code < 400: # no connect, Ok, Redirect yield Result(state=State.OK, notice=f'HTTP Return code: {http_return_code}') else: - if str(http_return_code) in params['http_error_code_to_ignore']: + if str(http_return_code) in params.get('http_error_code_to_ignore', []): yield Result( state=State.OK, notice=f'HTTP Return code: {http_return_code}' ) @@ -389,7 +390,7 @@ def check_curl(item, params, section: Dict[str, Any]) -> CheckResult: elif not _data.get('regex'): # missing info yield Result(state=State(regex_missing), notice='Regex state: missing pattern match info') - max_age_warn, max_age_crit, max_age_state = params['max_age'] + max_age_warn, max_age_crit, max_age_state = params.get('max_age', None, None, None) if max_age_warn: max_age = None if _data.get('RESPONSE_HEADER'): @@ -428,14 +429,14 @@ def check_curl(item, params, section: Dict[str, Any]) -> CheckResult: yield Result(state=State.OK, notice=f'{label}: {_data["tls_info"][key]}') if _data['tls_info'].get('time_left'): - if params['cert_time_left'].get('upper'): - warn, crit = params['cert_time_left'].get('upper') + if params.get('cert_time_left', {}).get('upper'): + warn, crit = params.get('cert_time_left', {}).get('upper') upper = (warn * 86400, crit * 86400) else: upper = None - if params['cert_time_left'].get('lower'): - warn, crit = params['cert_time_left'].get('lower') + if params.get('cert_time_left', {}).get('lower'): + warn, crit = params.get('cert_time_left', {}).get('lower') lower = (warn * 86400, crit * 86400) else: lower = None @@ -476,8 +477,8 @@ def check_curl(item, params, section: Dict[str, Any]) -> CheckResult: metric_name=key, notice_only=notice_only, render_func=render_func, - levels_lower=params[key].get('lower'), - levels_upper=params[key].get('upper'), + levels_lower=params.get(key, {}).get('lower'), + levels_upper=params.get(key, {}).get('upper'), ) for key, label, notice_only, render_func in [ @@ -503,11 +504,13 @@ def check_curl(item, params, section: Dict[str, Any]) -> CheckResult: metric_name=key, notice_only=notice_only, render_func=render_func, - levels_lower=params[key].get('lower'), - levels_upper=params[key].get('upper'), + levels_lower=params.get(key, {}).get('lower'), + levels_upper=params.get(key, {}).get('upper'), ) - show_request_header, show_response_headers, show_session_info, show_raw_data = params['show_additional_info'] + show_request_header, show_response_headers, show_session_info, show_raw_data = params.get( + 'show_additional_info', (None, None, None, None) + ) if show_request_header and _data.get('REQUEST_HEADER'): yield Result(state=State.OK, notice=f' ') yield Result(state=State.OK, notice=f'Request headers:') @@ -546,34 +549,35 @@ register.check_plugin( discovery_function=discovery_curl, check_function=check_curl, check_default_parameters={ - 'show_additional_info': (None, None, None, None), - 'max_age': (None, None, None), - 'state_item_not_found': 3, - 'state_http_result_not_200': 1, - 'http_error_code_to_ignore': [], 'state_curl_result_not_0': 1, - 'curl_error_code_to_ignore': [], - 'state_verify_sll_not_0': 1, 'state_expected_str_not_found': 1, - 'state_header_str_not_found': 1, 'state_for_regex': (0, 1, 0), - 'time_namelookup': {}, - 'time_connect': {}, - 'time_appconnect': {}, - 'time_pretransfer': {}, - 'time_redirect': {}, - 'time_starttransfer': {}, - 'time_total': {}, - 'num_connects': {}, - 'num_redirects': {}, - 'num_headers': {}, - 'size_download': {}, - 'size_upload': {}, - 'size_header': {}, - 'size_request': {}, - 'speed_download': {}, - 'speed_upload': {}, - 'cert_time_left': {}, + 'state_header_str_not_found': 1, + 'state_http_result_not_200': 1, + 'state_item_not_found': 3, + 'state_verify_sll_not_0': 1, + + # 'cert_time_left': {}, + # 'curl_error_code_to_ignore': [], + # 'http_error_code_to_ignore': [], + # 'max_age': (None, None, None), + # 'num_connects': {}, + # 'num_headers': {}, + # 'num_redirects': {}, + # 'show_additional_info': (None, None, None, None), + # 'size_download': {}, + # 'size_header': {}, + # 'size_request': {}, + # 'size_upload': {}, + # 'speed_download': {}, + # 'speed_upload': {}, + # 'time_appconnect': {}, + # 'time_connect': {}, + # 'time_namelookup': {}, + # 'time_pretransfer': {}, + # 'time_redirect': {}, + # 'time_starttransfer': {}, + # 'time_total': {}, }, check_ruleset_name='curl' ) diff --git a/source/packages/curl b/source/packages/curl index 1ee0038..4bfe7f4 100644 --- a/source/packages/curl +++ b/source/packages/curl @@ -28,7 +28,7 @@ 'lib': ['python3/cmk/base/cee/plugins/bakery/curl.py']}, 'name': 'curl', 'title': 'cURL agent plugin', - 'version': '0.3.1-20241123', + 'version': '0.3.2-20241124', 'version.min_required': '2.3.0b1', 'version.packaged': 'cmk-mkp-tool 0.2.0', 'version.usable_until': '2.4.0b1'} -- GitLab