Fixes #10686 - Import cables using VC master device (#12551)

* Allow importing cables against master device for subordinate device interfaces

* Add tests
This commit is contained in:
Daniel Sheppard
2023-05-12 08:07:51 -05:00
committed by GitHub
parent 556beeee6c
commit 011a936a56
2 changed files with 16 additions and 1 deletions

View File

@@ -1078,7 +1078,11 @@ class CableImportForm(NetBoxModelImportForm):
model = content_type.model_class()
try:
termination_object = model.objects.get(device=device, name=name)
if device.virtual_chassis and device.virtual_chassis.master == device and \
model.objects.filter(device=device, name=name).count() == 0:
termination_object = model.objects.get(device__in=device.virtual_chassis.members.all(), name=name)
else:
termination_object = model.objects.get(device=device, name=name)
if termination_object.cable is not None:
raise forms.ValidationError(f"Side {side.upper()}: {device} {termination_object} is already connected")
except ObjectDoesNotExist: