Update models.py (#2502)

Fix the handling of shared IPs (VIP, VRRF, etc.) when unique IP space enforcement is set.

Add parentheses for the logical OR-statement to make the evaluation valid.

Fixes: #2501
This commit is contained in:
knobix 2018-11-05 21:33:10 +01:00 committed by Jeremy Stretch
parent e97708ada0
commit 0c86fd89ca

View File

@ -596,11 +596,11 @@ class IPAddress(ChangeLoggedModel, CustomFieldModel):
if self.address: if self.address:
# Enforce unique IP space (if applicable) # Enforce unique IP space (if applicable)
if self.role not in IPADDRESS_ROLES_NONUNIQUE and ( if self.role not in IPADDRESS_ROLES_NONUNIQUE and ((
self.vrf is None and settings.ENFORCE_GLOBAL_UNIQUE self.vrf is None and settings.ENFORCE_GLOBAL_UNIQUE
) or ( ) or (
self.vrf and self.vrf.enforce_unique self.vrf and self.vrf.enforce_unique
): )):
duplicate_ips = self.get_duplicates() duplicate_ips = self.get_duplicates()
if duplicate_ips: if duplicate_ips:
raise ValidationError({ raise ValidationError({