From 423cbf0ffd6c1598173a487cee74628d08f59b1c Mon Sep 17 00:00:00 2001 From: "th.l" <thl-cmk@outlook.com> Date: Mon, 9 Dec 2024 14:45:14 +0100 Subject: [PATCH] changed hostlabel for L3v4 topology to nvdct/l3v4_topology --- README.md | 2 +- mkp/nvdct-0.9.3-20241209.mkp | Bin 0 -> 40691 bytes source/bin/nvdct/lib/args.py | 10 ++++++---- source/bin/nvdct/lib/backends.py | 9 ++++++--- source/bin/nvdct/lib/utils.py | 10 +++++----- source/bin/nvdct/nvdct.py | 3 +++ source/packages/nvdct | 2 +- 7 files changed, 22 insertions(+), 14 deletions(-) create mode 100644 mkp/nvdct-0.9.3-20241209.mkp diff --git a/README.md b/README.md index 61688c3..3ec1de4 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -[PACKAGE]: ../../raw/master/mkp/nvdct-0.9.2-20241117.mkp "nvdct-0.9.2-20241117.mkp" +[PACKAGE]: ../../raw/master/mkp/nvdct-0.9.3-20241209.mkp "nvdct-0.9.3-20241209.mkp" # Network Visualization Data Creation Tool (NVDCT) This script creates the topology data file needed for the [Checkmk Exchange Network visualization](https://exchange.checkmk.com/p/network-visualization) plugin.\ diff --git a/mkp/nvdct-0.9.3-20241209.mkp b/mkp/nvdct-0.9.3-20241209.mkp new file mode 100644 index 0000000000000000000000000000000000000000..c82af8de03fbd218625773a996edf038cb19ac0a GIT binary patch literal 40691 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 literal 0 HcmV?d00001 diff --git a/source/bin/nvdct/lib/args.py b/source/bin/nvdct/lib/args.py index abd5472..d113171 100755 --- a/source/bin/nvdct/lib/args.py +++ b/source/bin/nvdct/lib/args.py @@ -48,7 +48,7 @@ from lib.utils import ( HOME_URL, MIN_CDP_VERSION, MIN_LLDP_VERSION, - MIN_IPV4_ADDRESSES, + MIN_IP_ADDRESSES, NVDCT_VERSION, # SAMPLE_SEEDS, SCRIPT, @@ -71,7 +71,7 @@ def parse_arguments() -> arg_Namespace: 'The required inventory data can be created with my inventory plugins:\n' 'CDP: https://thl-cmk.hopto.org/gitlab/checkmk/vendor-independent/inventory/inv_cdp_cache\n' # noqa: E501 'LLDP: https://thl-cmk.hopto.org/gitlab/checkmk/vendor-independent/inventory/inv_lldp_cache\n' # noqa: E501 - 'L3v4: https://thl-cmk.hopto.org/gitlab/checkmk/vendor-independent/inventory/inv_ipv4_addresses\n' # noqa: E501 + 'L3v4: https://thl-cmk.hopto.org/gitlab/checkmk/vendor-independent/inventory/inv_ip_address\n' # noqa: E501 '\n' f'\nVersion: {NVDCT_VERSION} | Written by: thl-cmk\n' f'for more information see: {HOME_URL}' @@ -124,8 +124,10 @@ def parse_arguments() -> arg_Namespace: help=( f' - CDP : needs inv_cdp_cache package at least in version {MIN_CDP_VERSION}\n' f' - LLDP : needs inv_lldp_cache package at least in version {MIN_LLDP_VERSION}\n' - f' - L3v4 : needs inv_ipv4_addresses package at least in version {MIN_IPV4_ADDRESSES}\n' - f' adds, layer 3 topology fpr IPv4 ' + f' - L3v4 : needs inv_ip_address package at least in version {MIN_IP_ADDRESSES}\n' + f' adds, layer 3 topology fpr IPv4\n' + f' - STATIC (deprecated)\n' + f' - CUSTOM (deprecated)\n' ) ) parser.add_argument( diff --git a/source/bin/nvdct/lib/backends.py b/source/bin/nvdct/lib/backends.py index cec1bf3..611b7a6 100755 --- a/source/bin/nvdct/lib/backends.py +++ b/source/bin/nvdct/lib/backends.py @@ -305,7 +305,8 @@ class HostCacheLiveStatus(HostCache): 'GET hosts\n' 'Columns: name\n' 'OutputFormat: python3\n' - f'Filter: label_names ~ {label}\n' + # f'Filter: label_names ~ {label}\n' + f'Filter: labels = {label}\n' ) data: Sequence[Sequence[str]] = self.get_raw_data(query=query) LOGGER.debug(f'{self.backend} routing capable hosts: {data}') @@ -578,12 +579,14 @@ class HostCacheRestApi(HostCache): def get_hosts_by_label(self, label: str) -> List[str] | None: LOGGER.debug(f'{self.backend} get_hosts_by_label {label}') - query = '{"op": "~", "left": "label_names", "right": "' + label + '"}' + # query = '{"op": "=", "left": "label_names", "right": "' + label + '"}' + query = '{"op": "=", "left": "labels", "right": "' + label + '"}' + resp = self.__session.get( url=f"{self.__api_url}/domain-types/host/collections/all", params={ "query": query, - "columns": ['name'], + "columns": ['name', 'labels'], }, ) if resp.status_code == 200: diff --git a/source/bin/nvdct/lib/utils.py b/source/bin/nvdct/lib/utils.py index 27af6e0..1857bce 100755 --- a/source/bin/nvdct/lib/utils.py +++ b/source/bin/nvdct/lib/utils.py @@ -23,7 +23,7 @@ from time import time as now_time from tomllib import loads as toml_loads, TOMLDecodeError from typing import List, Dict, TextIO -NVDCT_VERSION = '0.9.2-20241117' +NVDCT_VERSION = '0.9.3-20241209' @unique @@ -70,16 +70,16 @@ COLUMNS_CDP = 'neighbour_name,local_port,neighbour_port' COLUMNS_L3v4 = 'address,device,cidr,network,type' COLUMNS_LLDP = 'neighbour_name,local_port,neighbour_port' HOME_URL = 'https://thl-cmk.hopto.org/gitlab/checkmk/vendor-independent/nvdct' -HOST_LABEL_CDP = 'nvdct/has_cdp_neighbours' -HOST_LABEL_L3V4 = 'nvdct/routing_capable' -HOST_LABEL_LLDP = 'nvdct/has_lldp_neighbours' +HOST_LABEL_CDP = "'nvdct/has_cdp_neighbours' 'yes'" +HOST_LABEL_L3V4 = "'nvdct/l3v4_topology' 'router'" +HOST_LABEL_LLDP = "'nvdct/has_lldp_neighbours' 'yes'" LABEL_CDP = 'CDP' LABEL_L3v4 = 'LAYER3v4' LABEL_LLDP = 'LLDP' LOG_FILE = f'{OMD_ROOT}/var/log/nvdct.log' LOGGER = getLogger('root)') MIN_CDP_VERSION = '0.7.1-20240320' -MIN_IPV4_ADDRESSES = '0.0.3-20240320' +MIN_IP_ADDRESSES = '0.0.5-2024120' MIN_LLDP_VERSION = '0.9.3-20240320' PATH_CDP = 'networking,cdp_cache,neighbours' PATH_INTERFACES = 'networking,interfaces' diff --git a/source/bin/nvdct/nvdct.py b/source/bin/nvdct/nvdct.py index 81ae957..16254c3 100755 --- a/source/bin/nvdct/nvdct.py +++ b/source/bin/nvdct/nvdct.py @@ -131,6 +131,9 @@ # SEED_DEVICES -> L2_SEED_DEVICES # incompatible removed option -s, --seed-devices from CLI -> use TOML section L2_SEED_DEVICES instead # incompatible changed the option keep-domain to remove-domain -> don't mess with neighbor names by default +# 2024-12-08: incompatible: changed hostlabel for L3v4 topology to nvdct/l3v4_topology +# needs at least inv_ip_address inv_ip_address-0.0.5-20241209.mkp + # creating topology data json from inventory data # diff --git a/source/packages/nvdct b/source/packages/nvdct index b5f492c..73ff4a1 100644 --- a/source/packages/nvdct +++ b/source/packages/nvdct @@ -54,7 +54,7 @@ 'htdocs/images/icons/location_80.png']}, 'name': 'nvdct', 'title': 'Network Visualization Data Creation Tool (NVDCT)', - 'version': '0.9.2-20241117', + 'version': '0.9.3-20241209', 'version.min_required': '2.3.0b1', 'version.packaged': 'cmk-mkp-tool 0.2.0', 'version.usable_until': '2.4.0p1'} -- GitLab