From c58726f61894aba775e323ece1b4fe1b6a1a2b23 Mon Sep 17 00:00:00 2001 From: "th.l" <thl-cmk@outlook.com> Date: Mon, 23 Dec 2024 18:46:20 +0100 Subject: [PATCH] added plugin version to long output --- mkp/bgp_topology-0.0.2-20241223.mkp | Bin 9178 -> 9210 bytes .../bgp_topology/constants.py | 2 +- .../bgp_topology/lib/bgp_topology.py | 8 +++++--- 3 files changed, 6 insertions(+), 4 deletions(-) diff --git a/mkp/bgp_topology-0.0.2-20241223.mkp b/mkp/bgp_topology-0.0.2-20241223.mkp index aab7e559ec5897b550f05275b7ade84e77783b3a..bcc2601d6dce4ea0e58a7d9c142f54a9ea44b328 100644 GIT binary patch literal 9210 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 literal 9178 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 E1OLnj_y7O^ diff --git a/source/cmk_addons_plugins/bgp_topology/constants.py b/source/cmk_addons_plugins/bgp_topology/constants.py index 98a65ee..9bffb3e 100644 --- a/source/cmk_addons_plugins/bgp_topology/constants.py +++ b/source/cmk_addons_plugins/bgp_topology/constants.py @@ -12,7 +12,7 @@ __AUTHOR__ = 'thl-cmk[at]outlook[dot]com' __URL__ = 'https://thl-cmk.hopto.org/gitlab/checkmk/vendor-independent/bgp_topology' -__USAGE__ = '~/local/lib/python3/cmk_addons/plugins/bgp_topology/libexec/check_bgp_topology --make-default' +__USAGE__ = '~/local/lib/python3/cmk_addons/plugins/bgp_topology/libexec/check_bgp_topology --make-default --host bgp1' __VERSION__ = '0.0.2-20241223' from typing import Final diff --git a/source/cmk_addons_plugins/bgp_topology/lib/bgp_topology.py b/source/cmk_addons_plugins/bgp_topology/lib/bgp_topology.py index 9b5f42d..fef9111 100644 --- a/source/cmk_addons_plugins/bgp_topology/lib/bgp_topology.py +++ b/source/cmk_addons_plugins/bgp_topology/lib/bgp_topology.py @@ -11,6 +11,7 @@ # 2024-07-20: moved to lib -> is now an active check # 2024-12-23: moved arg parser to lib/args.py # fixed handling of anchors +# changed topology name to be always BGP_{host} from collections.abc import MutableMapping, MutableSequence, Sequence from dataclasses import dataclass @@ -18,6 +19,7 @@ from time import time_ns from cmk.agent_based.v2 import render from cmk_addons.plugins.bgp_topology.constants import ( + __VERSION__, BGP_PEER_LOCAL_ADDR, BGP_PEER_LOCAL_AS, BGP_PEER_LOCAL_ID, @@ -151,19 +153,17 @@ def create_bgp_topology(params: Params | None) -> int: objects = TopoObjects() connections = TopoConnections() - sub_directory = TOPOLOGY_NAME + sub_directory = f'{TOPOLOGY_NAME}_{params.host}' ls_connection = LiveStatusConnection() if params.include_sites is not None: ls_connection.filter_sites(include=True, sites=params.include_sites) sites_str: str = ', '.join(params.include_sites) details.append(f'Site(s) included: {sites_str}') - sub_directory = f'{TOPOLOGY_NAME}_{params.host}' elif params.exclude_sites is not None: ls_connection.filter_sites(include=False, sites=params.exclude_sites) sites_str: str = ', '.join(params.exclude_sites) details.append(f'Site(s) excluded: {sites_str}') - sub_directory = f'{TOPOLOGY_NAME}_{params.host}' bgp_anchor = get_anchor(params.bgp_anchor) emblem_as = get_emblem(params.bgp_emblem_as) @@ -263,6 +263,8 @@ def create_bgp_topology(params: Params | None) -> int: summary.append(f'Time taken: {render.timespan(value)}') details.append(f'Time taken: {render.timespan(value)}') + details.append(f'Plugin version: {__VERSION__}') + perf_data = Metric( name=METRIC_TIME_TAKEN, value=value, -- GitLab