def test_get_child_ranges(self): prefix = Prefix(prefix='192.168.0.16/28') prefix.save() ranges = IPRange.objects.bulk_create(( IPRange(start_address=IPNetwork('192.168.0.1/24'), end_address=IPNetwork('192.168.0.10/24'), size=10), # No overlap IPRange(start_address=IPNetwork('192.168.0.11/24'), end_address=IPNetwork('192.168.0.17/24'), size=7), # Partial overlap IPRange(start_address=IPNetwork('192.168.0.18/24'), end_address=IPNetwork('192.168.0.23/24'), size=6), # Full overlap IPRange(start_address=IPNetwork('192.168.0.24/24'), end_address=IPNetwork('192.168.0.30/24'), size=7), # Full overlap IPRange(start_address=IPNetwork('192.168.0.31/24'), end_address=IPNetwork('192.168.0.40/24'), size=10), # Partial overlap )) child_ranges = prefix.get_child_ranges() self.assertEqual(len(child_ranges), 2) self.assertEqual(child_ranges[0], ranges[2]) self.assertEqual(child_ranges[1], ranges[3])
def create_mgmt_prefix(self, site, site_no, vlan): prefix_cidr = "172.30.%d.0/24" % site_no try: prefix = Prefix.objects.get(prefix=prefix_cidr) self.log_info("Mgmt prefix %s already present, carrying on." % prefix) return prefix except Prefix.DoesNotExist: pass prefix = Prefix(site=site, prefix=prefix_cidr, vlan=vlan, role=Role.objects.get(name='Mgmt')) prefix.save() self.log_success("Created mgmt prefix %s" % prefix) return prefix