From 7a17a626fe17990e9438a0ba588a5aaca6cbda88 Mon Sep 17 00:00:00 2001 From: "th.l" <thl-cmk@outlook.com> Date: Thu, 21 Sep 2023 17:35:38 +0200 Subject: [PATCH] update project --- README.md | 1 + .../cmk/base/cee/plugins}/bakery/squid.py | 4 +++- packages/squid | 11 ++++++----- squid-2.0.4-2023-09-21.mkp | Bin 0 -> 4644 bytes squid.mkp | Bin 4518 -> 0 bytes 5 files changed, 10 insertions(+), 6 deletions(-) rename {agents => lib/python3/cmk/base/cee/plugins}/bakery/squid.py (84%) create mode 100644 squid-2.0.4-2023-09-21.mkp delete mode 100644 squid.mkp diff --git a/README.md b/README.md index b813828..bcc86a6 100644 --- a/README.md +++ b/README.md @@ -1,3 +1,4 @@ +[PACKAGE]: ../../raw/master/squid-2.0.4-2023-09-21.mkp "squid-2.0.4-2023-09-21.mkp" # Squid Web Proxy This CheckMK plugin monitors the performance of the _**Squid Web Proxy**_. This plugin is intended to use with the Agent Bakery of CheckMK. diff --git a/agents/bakery/squid.py b/lib/python3/cmk/base/cee/plugins/bakery/squid.py similarity index 84% rename from agents/bakery/squid.py rename to lib/python3/cmk/base/cee/plugins/bakery/squid.py index dbaa895..23c3d7c 100755 --- a/agents/bakery/squid.py +++ b/lib/python3/cmk/base/cee/plugins/bakery/squid.py @@ -14,6 +14,8 @@ # 2023-05-20: moved agent plugin from ~/local/share/check_mk/agents/plugins/linux # to ~/local/share/check_mk/agents/plugins # renamed bakery plugin from squid to squid.py +# 2023-09-21: moved file to ~/local/lib/check_mk/base/cee/plugins/bakery +# fix crash if port not configured in wato from pathlib import Path from cmk.base.cee.plugins.bakery.bakery_api.v1 import ( @@ -33,7 +35,7 @@ def get_squid_files(conf) -> FileGenerator: yield PluginConfig( base_os=OS.LINUX, - lines=[f'port={conf["port"]}'], + lines=[f'port={conf.get("port", 3128)}'], target=Path('squid.cfg'), include_header=False, ) diff --git a/packages/squid b/packages/squid index 96c8476..7712d7e 100644 --- a/packages/squid +++ b/packages/squid @@ -7,12 +7,13 @@ 'Rewritten for CMK 2.1.x\n', 'download_url': 'https://thl-cmk.hopto.org', 'files': {'agent_based': ['squid.py'], - 'agents': ['bakery/squid.py', 'plugins/squid'], + 'agents': ['plugins/squid'], 'checkman': ['squid'], - 'gui': ['wato/squid.py', 'metrics/squid.py']}, + 'gui': ['wato/squid.py', 'metrics/squid.py'], + 'lib': ['python3/cmk/base/cee/plugins/bakery/squid.py']}, 'name': 'squid', 'title': 'Squid3 Health Check', - 'version': '2.0.3-2023-05-22', + 'version': '2.0.4-2023-09-21', 'version.min_required': '2.1.0b1', - 'version.packaged': '2.1.0p21', - 'version.usable_until': None} \ No newline at end of file + 'version.packaged': '2.2.0p7', + 'version.usable_until': None} diff --git a/squid-2.0.4-2023-09-21.mkp b/squid-2.0.4-2023-09-21.mkp new file mode 100644 index 0000000000000000000000000000000000000000..ee884059f74f08d6a9ab8b1cceec1b5773e62d3c GIT binary patch literal 4644 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 CpcTyk literal 0 HcmV?d00001 diff --git a/squid.mkp b/squid.mkp deleted file mode 100644 index fb912a247b4de607eef751901df98259ae2a2751..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4518 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 W?&E*e$dy<;Nn7V0>%HN7_x=y6JG`*~ -- GitLab