Fixes #1330: Raise validation error when assigning an unrelated IP as the primary IP for a device

This commit is contained in:
Jeremy Stretch 2017-08-15 14:05:02 -04:00
parent c394985b1b
commit 51b1da660a

View File

@ -890,6 +890,18 @@ class Device(CreatedUpdatedModel, CustomFieldModel):
except DeviceType.DoesNotExist:
pass
# Validate primary IPv4 address
if self.primary_ip4 and (self.primary_ip4.interface is None or self.primary_ip4.interface.device != self):
raise ValidationError({
'primary_ip4': "The specified IP address ({}) is not assigned to this device.".format(self.primary_ip4),
})
# Validate primary IPv6 address
if self.primary_ip6 and (self.primary_ip6.interface is None or self.primary_ip6.interface.device != self):
raise ValidationError({
'primary_ip6': "The specified IP address ({}) is not assigned to this device.".format(self.primary_ip6),
})
def save(self, *args, **kwargs):
is_new = not bool(self.pk)