From 435fd1fa7822b995a227e0bdace41bd54a49d193 Mon Sep 17 00:00:00 2001 From: Raymond Kuiper Date: Tue, 24 Jun 2025 17:09:23 +0200 Subject: [PATCH 1/3] Fixed issues with tag mapping --- modules/device.py | 8 ++++---- modules/tags.py | 6 ++++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/modules/device.py b/modules/device.py index 524be55..bdde4a1 100644 --- a/modules/device.py +++ b/modules/device.py @@ -428,16 +428,16 @@ class PhysicalDevice: tags = ZabbixTags( self.nb, self._tag_map(), - config['tag_sync'], - config['tag_lower'], + tag_sync=config['tag_sync'], + tag_lower=config['tag_lower'], tag_name=config['tag_name'], tag_value=config['tag_value'], logger=self.logger, host=self.name, ) - if tags.sync is False: + if config['tag_sync'] is False: self.tags = [] - + return False self.tags = tags.generate() return True diff --git a/modules/tags.py b/modules/tags.py index 441ebe2..659966c 100644 --- a/modules/tags.py +++ b/modules/tags.py @@ -15,7 +15,7 @@ class ZabbixTags: self, nb, tag_map, - tag_sync, + tag_sync=False, tag_lower=True, tag_name=None, tag_value=None, @@ -130,4 +130,6 @@ class ZabbixTags: if t: tags.append(t) - return remove_duplicates(tags, sortkey="tag") + tags = remove_duplicates(tags, sortkey="tag") + self.logger.debug(f"Host {self.name}: Resolved tags: {tags}") + return tags From 9933c97e949d0731ff668394626a7bb89fb59d84 Mon Sep 17 00:00:00 2001 From: Raymond Kuiper Date: Tue, 24 Jun 2025 17:28:57 +0200 Subject: [PATCH 2/3] improved debug logging --- modules/device.py | 1 + modules/tools.py | 5 +++-- modules/usermacros.py | 5 ++++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/modules/device.py b/modules/device.py index bdde4a1..aa323fb 100644 --- a/modules/device.py +++ b/modules/device.py @@ -229,6 +229,7 @@ class PhysicalDevice: self.inventory = field_mapper( self.name, self._inventory_map(), nbdevice, self.logger ) + self.logger.debug(f"Host {self.name}: Resolved inventory: {self.inventory}") return True def isCluster(self): diff --git a/modules/tools.py b/modules/tools.py index 823410e..ed327a7 100644 --- a/modules/tools.py +++ b/modules/tools.py @@ -159,7 +159,7 @@ def sanatize_log_output(data): """ Used for the update function to Zabbix which shows the data that its using to update the host. - Removes and sensitive data from the input. + Removes any sensitive data from the input. """ if not isinstance(data, dict): return data @@ -168,7 +168,8 @@ def sanatize_log_output(data): if "macros" in data: for macro in sanitized_data["macros"]: # Check if macro is secret type - if not macro["type"] == str(1): + if not (macro["type"] == str(1) or + macro["type"] == 1): continue macro["value"] = "********" # Check for interface data diff --git a/modules/usermacros.py b/modules/usermacros.py index 6d396c8..1e23213 100644 --- a/modules/usermacros.py +++ b/modules/usermacros.py @@ -6,7 +6,7 @@ All of the Zabbix Usermacro related configuration from logging import getLogger from re import match -from modules.tools import field_mapper +from modules.tools import field_mapper, sanatize_log_output class ZabbixUsermacros: @@ -98,6 +98,7 @@ class ZabbixUsermacros: Generate full set of Usermacros """ macros = [] + data={} # Parse the field mapper for usermacros if self.usermacro_map: self.logger.debug(f"Host {self.nb.name}: Starting usermacro mapper") @@ -119,4 +120,6 @@ class ZabbixUsermacros: m = self.render_macro(macro, properties) if m: macros.append(m) + data={'macros': macros} + self.logger.debug(f"Host {self.name}: Resolved macros: {sanatize_log_output(data)}") return macros From c2b25e0cd2747b8a5d04bd0c8ba5ee38ad873ece Mon Sep 17 00:00:00 2001 From: Raymond Kuiper Date: Tue, 24 Jun 2025 17:35:10 +0200 Subject: [PATCH 3/3] fixed linting --- modules/device.py | 2 +- modules/tools.py | 2 +- modules/usermacros.py | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/device.py b/modules/device.py index aa323fb..28e78b4 100644 --- a/modules/device.py +++ b/modules/device.py @@ -229,7 +229,7 @@ class PhysicalDevice: self.inventory = field_mapper( self.name, self._inventory_map(), nbdevice, self.logger ) - self.logger.debug(f"Host {self.name}: Resolved inventory: {self.inventory}") + self.logger.debug(f"Host {self.name}: Resolved inventory: {self.inventory}") return True def isCluster(self): diff --git a/modules/tools.py b/modules/tools.py index ed327a7..f3d27cc 100644 --- a/modules/tools.py +++ b/modules/tools.py @@ -168,7 +168,7 @@ def sanatize_log_output(data): if "macros" in data: for macro in sanitized_data["macros"]: # Check if macro is secret type - if not (macro["type"] == str(1) or + if not (macro["type"] == str(1) or macro["type"] == 1): continue macro["value"] = "********" diff --git a/modules/usermacros.py b/modules/usermacros.py index 1e23213..fd95eab 100644 --- a/modules/usermacros.py +++ b/modules/usermacros.py @@ -121,5 +121,5 @@ class ZabbixUsermacros: if m: macros.append(m) data={'macros': macros} - self.logger.debug(f"Host {self.name}: Resolved macros: {sanatize_log_output(data)}") + self.logger.debug(f"Host {self.name}: Resolved macros: {sanatize_log_output(data)}") return macros