From c27505b9272cac8402a266e3dc6b0a5baf2c8532 Mon Sep 17 00:00:00 2001 From: Raymond Kuiper Date: Fri, 12 Sep 2025 14:39:11 +0200 Subject: [PATCH] corrected linting errors and a minor bug in cf_to_string --- modules/device.py | 14 +++++++------- modules/tools.py | 9 ++++----- netbox_zabbix_sync.py | 4 ++-- 3 files changed, 13 insertions(+), 14 deletions(-) diff --git a/modules/device.py b/modules/device.py index fa62ec0..3a68afc 100644 --- a/modules/device.py +++ b/modules/device.py @@ -468,25 +468,25 @@ class PhysicalDevice: # Includes proxy group fix since Zabbix <= 6 should ignore this proxy_types = ["proxy"] proxy_name = None - + if self.zabbix.version >= 7.0: # Only insert groups in front of list for Zabbix7 proxy_types.insert(0, "proxy_group") - # loop through supported proxy-types + # loop through supported proxy-types for proxy_type in proxy_types: # Check if we should use custom fields for proxy config - field_config = "proxy_cf" if proxy_type=="proxy" else "proxy_group_cf" - if config[field_config]: + field_config = "proxy_cf" if proxy_type=="proxy" else "proxy_group_cf" + if config[field_config]: if config[field_config] in self.nb.custom_fields: if self.nb.custom_fields[config[field_config]]: proxy_name = cf_to_string(self.nb.custom_fields[config[field_config]]) elif config[field_config] in self.nb.site.custom_fields: if self.nb.site.custom_fields[config[field_config]]: - proxy_name = cf_to_string(self.nb.site.custom_fields[config[field_config]]) + proxy_name = cf_to_string(self.nb.site.custom_fields[config[field_config]]) # Otherwise check if the proxy is configured in NetBox CC - if (not proxy_name and "zabbix" in self.nb.config_context and + if (not proxy_name and "zabbix" in self.nb.config_context and proxy_type in self.nb.config_context["zabbix"]): proxy_name = self.nb.config_context["zabbix"][proxy_type] @@ -503,7 +503,7 @@ class PhysicalDevice: ) self.zbxproxy = proxy return True - + self.logger.warning( "Host %s: unable to find proxy %s", self.name, proxy_name ) diff --git a/modules/tools.py b/modules/tools.py index efa6922..023cef8 100644 --- a/modules/tools.py +++ b/modules/tools.py @@ -55,11 +55,10 @@ def cf_to_string(cf, key="name", logger=None): Converts a dict custom fields to string """ if isinstance(cf, dict): - if key: + if key in cf: return cf[key] - else: - logger.error("Conversion of custom field failed, '%s' not found in cf dict.", key) - return None + logger.error("Conversion of custom field failed, '%s' not found in cf dict.", key) + return None return cf @@ -217,4 +216,4 @@ def sanatize_log_output(data): continue # A macro is not used, so we sanitize the value. sanitized_data["details"][key] = "********" - return sanitized_data \ No newline at end of file + return sanitized_data diff --git a/netbox_zabbix_sync.py b/netbox_zabbix_sync.py index c2e0865..4ee2ba0 100755 --- a/netbox_zabbix_sync.py +++ b/netbox_zabbix_sync.py @@ -82,7 +82,7 @@ def main(arguments): device_cfs = [] vm_cfs = [] device_cfs = list( - netbox.extras.custom_fields.filter(type=["text","object","select"], + netbox.extras.custom_fields.filter(type=["text","object","select"], content_types="dcim.device") ) verify_hg_format( @@ -91,7 +91,7 @@ def main(arguments): if config["sync_vms"]: vm_cfs = list( netbox.extras.custom_fields.filter( - type=["text","object","select"], + type=["text","object","select"], content_types="virtualization.virtualmachine" ) )