1
0
mirror of https://github.com/netbox-community/netbox.git synced 2024-05-10 07:54:54 +00:00

#1694: Initial work on "next available" prefix provisioning

This commit is contained in:
Jeremy Stretch
2017-11-09 16:59:50 -05:00
parent e01e5e6b0e
commit 5d46a112f8
4 changed files with 154 additions and 2 deletions

View File

@@ -281,6 +281,21 @@ class Prefix(CreatedUpdatedModel, CustomFieldModel):
def get_duplicates(self):
return Prefix.objects.filter(vrf=self.vrf, prefix=str(self.prefix)).exclude(pk=self.pk)
def get_child_prefixes(self):
"""
Return all child Prefixes within this Prefix.
"""
return Prefix.objects.filter(prefix__net_contained=str(self.prefix), vrf=self.vrf)
def get_available_prefixes(self):
"""
Return all available prefixes within this Prefix.
"""
prefix = netaddr.IPSet(self.prefix)
child_prefixes = netaddr.IPSet([p.prefix for p in self.get_child_prefixes()])
available_prefixes = prefix - child_prefixes
return available_prefixes
def get_child_ips(self):
"""
Return all IPAddresses within this Prefix.