def test_destroy(self): fake_network = FakeModel('12345678-1234-5678-1234567890ab', tenant_id='aaaaaaaa-aaaa-aaaa-aaaaaaaaaaaa') fake_port = FakeModel('12345678-1234-aaaa-1234567890ab', mac_address='aa:bb:cc:dd:ee:ff') expected_driver_calls = [ mock.call(cfg.CONF), mock.call().get_device_name(fake_network), mock.call().unplug('tap12345678-12') ] with mock.patch('quantum.agent.linux.interface.NullDriver') as dvr_cls: mock_driver = mock.MagicMock() #mock_driver.DEV_NAME_LEN = ( # interface.LinuxInterfaceDriver.DEV_NAME_LEN) #mock_driver.port = fake_port mock_driver.get_device_name.return_value = 'tap12345678-12' dvr_cls.return_value = mock_driver plugin = mock.Mock() plugin.get_dhcp_port.return_value = fake_port dh = dhcp_agent.DeviceManager(cfg.CONF, plugin) dh.destroy(fake_network, 'tap12345678-12') dvr_cls.assert_called_once_with(cfg.CONF) mock_driver.assert_has_calls([ mock.call.unplug('tap12345678-12', namespace='qdhcp-' + fake_network.id) ]) plugin.assert_has_calls( [mock.call.release_dhcp_port(fake_network.id, mock.ANY)])
def test_get_interface_name_no_port_provided(self): fake_network = FakeModel('12345678-1234-5678-1234567890ab', tenant_id='aaaaaaaa-aaaa-aaaa-aaaaaaaaaaaa') fake_port = FakeModel('12345678-1234-aaaa-1234567890ab', mac_address='aa:bb:cc:dd:ee:ff') expected_driver_calls = [ mock.call(cfg.CONF), mock.call().get_device_name(fake_network), mock.call().unplug('tap12345678-12') ] with mock.patch('quantum.agent.linux.interface.NullDriver') as dvr_cls: mock_driver = mock.MagicMock() mock_driver.get_device_name.return_value = 'tap12345678-12' dvr_cls.return_value = mock_driver plugin = mock.Mock() plugin.get_dhcp_port.return_value = fake_port dh = dhcp_agent.DeviceManager(cfg.CONF, plugin) dh.get_interface_name(fake_network) dvr_cls.assert_called_once_with(cfg.CONF) mock_driver.assert_has_calls( [mock.call.get_device_name(fake_port)]) plugin.assert_has_calls( [mock.call.get_dhcp_port(fake_network.id, mock.ANY)])
def _test_setup_helper(self, device_exists, reuse_existing=False): plugin = mock.Mock() plugin.get_dhcp_port.return_value = fake_port1 self.device_exists.return_value = device_exists self.mock_driver.get_device_name.return_value = 'tap12345678-12' dh = dhcp_agent.DeviceManager(cfg.CONF, plugin) dh.setup(fake_network, reuse_existing) plugin.assert_has_calls( [mock.call.get_dhcp_port(fake_network.id, mock.ANY)]) namespace = dhcp_agent.NS_PREFIX + fake_network.id expected = [ mock.call.init_l3('tap12345678-12', ['172.9.9.9/24'], namespace=namespace) ] if not reuse_existing: expected.insert( 0, mock.call.plug(fake_network.id, fake_port1.id, 'tap12345678-12', 'aa:bb:cc:dd:ee:ff', namespace=namespace)) self.mock_driver.assert_has_calls(expected)
def test_get_device_id(self): fake_network = FakeModel('12345678-1234-5678-1234567890ab', tenant_id='aaaaaaaa-aaaa-aaaa-aaaaaaaaaaaa') expected = ('dhcp1ae5f96c-c527-5079-82ea-371a01645457-12345678-1234-' '5678-1234567890ab') with mock.patch('socket.gethostbyname') as get_host: with mock.patch('uuid.uuid5') as uuid5: uuid5.return_value = '1ae5f96c-c527-5079-82ea-371a01645457' get_host.return_value = 'localhost' dh = dhcp_agent.DeviceManager(cfg.CONF, None) uuid5.called_once_with(uuid.NAMESPACE_DNS, 'localhost') self.assertEqual(dh.get_device_id(fake_network), expected)