From 1bb2656c4209bdb7e253c88b44b64688344652e1 Mon Sep 17 00:00:00 2001 From: Arthur Hanson Date: Thu, 10 Oct 2024 11:29:04 -0700 Subject: [PATCH] 17614 Disallow removal of virtual chassis from device if set as master --- netbox/dcim/models/devices.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/netbox/dcim/models/devices.py b/netbox/dcim/models/devices.py index a2b78957e..554c8390b 100644 --- a/netbox/dcim/models/devices.py +++ b/netbox/dcim/models/devices.py @@ -983,6 +983,13 @@ class Device( 'vc_position': _("A device assigned to a virtual chassis must have its position defined.") }) + if hasattr(self, 'vc_master_for') and self.vc_master_for and self.vc_master_for != self.virtual_chassis: + raise ValidationError({ + 'virtual_chassis': _("Cannot change to a different virtual chassis when assigned as a master. Remove it as the master of {master} first.").format( + master=self.vc_master_for + ) + }) + def _instantiate_components(self, queryset, bulk_create=True): """ Instantiate components for the device from the specified component templates.