diff --git a/modules/device.py b/modules/device.py index 8bea73d..971a5b3 100644 --- a/modules/device.py +++ b/modules/device.py @@ -124,8 +124,8 @@ class PhysicalDevice: self.nb, self.nb_api_version, logger=self.logger, - nested_sitegroup_flag=traverse_site_groups, - nested_region_flag=traverse_regions, + nested_sitegroup_flag=config['traverse_site_groups'], + nested_region_flag=config['traverse_regions'], nb_groups=nb_site_groups, nb_regions=nb_regions, ) @@ -166,7 +166,7 @@ class PhysicalDevice: return [device_type_cfs[config["template_cf"]]] # Custom field not found, return error e = ( - f"Custom field {template_cf} not " + f"Custom field {config['template_cf']} not " f"found for {self.nb.device_type.manufacturer.name}" f" - {self.nb.device_type.display}." ) @@ -394,7 +394,7 @@ class PhysicalDevice: macros = ZabbixUsermacros( self.nb, self._usermacro_map(), - usermacro_sync, + config['usermacro_sync'], logger=self.logger, host=self.name, ) @@ -411,10 +411,10 @@ class PhysicalDevice: tags = ZabbixTags( self.nb, self._tag_map(), - tag_sync, - tag_lower, - tag_name=tag_name, - tag_value=tag_value, + config['tag_sync'], + config['tag_lower'], + tag_name=config['tag_name'], + tag_value=config['tag_value'], logger=self.logger, host=self.name, ) @@ -771,15 +771,11 @@ class PhysicalDevice: self.updateZabbixHost(inventory=self.inventory) # Check host usermacros - if usermacro_sync: + if config['usermacro_sync']: macros_filtered = [] # Do not re-sync secret usermacros unless sync is set to 'full' - if str(usermacro_sync).lower() != "full": - for m in - - - - (self.usermacros): + if str(config['usermacro_sync']).lower() != "full": + for m in deepcopy(self.usermacros): if m["type"] == str(1): # Remove the value as the api doesn't return it # this will allow us to only update usermacros that don't exist @@ -792,7 +788,7 @@ class PhysicalDevice: self.updateZabbixHost(macros=self.usermacros) # Check host usermacros - if tag_sync: + if config['tag_sync']: if remove_duplicates(host["tags"], sortkey="tag") == self.tags: self.logger.debug(f"Host {self.name}: tags in-sync.") else: diff --git a/modules/virtual_machine.py b/modules/virtual_machine.py index acabd1d..7ee6659 100644 --- a/modules/virtual_machine.py +++ b/modules/virtual_machine.py @@ -4,9 +4,6 @@ from modules.device import PhysicalDevice from modules.exceptions import InterfaceConfigError, SyncInventoryError, TemplateError from modules.hostgroups import Hostgroup from modules.interface import ZabbixInterface - -from modules.exceptions import (TemplateError, InterfaceConfigError, - SyncInventoryError) from modules.config import load_config # Load config config = load_config() @@ -22,15 +19,15 @@ class VirtualMachine(PhysicalDevice): def _inventory_map(self): """use VM inventory maps""" - return vm_inventory_map + return config["vm_inventory_map"] def _usermacro_map(self): """use VM usermacro maps""" - return vm_usermacro_map + return config["vm_usermacro_map"] def _tag_map(self): """use VM tag maps""" - return vm_tag_map + return config["vm_tag_map"] def set_hostgroup(self, hg_format, nb_site_groups, nb_regions): """Set the hostgroup for this device""" @@ -40,8 +37,8 @@ class VirtualMachine(PhysicalDevice): self.nb, self.nb_api_version, logger=self.logger, - nested_sitegroup_flag=traverse_site_groups, - nested_region_flag=traverse_regions, + nested_sitegroup_flag=config["traverse_site_groups"], + nested_region_flag=config["traverse_regions"], nb_groups=nb_site_groups, nb_regions=nb_regions, ) diff --git a/tests/test_physical_device.py b/tests/test_physical_device.py index d0ba43b..1b79ad8 100644 --- a/tests/test_physical_device.py +++ b/tests/test_physical_device.py @@ -43,7 +43,7 @@ class TestPhysicalDevice(unittest.TestCase): "traverse_site_groups": False, "inventory_mode": "disabled", "inventory_sync": False, - "inventory_map": {} + "device_inventory_map": {} }): self.device = PhysicalDevice( self.mock_nb_device, @@ -303,7 +303,7 @@ class TestPhysicalDevice(unittest.TestCase): "device_cf": "zabbix_hostid", "inventory_mode": "manual", "inventory_sync": True, - "inventory_map": { + "device_inventory_map": { "name": "name", "serial": "serialno_a" }