From 86fc2b3a7d4bbc2bcc629c5ceb9d5fc07ed45444 Mon Sep 17 00:00:00 2001
From: thl-cmk <thl-cmk@outlook.com>
Date: Sun, 24 Nov 2024 14:36:32 +0000
Subject: [PATCH] update project

---
 README.md                   |   2 +-
 mkp/curl-0.2.3-20241124.mkp | Bin 0 -> 26483 bytes
 source/agent_based/curl.py  |  83 ++++++++++++++++++------------------
 source/packages/curl        |   2 +-
 4 files changed, 44 insertions(+), 43 deletions(-)
 create mode 100644 mkp/curl-0.2.3-20241124.mkp

diff --git a/README.md b/README.md
index 52d56f5..3f103c4 100644
--- a/README.md
+++ b/README.md
@@ -1,4 +1,4 @@
-[PACKAGE]: ../../raw/2.2.x/mkp/curl-0.2.2-20241123.mkp "curl-0.2.2-20241123.mkp"
+[PACKAGE]: ../../raw/2.2.x/mkp/curl-0.2.3-20241124.mkp "curl-0.2.3-20241124.mkp"
 [EXECUTABLE]: ../../raw/2.2.x/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.2.3-20241124.mkp b/mkp/curl-0.2.3-20241124.mkp
new file mode 100644
index 0000000000000000000000000000000000000000..f42b19a907571001be5041658530f420d3664335
GIT binary patch
literal 26483
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

literal 0
HcmV?d00001

diff --git a/source/agent_based/curl.py b/source/agent_based/curl.py
index 87590b5..b187697 100644
--- a/source/agent_based/curl.py
+++ b/source/agent_based/curl.py
@@ -30,6 +30,7 @@
 # 2022-05-17: fixed wrong import path for  _TIME_UNITS and _gen_timespan_chunks
 # 2023-06-07: moved gui files to ~/local/lib/chek_mk/gui/plugins/...
 # 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:
 #
@@ -289,7 +290,7 @@ def check_curl(item, params, section: Dict[str, Any]) -> CheckResult:
     try:
         _data = section[item]
     except KeyError:
-        yield Result(state=State(params['state_item_not_found']), notice='Item not found in agent data')
+        yield Result(state=State(params.get('state_item_not_found', 3)), notice='Item not found in agent data')
         return
 
     # url = _data['url'].replace('://', ': //')  # ugly workaround to stop cmk from replacing the url
@@ -314,13 +315,13 @@ 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")}')
         else:
             yield Result(
-                state=State(params['state_curl_result_not_0']),
+                state=State(params.get('state_curl_result_not_0', 1)),
                 summary=f'curl error code: {curl_error_code} see details',
                 details=f'curl error code: {curl_error_code}, {_curl_error_codes.get(curl_error_code, "N/A")}'
             )
@@ -328,20 +329,20 @@ 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}'
             )
         else:
             yield Result(
-                state=State(params['state_http_result_not_200']),
+                state=State(params.get('state_http_result_not_200', 1)),
                 notice=f'HTTP Return code: {http_return_code}'
             )
 
     if ssl_verify_result == 0:
         yield Result(state=State.OK, notice=f'SSL verify result: {ssl_verify_result}')
     else:
-        yield Result(state=State(params['state_verify_sll_not_0']), summary=f'SSL verify result: {ssl_verify_result}')
+        yield Result(state=State(params.get('state_verify_sll_not_0', 1)), summary=f'SSL verify result: {ssl_verify_result}')
 
     for key, label in [
         ('scheme', 'Scheme (protocol)'),
@@ -365,7 +366,7 @@ def check_curl(item, params, section: Dict[str, Any]) -> CheckResult:
                 yield Result(state=State.OK, notice=f'Response string: "{expected_string}" found')
             else:
                 yield Result(
-                    state=State(params['state_expected_str_not_found']),
+                    state=State(params.get('state_expected_str_not_found', 1)),
                     notice=f'Response string: "{expected_string}" not found'
                 )
 
@@ -375,11 +376,11 @@ def check_curl(item, params, section: Dict[str, Any]) -> CheckResult:
                 yield Result(state=State.OK, notice=f'Header string: "{header_strings}" found')
             else:
                 yield Result(
-                    state=State(params['state_header_str_not_found']),
+                    state=State(params.get('state_header_str_not_found', 1)),
                     notice=f'Header string: "{header_strings}" not found'
                 )
 
-    regex_match, regex_no_match, regex_missing = params['state_for_regex']
+    regex_match, regex_no_match, regex_missing = params.get('state_for_regex', (0,1,0))
     if _data.get('regex') == 0:  # match
         yield Result(state=State(regex_match), notice='Regex state: pattern matches')
     elif _data.get('regex') == 1:  # no match
@@ -387,7 +388,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'):
@@ -426,14 +427,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 = paramsget('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
@@ -474,8 +475,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 [
@@ -501,11 +502,11 @@ 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:')
@@ -544,34 +545,34 @@ 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),
+        # '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': [],
+        # 'http_error_code_to_ignore': [],
         'state_curl_result_not_0': 1,
-        'curl_error_code_to_ignore': [],
+        # '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': {},
+        # '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': {},
     },
     check_ruleset_name='curl'
 )
diff --git a/source/packages/curl b/source/packages/curl
index dd8c683..b12ec02 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.2.2-20241123',
+ 'version': '0.2.3-20241124',
  'version.min_required': '2.2.0b1',
  'version.packaged': '2.2.0p36',
  'version.usable_until': '2.3.0b1'}
-- 
GitLab