From ffb8d5239cf82db8c00e68df724a2e0f1956f9c3 Mon Sep 17 00:00:00 2001 From: Raymond Kuiper Date: Wed, 18 Dec 2024 14:06:40 +0100 Subject: [PATCH] Embedded nesting in hostgroup init. --- modules/device.py | 8 +++++--- modules/hostgroups.py | 7 +++++-- modules/virtual_machine.py | 7 +++++-- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/modules/device.py b/modules/device.py index bb6de2a..5d1f9de 100644 --- a/modules/device.py +++ b/modules/device.py @@ -100,9 +100,11 @@ class PhysicalDevice(): def set_hostgroup(self, hg_format, nb_site_groups, nb_regions): """Set the hostgroup for this device""" # Create new Hostgroup instance - hg = Hostgroup("dev", self.nb, self.nb_api_version) - # Set Hostgroup nesting options - hg.set_nesting(traverse_site_groups, traverse_regions, nb_site_groups, nb_regions) + hg = Hostgroup("dev", self.nb, self.nb_api_version, logger=self.logger, + nested_sitegroup_flag=traverse_site_groups, + nested_region_flag=traverse_regions, + nb_groups=nb_site_groups, + nb_regions=nb_regions) # Generate hostgroup based on hostgroup format self.hostgroup = hg.generate(hg_format) diff --git a/modules/hostgroups.py b/modules/hostgroups.py index 9e54dd2..db5a996 100644 --- a/modules/hostgroups.py +++ b/modules/hostgroups.py @@ -6,7 +6,9 @@ from modules.tools import build_path class Hostgroup(): """Hostgroup class for devices and VM's Takes type (vm or dev) and NB object""" - def __init__(self, obj_type, nb_obj, version, logger=None): + def __init__(self, obj_type, nb_obj, version, logger=None, + nested_sitegroup_flag=False, nested_region_flag=False, + nb_regions=None, nb_groups=None): self.logger = logger if logger else getLogger(__name__) if obj_type not in ("vm", "dev"): msg = f"Unable to create hostgroup with type {type}" @@ -17,7 +19,8 @@ class Hostgroup(): self.name = self.nb.name self.nb_version = version # Used for nested data objects - self.nested_objects = {} + self.set_nesting(nested_sitegroup_flag, nested_region_flag, + nb_groups, nb_regions) self._set_format_options() def __str__(self): diff --git a/modules/virtual_machine.py b/modules/virtual_machine.py index 3e9e410..331a463 100644 --- a/modules/virtual_machine.py +++ b/modules/virtual_machine.py @@ -27,8 +27,11 @@ class VirtualMachine(PhysicalDevice): def set_hostgroup(self, hg_format, nb_site_groups, nb_regions): """Set the hostgroup for this device""" # Create new Hostgroup instance - hg = Hostgroup("vm", self.nb, self.nb_api_version, logger=self.logger) - hg.set_nesting(traverse_site_groups, traverse_regions, nb_site_groups, nb_regions) + hg = Hostgroup("vm", self.nb, self.nb_api_version, logger=self.logger, + nested_sitegroup_flag=traverse_site_groups, + nested_region_flag=traverse_regions, + nb_groups=nb_site_groups, + nb_regions=nb_regions) # Generate hostgroup based on hostgroup format self.hostgroup = hg.generate(hg_format)