示例#1
0
    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])
示例#2
0
    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