From 1e841e36f21e2d49e3c894991183245a56213bfe Mon Sep 17 00:00:00 2001 From: "th.l" <thl-cmk@outlook.com> Date: Tue, 18 Jun 2024 20:28:13 +0200 Subject: [PATCH] update project --- README.md | 2 +- mkp/nvdct-0.8.12-20240618.mkp | Bin 0 -> 40352 bytes source/bin/nvdct/lib/backends.py | 11 ++++++++--- source/bin/nvdct/lib/settings.py | 4 +++- source/bin/nvdct/lib/topologies.py | 5 ++++- source/bin/nvdct/lib/utils.py | 2 +- source/packages/nvdct | 2 +- 7 files changed, 18 insertions(+), 8 deletions(-) create mode 100644 mkp/nvdct-0.8.12-20240618.mkp diff --git a/README.md b/README.md index 7c6b30a..ac6a28b 100644 --- a/README.md +++ b/README.md @@ -1,4 +1,4 @@ -[PACKAGE]: ../../raw/master/mkp/nvdct-0.8.10-20240614.mkp "nvdct-0.8.10-20240614.mkp" +[PACKAGE]: ../../raw/master/mkp/nvdct-0.8.12-20240618.mkp "nvdct-0.8.12-20240618.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 by Andreas Boesl and [schnetz](https://exchange.checkmk.com/u/schnetz).\ diff --git a/mkp/nvdct-0.8.12-20240618.mkp b/mkp/nvdct-0.8.12-20240618.mkp new file mode 100644 index 0000000000000000000000000000000000000000..7edee5d97ebb4aba0909d2abaf77ab34b2c70684 GIT binary patch literal 40352 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 R8|fSVu%#^UN8ryN{{yA`jHCbn literal 0 HcmV?d00001 diff --git a/source/bin/nvdct/lib/backends.py b/source/bin/nvdct/lib/backends.py index 5500c68..0d3e454 100755 --- a/source/bin/nvdct/lib/backends.py +++ b/source/bin/nvdct/lib/backends.py @@ -8,6 +8,8 @@ # Date : 2023-10-12 # File : nvdct/lib/backends.py +# 2024-06-18: fixed host_exist returns always True if host was in host_cache, even with host=None + from _collections_abc import Mapping, Sequence from abc import abstractmethod from ast import literal_eval @@ -279,7 +281,7 @@ class HostCacheLiveStatus(HostCache): 'OutputFormat: python3\n' f'Filter: host_name = {host}\n' ) - if host in self.cache: + if self.cache.get(host) is not None: return True # if self.pre_fetch: # LOGGER.warning(f'{self.backend} pre_fetch host not found in cache {host}') @@ -287,6 +289,7 @@ class HostCacheLiveStatus(HostCache): data: Sequence[Sequence[str]] = self.get_raw_data(query=query) LOGGER.debug(f'{self.backend} data for host {host}: {data}') if [host] in data: + LOGGER.debug(f'{self.backend} Host {host} found in CMK') return True LOGGER.warning(f'{self.backend} Host {host} not found in CMK') @@ -347,6 +350,8 @@ class HostCacheMultiSite(HostCacheLiveStatus): self.pre_fetch_hosts() def get_sites(self): + # see: https://github.com/Checkmk/checkmk/blob/master/packages/cmk-livestatus-client/example_multisite.py + sites_mk = Path(f'{OMD_ROOT}/etc/check_mk/multisite.d/sites.mk') socket_path = f'unix:{OMD_ROOT}/tmp/run/live' if sites_mk.exists(): @@ -505,7 +510,7 @@ class HostCacheRestApi(HostCache): def host_exists(self, host: str) -> bool: LOGGER.debug(f'{self.backend} host_exists {host}') - if host in self.cache: + if self.cache.get(host) is not None: LOGGER.debug(f'{self.backend} host found in cache {host}') return True # if self.pre_fetch: @@ -657,7 +662,7 @@ class HostCacheFileSystem(HostCache): def host_exists(self, host: str) -> bool: # always True, don't works in distributed environments as autocheck files # are only locally available - return True + return False def get_hosts_by_label(self, label: str) -> List[str] | None: # not implemented, no (good) way to get a list of hosts from file system diff --git a/source/bin/nvdct/lib/settings.py b/source/bin/nvdct/lib/settings.py index c1a60b2..610abdc 100755 --- a/source/bin/nvdct/lib/settings.py +++ b/source/bin/nvdct/lib/settings.py @@ -8,6 +8,8 @@ # Date : 2023-10-12 # File : nvdct/lib/settings.py +# fixed path to default user data file + from _collections_abc import Mapping from ipaddress import AddressValueError, IPv4Address, IPv4Network, NetmaskValueError from logging import CRITICAL, FATAL, ERROR, WARNING, INFO, DEBUG @@ -96,7 +98,7 @@ class Settings: 'skip_l3_ip': False, 'time_format': TIME_FORMAT, 'uppercase': False, - 'user_data_file': f'{self.omd_root}/local/bin/nvdct/{USER_DATA_FILE}', + 'user_data_file': f'{self.omd_root}/local/bin/nvdct/conf/{USER_DATA_FILE}', 'version': False, } # args in the form {'s, __seed_devices': 'CORE01', 'p, __path_in_inventory': None, ... }} diff --git a/source/bin/nvdct/lib/topologies.py b/source/bin/nvdct/lib/topologies.py index a275815..712fb33 100755 --- a/source/bin/nvdct/lib/topologies.py +++ b/source/bin/nvdct/lib/topologies.py @@ -30,7 +30,9 @@ class NvObjects: if host not in self.nv_objects: link: Dict = {} metadata: Dict = {} - if host_cache.host_exists(host=host): + # LOGGER.debug(f'host: {host}, {host_cache.host_exists(host=host)}') + if host_cache.host_exists(host=host) is True: + LOGGER.debug(f'host: {host} exists') link = {'core': host} else: if emblem is not None: @@ -49,6 +51,7 @@ class NvObjects: 'link': link, 'metadata': metadata, } + LOGGER.debug(f'host: {host}, link: {link}, metadata: {metadata}') def add_service_object( self, diff --git a/source/bin/nvdct/lib/utils.py b/source/bin/nvdct/lib/utils.py index a244981..bf130f0 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.8.11-20240617' +NVDCT_VERSION = '0.8.12-20240618' @unique diff --git a/source/packages/nvdct b/source/packages/nvdct index 4811221..d4fb20c 100644 --- a/source/packages/nvdct +++ b/source/packages/nvdct @@ -58,7 +58,7 @@ 'htdocs/images/icons/location_80.png']}, 'name': 'nvdct', 'title': 'Network Visualization Data Creation Tool (NVDCT)', - 'version': '0.8.10-20240614', + 'version': '0.8.12-20240618', 'version.min_required': '2.2.0b1', 'version.packaged': 'cmk-mkp-tool 0.2.0', 'version.usable_until': '2.4.0p1'} -- GitLab