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], )
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)), ), )
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)
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])
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) ]
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, )
def create_region_rack_rpc_connection(self, params=None): if params is None: params = {} return factory.make_RegionRackRPCConnection(**params)