|
@@ -162,6 +162,11 @@ class Aggregate(ContactsMixin, GetAvailablePrefixesMixin, PrimaryModel):
|
|
|
return self.prefix.version
|
|
return self.prefix.version
|
|
|
return None
|
|
return None
|
|
|
|
|
|
|
|
|
|
+ @property
|
|
|
|
|
+ def ipv6_full(self):
|
|
|
|
|
+ if self.prefix and self.prefix.version == 6:
|
|
|
|
|
+ return netaddr.IPAddress(self.prefix).format(netaddr.ipv6_full)
|
|
|
|
|
+
|
|
|
def get_child_prefixes(self):
|
|
def get_child_prefixes(self):
|
|
|
"""
|
|
"""
|
|
|
Return all Prefixes within this Aggregate
|
|
Return all Prefixes within this Aggregate
|
|
@@ -330,6 +335,11 @@ class Prefix(ContactsMixin, GetAvailablePrefixesMixin, CachedScopeMixin, Primary
|
|
|
def mask_length(self):
|
|
def mask_length(self):
|
|
|
return self.prefix.prefixlen if self.prefix else None
|
|
return self.prefix.prefixlen if self.prefix else None
|
|
|
|
|
|
|
|
|
|
+ @property
|
|
|
|
|
+ def ipv6_full(self):
|
|
|
|
|
+ if self.prefix and self.prefix.version == 6:
|
|
|
|
|
+ return netaddr.IPAddress(self.prefix).format(netaddr.ipv6_full)
|
|
|
|
|
+
|
|
|
@property
|
|
@property
|
|
|
def depth(self):
|
|
def depth(self):
|
|
|
return self._depth
|
|
return self._depth
|
|
@@ -808,6 +818,11 @@ class IPAddress(ContactsMixin, PrimaryModel):
|
|
|
self._original_assigned_object_id = self.__dict__.get('assigned_object_id')
|
|
self._original_assigned_object_id = self.__dict__.get('assigned_object_id')
|
|
|
self._original_assigned_object_type_id = self.__dict__.get('assigned_object_type_id')
|
|
self._original_assigned_object_type_id = self.__dict__.get('assigned_object_type_id')
|
|
|
|
|
|
|
|
|
|
+ @property
|
|
|
|
|
+ def ipv6_full(self):
|
|
|
|
|
+ if self.address and self.address.version == 6:
|
|
|
|
|
+ return netaddr.IPAddress(self.address).format(netaddr.ipv6_full)
|
|
|
|
|
+
|
|
|
def get_duplicates(self):
|
|
def get_duplicates(self):
|
|
|
return IPAddress.objects.filter(
|
|
return IPAddress.objects.filter(
|
|
|
vrf=self.vrf,
|
|
vrf=self.vrf,
|