89
89
fake_port1 = dhcp.DictModel(dict(id='12345678-1234-aaaa-1234567890ab',
90
90
device_id='dhcp-12345678-1234-aaaa-1234567890ab',
91
92
allocation_pools=fake_subnet1_allocation_pools,
92
93
mac_address='aa:bb:cc:dd:ee:ff',
93
94
network_id='12345678-1234-5678-1234567890ab',
94
95
fixed_ips=[fake_fixed_ip1]))
96
97
fake_port2 = dhcp.DictModel(dict(id='12345678-1234-aaaa-123456789000',
97
99
mac_address='aa:bb:cc:dd:ee:99',
98
100
network_id='12345678-1234-5678-1234567890ab',
111
113
subnets=[fake_subnet1, fake_subnet2],
112
114
ports=[fake_port1]))
116
isolated_network = dhcp.NetModel(
118
id='12345678-1234-5678-1234567890ab',
119
tenant_id='aaaaaaaa-aaaa-aaaa-aaaaaaaaaaaa',
121
subnets=[fake_subnet1],
124
empty_network = dhcp.NetModel(
126
id='12345678-1234-5678-1234567890ab',
127
tenant_id='aaaaaaaa-aaaa-aaaa-aaaaaaaaaaaa',
129
subnets=[fake_subnet1],
114
132
fake_meta_network = dhcp.NetModel(
115
133
True, dict(id='12345678-1234-5678-1234567890ab',
116
134
tenant_id='aaaaaaaa-aaaa-aaaa-aaaaaaaaaaaa',
497
515
self.mock_init_p.stop()
498
516
super(TestDhcpAgentEventHandler, self).tearDown()
500
def _enable_dhcp_helper(self, isolated_metadata=False):
501
if isolated_metadata:
518
def _enable_dhcp_helper(self, network, enable_isolated_metadata=False,
519
is_isolated_network=False):
520
if enable_isolated_metadata:
502
521
cfg.CONF.set_override('enable_isolated_metadata', True)
503
self.plugin.get_network_info.return_value = fake_network
504
self.dhcp.enable_dhcp_helper(fake_network.id)
522
self.plugin.get_network_info.return_value = network
523
self.dhcp.enable_dhcp_helper(network.id)
505
524
self.plugin.assert_has_calls(
506
[mock.call.get_network_info(fake_network.id)])
507
self.call_driver.assert_called_once_with('enable', fake_network)
508
self.cache.assert_has_calls([mock.call.put(fake_network)])
509
if isolated_metadata:
525
[mock.call.get_network_info(network.id)])
526
self.call_driver.assert_called_once_with('enable', network)
527
self.cache.assert_has_calls([mock.call.put(network)])
528
if is_isolated_network:
510
529
self.external_process.assert_has_calls([
519
538
self.assertFalse(self.external_process.call_count)
521
def test_enable_dhcp_helper_enable_isolated_metadata(self):
522
self._enable_dhcp_helper(isolated_metadata=True)
540
def test_enable_dhcp_helper_enable_metadata_isolated_network(self):
541
self._enable_dhcp_helper(isolated_network,
542
enable_isolated_metadata=True,
543
is_isolated_network=True)
545
def test_enable_dhcp_helper_enable_metadata_no_gateway(self):
546
isolated_network_no_gateway = copy.deepcopy(isolated_network)
547
isolated_network_no_gateway.subnets[0].gateway_ip = None
549
self._enable_dhcp_helper(isolated_network_no_gateway,
550
enable_isolated_metadata=True,
551
is_isolated_network=True)
553
def test_enable_dhcp_helper_enable_metadata_nonisolated_network(self):
554
nonisolated_network = copy.deepcopy(isolated_network)
555
nonisolated_network.ports[0].device_owner = "network:router_interface"
556
nonisolated_network.ports[0].fixed_ips[0].ip_address = '172.9.9.1'
558
self._enable_dhcp_helper(nonisolated_network,
559
enable_isolated_metadata=True,
560
is_isolated_network=False)
562
def test_enable_dhcp_helper_enable_metadata_empty_network(self):
563
self._enable_dhcp_helper(empty_network,
564
enable_isolated_metadata=True,
565
is_isolated_network=True)
524
567
def test_enable_dhcp_helper(self):
525
self._enable_dhcp_helper()
568
self._enable_dhcp_helper(fake_network)
527
570
def test_enable_dhcp_helper_down_network(self):
528
571
self.plugin.get_network_info.return_value = fake_down_network