Пример #1
0
 def test_modify_existing_performs_validation(self):
     subnet = make_plain_subnet()
     IPRange(
         subnet=subnet,
         type=IPRANGE_TYPE.DYNAMIC,
         start_ip="192.168.0.100",
         end_ip="192.168.0.150",
     ).save()
     iprange = IPRange(
         subnet=subnet,
         type=IPRANGE_TYPE.DYNAMIC,
         start_ip="192.168.0.151",
         end_ip="192.168.0.200",
     )
     iprange.save()
     # Make sure safe modification works.
     iprange.start_ip = "192.168.0.210"
     iprange.end_ip = "192.168.0.250"
     iprange.save()
     # Modify again, but conflict with first range this time.
     instance_id = iprange.id
     iprange.start_ip = "192.168.0.110"
     iprange.end_ip = "192.168.0.140"
     with ExpectedException(ValidationError, self.dynamic_overlaps):
         iprange.save()
     # Make sure original range isn't deleted after failure to modify.
     iprange = reload_object(iprange)
     self.assertEqual(iprange.id, instance_id)
Пример #2
0
 def test_reserved_range_can_overlap_gateway_ip(self):
     subnet = make_plain_subnet()
     iprange = IPRange(
         subnet=subnet,
         type=IPRANGE_TYPE.RESERVED,
         start_ip="192.168.0.2",
         end_ip="192.168.0.5",
     )
     iprange.save()
     # A RESERVED range can overlap the gateway IP.
     iprange.start_ip = "192.168.0.1"
     iprange.save()
Пример #3
0
 def test_change_dynamic_to_reserved(self):
     subnet = make_plain_subnet()
     iprange = IPRange(
         subnet=subnet,
         type=IPRANGE_TYPE.DYNAMIC,
         start_ip="192.168.0.2",
         end_ip="192.168.0.5",
     )
     iprange.save()
     # Reserved should save OK overlapping gateway IP.
     iprange.type = IPRANGE_TYPE.RESERVED
     iprange.start_ip = "192.168.0.1"
     iprange.save()
Пример #4
0
 def test_dynamic_range_cant_overlap_gateway_ip(self):
     subnet = make_plain_subnet()
     iprange = IPRange(
         subnet=subnet,
         type=IPRANGE_TYPE.DYNAMIC,
         start_ip="192.168.0.2",
         end_ip="192.168.0.5",
     )
     iprange.save()
     # A DYNAMIC range cannot overlap the gateway IP.
     iprange.start_ip = "192.168.0.1"
     with ExpectedException(ValidationError, self.dynamic_overlaps):
         iprange.save()
Пример #5
0
    def test_change_reserved_to_dynamic(self):
        subnet = make_plain_subnet()
        iprange = IPRange(
            subnet=subnet,
            type=IPRANGE_TYPE.RESERVED,
            start_ip="192.168.0.1",
            end_ip="192.168.0.5",
        )
        # Reserved should save OK overlapping gateway IP.
        iprange.save()

        # Dynamic should not save overlapping gateway IP.
        iprange.type = IPRANGE_TYPE.DYNAMIC
        with ExpectedException(ValidationError, self.dynamic_overlaps):
            iprange.save()
        # Fix start_ip and now it should save.
        iprange.start_ip = "192.168.0.2"
        iprange.save()