Closes #1073: Include prefixes/IPs from all VRFs when viewing the children of a container prefix in the global table

This commit is contained in:
Jeremy Stretch
2018-01-30 13:39:33 -05:00
parent ffc2c564b8
commit a5d2055c11
2 changed files with 15 additions and 7 deletions

View File

@@ -283,15 +283,23 @@ class Prefix(CreatedUpdatedModel, CustomFieldModel):
def get_child_prefixes(self):
"""
Return all Prefixes within this Prefix and VRF.
Return all Prefixes within this Prefix and VRF. If this Prefix is a container in the global table, return child
Prefixes belonging to any VRF.
"""
return Prefix.objects.filter(prefix__net_contained=str(self.prefix), vrf=self.vrf)
if self.vrf is None and self.status == PREFIX_STATUS_CONTAINER:
return Prefix.objects.filter(prefix__net_contained=str(self.prefix))
else:
return Prefix.objects.filter(prefix__net_contained=str(self.prefix), vrf=self.vrf)
def get_child_ips(self):
"""
Return all IPAddresses within this Prefix and VRF.
Return all IPAddresses within this Prefix and VRF. If this Prefix is a container in the global table, return
child IPAddresses belonging to any VRF.
"""
return IPAddress.objects.filter(address__net_host_contained=str(self.prefix), vrf=self.vrf)
if self.vrf is None and self.status == PREFIX_STATUS_CONTAINER:
return IPAddress.objects.filter(address__net_host_contained=str(self.prefix))
else:
return IPAddress.objects.filter(address__net_host_contained=str(self.prefix), vrf=self.vrf)
def get_available_prefixes(self):
"""