From 337184159bc074f1d4562a08b83d1f68a3488b20 Mon Sep 17 00:00:00 2001 From: Wouter de Bruijn Date: Fri, 12 Sep 2025 16:44:04 +0200 Subject: [PATCH] =?UTF-8?q?=F0=9F=90=9B=20Fixed=20key/value=20check=20for?= =?UTF-8?q?=20proxy=20assignment?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- modules/device.py | 42 +++++++++++++++++++++++++++++------------- 1 file changed, 29 insertions(+), 13 deletions(-) diff --git a/modules/device.py b/modules/device.py index 13e74aa..f0efbf3 100644 --- a/modules/device.py +++ b/modules/device.py @@ -5,13 +5,14 @@ Device specific handeling for NetBox to Zabbix from copy import deepcopy from logging import getLogger + from operator import itemgetter from re import search -from operator import itemgetter from typing import Any -from zabbix_utils import APIRequestError from pynetbox import RequestError as NetboxRequestError +from zabbix_utils import APIRequestError +from modules.config import load_config from modules.exceptions import ( InterfaceConfigError, SyncExternalError, @@ -21,9 +22,13 @@ from modules.exceptions import ( from modules.hostgroups import Hostgroup from modules.interface import ZabbixInterface from modules.tags import ZabbixTags -from modules.tools import field_mapper, cf_to_string, remove_duplicates, sanatize_log_output +from modules.tools import ( + cf_to_string, + field_mapper, + remove_duplicates, + sanatize_log_output, +) from modules.usermacros import ZabbixUsermacros -from modules.config import load_config config = load_config() @@ -476,18 +481,29 @@ class PhysicalDevice: # 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" + 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]]) + if ( + config[field_config] in self.nb.custom_fields + and 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 + and 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 - proxy_type in self.nb.config_context["zabbix"]): + 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] # If a proxy name was found, loop through all proxies to find a match