108
111
RegionEventLoopFixture,
109
112
RunningEventLoopFixture,
111
from maasserver.testing.factory import factory
114
from maasserver.testing.factory import (
112
118
from maasserver.testing.testcase import (
113
119
MAASServerTestCase,
114
120
MAASTransactionServerTestCase,
1799
1805
uncontrolled_power_types = (
1800
1806
all_power_types.difference(QUERY_POWER_TYPES))
1801
# manual cannot be stopped, so discard this option.
1802
uncontrolled_power_types.discard("manual")
1803
1807
power_type = random.choice(list(uncontrolled_power_types))
1804
self.assertNotEqual("manual", power_type)
1805
1808
rack = factory.make_RackController()
1806
1809
node = factory.make_Node_with_Interface_on_Subnet(
1807
1810
status=NODE_STATUS.ALLOCATED, owner=owner, owner_data=owner_data,
4130
4133
self.assertItemsEqual(other_nodes + [parent], Node.objects.all())
4133
class TestNodeNetworking(MAASServerTestCase):
4136
class TestNodeNetworking(MAASTransactionServerTestCase):
4134
4137
"""Tests for methods on the `Node` related to networking."""
4140
register_view("maasserver_discovery")
4141
return super().setUp()
4136
4143
def test__create_acquired_bridges_doesnt_call_on_bridge(self):
4137
4144
mock_create_acquired_bridge = self.patch(
4138
4145
Interface, "create_acquired_bridge")
4175
4182
mock_create_acquired_bridge,
4176
4183
MockCalledOnceWith(bridge_stp=bridge_stp, bridge_fd=bridge_fd))
4178
4186
def test_claim_auto_ips_works_with_multiple_auto_on_the_same_subnet(self):
4179
4187
node = factory.make_Node()
4180
4188
vlan = factory.make_VLAN()
4291
4299
[dhcp_ip, static_ip, auto_ip], observed_ip_address)
4292
4300
self.assertEqual(set([True]), clearing_config)
4302
def test__clear_networking_configuration_clears_gateways(self):
4303
node = factory.make_Node()
4304
nic0 = factory.make_Interface(INTERFACE_TYPE.PHYSICAL, node=node)
4305
nic1 = factory.make_Interface(INTERFACE_TYPE.PHYSICAL, node=node)
4306
ipv4_subnet = factory.make_Subnet(
4307
cidr="192.168.0.0/24", gateway_ip="192.168.0.1")
4308
ipv6_subnet = factory.make_Subnet(
4309
cidr="2001:db8::/64", gateway_ip="2001:db8::1")
4310
static_ipv4 = factory.make_StaticIPAddress(
4311
alloc_type=IPADDRESS_TYPE.STICKY, interface=nic0,
4313
static_ipv6 = factory.make_StaticIPAddress(
4314
alloc_type=IPADDRESS_TYPE.STICKY, interface=nic1,
4316
node.gateway_link_ipv4 = static_ipv4
4317
node.gateway_link_ipv6 = static_ipv6
4319
node = reload_object(node)
4320
expected_gateways = DefaultGateways(
4322
interface_id=nic0.id, subnet_id=ipv4_subnet.id,
4323
gateway_ip=ipv4_subnet.gateway_ip),
4325
interface_id=nic1.id, subnet_id=ipv6_subnet.id,
4326
gateway_ip=ipv6_subnet.gateway_ip)
4329
node.get_default_gateways(), Equals(expected_gateways))
4330
node._clear_networking_configuration()
4331
self.assertThat(node.gateway_link_ipv4, Equals(None))
4332
self.assertThat(node.gateway_link_ipv6, Equals(None))
4294
4334
def test_set_initial_net_config_does_nothing_if_skip_networking(self):
4295
4335
node = factory.make_Node_with_Interface_on_Subnet(skip_networking=True)
4296
4336
boot_interface = node.get_boot_interface()
4676
4716
class TestGetDefaultDNSServers(MAASServerTestCase):
4677
4717
"""Tests for `Node.get_default_dns_servers`."""
4720
register_view("maasserver_discovery")
4721
return super().setUp()
4679
4723
def make_Node_with_RackController(
4680
4724
self, ipv4=True, ipv6=True, ipv4_gateway=True, ipv6_gateway=True,
4681
4725
ipv4_subnet_dns=None, ipv6_subnet_dns=None):
4686
4730
fabric = factory.make_Fabric()
4687
4731
vlan = fabric.get_default_vlan()
4689
gateway_ip = None if ipv4_gateway else ""
4733
gateway_ip = RANDOM if ipv4_gateway else ""
4690
4734
v4_subnet = factory.make_Subnet(
4691
4735
version=4, vlan=vlan, dns_servers=ipv4_subnet_dns,
4692
4736
gateway_ip=gateway_ip)
4694
gateway_ip = None if ipv6_gateway else ""
4738
gateway_ip = RANDOM if ipv6_gateway else ""
4695
4739
v6_subnet = factory.make_Subnet(
4696
4740
version=6, vlan=vlan, dns_servers=ipv6_subnet_dns,
4697
4741
gateway_ip=gateway_ip)
4843
4887
node.get_default_dns_servers(), Equals([ipv6_subnet_dns]))
4846
class TestNode_Start(MAASServerTestCase):
4890
class TestNode_Start(MAASTransactionServerTestCase):
4847
4891
"""Tests for Node.start()."""
4849
4893
def setUp(self):
4850
4894
super(TestNode_Start, self).setUp()
4851
4895
self.patch_autospec(node_module, 'power_driver_check')
4896
register_view("maasserver_discovery")
4853
4898
def make_acquired_node_with_interface(
4854
4899
self, user, bmc_connected_to=None, power_type="virsh"):