Beispiel #1
0
 def test_prefers_static_ip_over_dhcp(self):
     rack = factory.make_RackController()
     factory.make_RegionRackRPCConnection(rack)
     nic = rack.get_boot_interface()
     network = factory.make_ipv4_network()
     subnet = factory.make_Subnet(cidr=str(network.cidr))
     static_ip = factory.make_StaticIPAddress(
         alloc_type=IPADDRESS_TYPE.AUTO,
         ip=factory.pick_ip_in_Subnet(subnet),
         subnet=subnet,
         interface=nic,
     )
     factory.make_StaticIPAddress(
         alloc_type=IPADDRESS_TYPE.DHCP,
         ip=factory.pick_ip_in_Subnet(subnet),
         subnet=subnet,
         interface=nic,
     )
     domain = get_internal_domain()
     self.assertThat(domain.resources, HasLength(1))
     self.assertEqual(get_resource_name_for_subnet(subnet),
                      domain.resources[0].name)
     self.assertEqual(
         InternalDomainResourseRecord(rrtype="A", rrdata=static_ip.ip),
         domain.resources[0].records[0],
     )
Beispiel #2
0
 def test_adds_connected_multiple_racks_ipv6(self):
     rack1 = factory.make_RackController()
     factory.make_RegionRackRPCConnection(rack1)
     rack2 = factory.make_RackController()
     factory.make_RegionRackRPCConnection(rack2)
     network = factory.make_ipv6_network()
     subnet = factory.make_Subnet(cidr=str(network.cidr))
     static_ip1 = factory.make_StaticIPAddress(
         alloc_type=IPADDRESS_TYPE.AUTO,
         ip=factory.pick_ip_in_Subnet(subnet),
         subnet=subnet,
         interface=rack1.get_boot_interface(),
     )
     static_ip2 = factory.make_StaticIPAddress(
         alloc_type=IPADDRESS_TYPE.AUTO,
         ip=factory.pick_ip_in_Subnet(subnet),
         subnet=subnet,
         interface=rack2.get_boot_interface(),
     )
     domain = get_internal_domain()
     self.assertEqual(get_resource_name_for_subnet(subnet),
                      domain.resources[0].name)
     self.assertThat(
         domain.resources[0].records,
         MatchesSetwise(
             Equals(
                 InternalDomainResourseRecord(rrtype="AAAA",
                                              rrdata=static_ip1.ip)),
             Equals(
                 InternalDomainResourseRecord(rrtype="AAAA",
                                              rrdata=static_ip2.ip)),
         ),
     )
Beispiel #3
0
 def test_dns_update_all_zones_includes_internal_domain(self):
     self.patch(settings, 'DNS_CONNECT', True)
     rack, static = self.create_rack_with_static_ip()
     factory.make_RegionRackRPCConnection(rack)
     dns_update_all_zones()
     resource_name = get_resource_name_for_subnet(static.subnet)
     self.assertDNSMatches(
         resource_name, Config.objects.get_config('maas_internal_domain'),
         static.ip, reverse=False)
Beispiel #4
0
 def test__adds_connected_rack_ipv6(self):
     rack = factory.make_RackController()
     factory.make_RegionRackRPCConnection(rack)
     nic = rack.get_boot_interface()
     network = factory.make_ipv6_network()
     subnet = factory.make_Subnet(cidr=str(network.cidr))
     static_ip = factory.make_StaticIPAddress(
         alloc_type=IPADDRESS_TYPE.AUTO,
         ip=factory.pick_ip_in_Subnet(subnet),
         subnet=subnet, interface=nic)
     domain = get_internal_domain()
     self.assertEqual(
         get_resource_name_for_subnet(subnet), domain.resources[0].name)
     self.assertEqual(
         InternalDomainResourseRecord(rrtype='AAAA', rrdata=static_ip.ip),
         domain.resources[0].records[0])
Beispiel #5
0
 def make_connections(procId):
     region = RegionController.objects.get_running_controller()
     process = region.processes.get(id=procId)
     endpoints = process.endpoints.all()
     return [
         factory.make_RegionRackRPCConnection(endpoint=endpoint)
         for endpoint in endpoints for _ in range(3)
     ]
Beispiel #6
0
 def test_dns_update_all_zones_includes_multiple_racks(self):
     self.patch(settings, "DNS_CONNECT", True)
     rack1, static1 = self.create_rack_with_static_ip()
     factory.make_RegionRackRPCConnection(rack1)
     rack2, static2 = self.create_rack_with_static_ip(subnet=static1.subnet)
     factory.make_RegionRackRPCConnection(rack2)
     dns_update_all_zones()
     resource_name = get_resource_name_for_subnet(static1.subnet)
     self.assertDNSMatches(
         resource_name,
         Config.objects.get_config("maas_internal_domain"),
         static1.ip,
         reverse=False,
     )
     self.assertDNSMatches(
         resource_name,
         Config.objects.get_config("maas_internal_domain"),
         static2.ip,
         reverse=False,
     )
Beispiel #7
0
 def create_region_rack_rpc_connection(self, params=None):
     if params is None:
         params = {}
     return factory.make_RegionRackRPCConnection(**params)