|
@@ -1154,7 +1154,6 @@ class VirtualChassis(PrimaryModel):
|
|
|
})
|
|
})
|
|
|
|
|
|
|
|
def delete(self, *args, **kwargs):
|
|
def delete(self, *args, **kwargs):
|
|
|
-
|
|
|
|
|
# Check for LAG interfaces split across member chassis
|
|
# Check for LAG interfaces split across member chassis
|
|
|
interfaces = Interface.objects.filter(
|
|
interfaces = Interface.objects.filter(
|
|
|
device__in=self.members.all(),
|
|
device__in=self.members.all(),
|
|
@@ -1168,6 +1167,13 @@ class VirtualChassis(PrimaryModel):
|
|
|
"interfaces."
|
|
"interfaces."
|
|
|
).format(self=self, interfaces=InterfaceSpeedChoices))
|
|
).format(self=self, interfaces=InterfaceSpeedChoices))
|
|
|
|
|
|
|
|
|
|
+ # Clear vc_position and vc_priority on member devices BEFORE calling super().delete()
|
|
|
|
|
+ # This must be done here because on_delete=SET_NULL executes before pre_delete signal
|
|
|
|
|
+ for device in members_list:
|
|
|
|
|
+ device.vc_position = None
|
|
|
|
|
+ device.vc_priority = None
|
|
|
|
|
+ device.save()
|
|
|
|
|
+
|
|
|
return super().delete(*args, **kwargs)
|
|
return super().delete(*args, **kwargs)
|
|
|
|
|
|
|
|
|
|
|