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__doesnt_add_disconnected_rack(self): rack = factory.make_RackController() # No `RegionRackRPCConnection` is being created so the rack is # disconnected. nic = rack.get_boot_interface() network = factory.make_ipv4_network() subnet = factory.make_Subnet(cidr=str(network.cidr)) 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(0, len(domain.resources))
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 test_uses_maas_internal_domain_config(self): internal_domain = factory.make_name("internal") Config.objects.set_config("maas_internal_domain", internal_domain) domain = get_internal_domain() self.assertEqual(internal_domain, domain.name)