From 69e98321fd7644562e1e02d7585395fd550df2cd Mon Sep 17 00:00:00 2001 From: David Cates Date: Tue, 13 May 2025 18:07:09 +0000 Subject: [PATCH 1/4] update vlan adapter --- .../diffsync/adapters/sync_network_data_adapters.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/nautobot_device_onboarding/diffsync/adapters/sync_network_data_adapters.py b/nautobot_device_onboarding/diffsync/adapters/sync_network_data_adapters.py index 316f7dcb..a737a586 100644 --- a/nautobot_device_onboarding/diffsync/adapters/sync_network_data_adapters.py +++ b/nautobot_device_onboarding/diffsync/adapters/sync_network_data_adapters.py @@ -134,7 +134,9 @@ def load_vlans(self): """ # TODO: update this to support multiple locations per VLAN after the setting for this feature has been added. location_ids = list(self.job.devices_to_load.values_list("location__id", flat=True)) - for vlan in VLAN.objects.filter(location__in=location_ids): + for vlan in VLAN.objects.filter(locations__in=location_ids): + if vlan.locations.count() > 1: #TODO: A conditional check will be needed here to support multiple locations per VLAN + continue network_vlan = self.vlan( adapter=self, name=vlan.name, From fa2186c13b0bab4ea8851909ff995ca4d756ae27 Mon Sep 17 00:00:00 2001 From: David Cates Date: Tue, 13 May 2025 18:12:21 +0000 Subject: [PATCH 2/4] add changelog fragment --- changes/372.fixed | 1 + 1 file changed, 1 insertion(+) create mode 100644 changes/372.fixed diff --git a/changes/372.fixed b/changes/372.fixed new file mode 100644 index 00000000..c30d9e30 --- /dev/null +++ b/changes/372.fixed @@ -0,0 +1 @@ +Fixed bug when loading Nautobot Vlans with multiple locations assigned. Only Vlans with 1 location will be considered for the sync. \ No newline at end of file From 04cc5ce5932d61e4cd899339c90daed279aa7950 Mon Sep 17 00:00:00 2001 From: David Cates Date: Tue, 13 May 2025 18:14:44 +0000 Subject: [PATCH 3/4] ruff --- .../diffsync/adapters/sync_network_data_adapters.py | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/nautobot_device_onboarding/diffsync/adapters/sync_network_data_adapters.py b/nautobot_device_onboarding/diffsync/adapters/sync_network_data_adapters.py index a737a586..1f10ace6 100644 --- a/nautobot_device_onboarding/diffsync/adapters/sync_network_data_adapters.py +++ b/nautobot_device_onboarding/diffsync/adapters/sync_network_data_adapters.py @@ -135,7 +135,9 @@ def load_vlans(self): # TODO: update this to support multiple locations per VLAN after the setting for this feature has been added. location_ids = list(self.job.devices_to_load.values_list("location__id", flat=True)) for vlan in VLAN.objects.filter(locations__in=location_ids): - if vlan.locations.count() > 1: #TODO: A conditional check will be needed here to support multiple locations per VLAN + if ( + vlan.locations.count() > 1 + ): # TODO: A conditional check will be needed here to support multiple locations per VLAN continue network_vlan = self.vlan( adapter=self, From f357c93408eb221f234423649231099205a400cd Mon Sep 17 00:00:00 2001 From: David Cates Date: Tue, 13 May 2025 19:06:35 +0000 Subject: [PATCH 4/4] add debug message --- .../diffsync/adapters/sync_network_data_adapters.py | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/nautobot_device_onboarding/diffsync/adapters/sync_network_data_adapters.py b/nautobot_device_onboarding/diffsync/adapters/sync_network_data_adapters.py index 1f10ace6..8b9c89c6 100644 --- a/nautobot_device_onboarding/diffsync/adapters/sync_network_data_adapters.py +++ b/nautobot_device_onboarding/diffsync/adapters/sync_network_data_adapters.py @@ -138,6 +138,10 @@ def load_vlans(self): if ( vlan.locations.count() > 1 ): # TODO: A conditional check will be needed here to support multiple locations per VLAN + if self.job.debug: + self.job.logger.debug( + f"Vlan {vlan.name} has multiple locations. Skipping Vlan load for {vlan.name}." + ) continue network_vlan = self.vlan( adapter=self,