From 8dead46402a967053bf1f7228bfe574d30cbf606 Mon Sep 17 00:00:00 2001 From: "th.l" <thl-cmk@outlook.com> Date: Sun, 6 Aug 2023 20:01:03 +0200 Subject: [PATCH] update project --- .../cmk/special_agents/agent_vzlogger.py | 134 ++++++++++++++++-- vzlogger-0.0.1-230806.mkp | Bin 4681 -> 4907 bytes 2 files changed, 125 insertions(+), 9 deletions(-) diff --git a/lib/python3/cmk/special_agents/agent_vzlogger.py b/lib/python3/cmk/special_agents/agent_vzlogger.py index caa9922..385c686 100644 --- a/lib/python3/cmk/special_agents/agent_vzlogger.py +++ b/lib/python3/cmk/special_agents/agent_vzlogger.py @@ -30,6 +30,121 @@ from cmk.special_agents.utils.agent_common import ( ) from cmk.special_agents.utils.argument_parsing import Args, create_default_argument_parser +_data = { + "version": "0.8.1", + "generator": "vzlogger", + "data": [ + { + "uuid": "101670", + "last": 1690921720649, + "interval": -1, + "protocol": "sml", + "tuples": [ + [ + 1690921720649, + 273.31 + ] + ] + }, + { + "uuid": "103670", + "last": 1690921720649, + "interval": -1, + "protocol": "sml", + "tuples": [ + [ + 1690921720649, + 144.36 + ] + ] + }, + { + "uuid": "105670", + "last": 1690921720649, + "interval": -1, + "protocol": "sml", + "tuples": [ + [ + 1690921720649, + 11.1 + ] + ] + }, + { + "uuid": "107670", + "last": 1690921720649, + "interval": -1, + "protocol": "sml", + "tuples": [ + [ + 1690921720649, + 117.84 + ] + ] + }, + { + "uuid": "10180", + "last": 1690921720649, + "interval": -1, + "protocol": "sml", + "tuples": [ + [ + 1690921720649, + 17199974.934100002 + ] + ] + }, + { + "uuid": "10280", + "last": 1690921720649, + "interval": -1, + "protocol": "sml", + "tuples": [ + [ + 1690921720649, + 88550.9837 + ] + ] + }, + { + "uuid": "103270", + "last": 1690921720649, + "interval": -1, + "protocol": "sml", + "tuples": [ + [ + 1690921720649, + 235.20000000000002 + ] + ] + }, + { + "uuid": "105270", + "last": 1690921720649, + "interval": -1, + "protocol": "sml", + "tuples": [ + [ + 1690921720649, + 235 + ] + ] + }, + { + "uuid": "107270", + "last": 1690921720649, + "interval": -1, + "protocol": "sml", + "tuples": [ + [ + 1690921720649, + 235.20000000000002 + ] + ] + } + ] +} + def parse_arguments(argv: Sequence[str] | None) -> argparse.Namespace: parser = create_default_argument_parser(description=__doc__) @@ -43,17 +158,18 @@ def parse_arguments(argv: Sequence[str] | None) -> argparse.Namespace: def agent_vzlogger_main(args: Args) -> int: # , retrurn=None _vars = vars(args) - _base_dir = environ['OMD_ROOT'] - vzlogger_file = f'{_base_dir}/vzlogger.json' if _vars['testing']: - try: - with open(vzlogger_file, 'r') as file: - data = json.load(file) - - except (FileNotFoundError, json.decoder.JSONDecodeError) as e: - print('Error retrieving data:', e) - exit() + data = _data + # _base_dir = environ['OMD_ROOT'] + # vzlogger_file = f'{_base_dir}/vzlogger.json' + # try: + # with open(vzlogger_file, 'r') as file: + # data = json.load(file) + # + # except (FileNotFoundError, json.decoder.JSONDecodeError) as e: + # print('Error retrieving data:', e) + # exit() else: try: response = requests.get(f'http://{_vars["hostname"]}:{_vars["port"]}/', timeout=_vars['timeout']) diff --git a/vzlogger-0.0.1-230806.mkp b/vzlogger-0.0.1-230806.mkp index b06dfe620601b8008feb3874175f8322301b7e7b..a20a01098ade212717113dd1c61e8dc6b241d33f 100644 GIT binary patch literal 4907 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 OaR@q>gm6$eIR6LN1HO^~ literal 4681 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 -- GitLab