diff options
| author | Zuul <zuul@review.opendev.org> | 2020-03-20 14:24:51 +0000 |
|---|---|---|
| committer | Gerrit Code Review <review@openstack.org> | 2020-03-20 14:24:51 +0000 |
| commit | e2f6dcad4e4dc82d7fb627c7c1bb85fea278cb65 (patch) | |
| tree | da7014463627d7212dfb27837c51d11c3f4aaf1b /ironic_python_agent/tests | |
| parent | 7f8afac092e44ca3c93350a73c7b9ff29a0642ba (diff) | |
| parent | c97a71d6f37f54563081bcfa71bf15be7894f3b5 (diff) | |
| download | ironic-python-agent-e2f6dcad4e4dc82d7fb627c7c1bb85fea278cb65.tar.gz | |
Merge "Fix agent token vmedia use"
Diffstat (limited to 'ironic_python_agent/tests')
| -rw-r--r-- | ironic_python_agent/tests/unit/test_agent.py | 79 |
1 files changed, 77 insertions, 2 deletions
diff --git a/ironic_python_agent/tests/unit/test_agent.py b/ironic_python_agent/tests/unit/test_agent.py index 49605d03..3a751967 100644 --- a/ironic_python_agent/tests/unit/test_agent.py +++ b/ironic_python_agent/tests/unit/test_agent.py @@ -146,8 +146,8 @@ class TestBaseAgent(ironic_agent_base.IronicAgentTest): 'eth0', 300, 1, - None, - False) + False, + None) self.agent.ext_mgr = extension.ExtensionManager.\ make_test_instance([extension.Extension('fake', None, FakeExtension, @@ -939,3 +939,78 @@ class TestAdvertiseAddress(ironic_agent_base.IronicAgentTest): mock_gethostbyname.assert_called_once_with('fake_api.example.org') self.assertEqual(5, mock_exec.call_count) self.assertEqual(5, mock_sleep.call_count) + + +@mock.patch.object(hardware, '_md_scan_and_assemble', lambda: None) +@mock.patch.object(hardware, '_check_for_iscsi', lambda: None) +@mock.patch.object(hardware.GenericHardwareManager, 'wait_for_disks', + lambda self: None) +class TestBaseAgentVMediaToken(ironic_agent_base.IronicAgentTest): + + def setUp(self): + super(TestBaseAgentVMediaToken, self).setUp() + self.encoder = encoding.RESTJSONEncoder(indent=4) + + self.agent = agent.IronicPythonAgent('https://fake_api.example.' + 'org:8081/', + agent.Host('203.0.113.1', 9990), + agent.Host('192.0.2.1', 9999), + 3, + 10, + 'eth0', + 300, + 1, + False, + '1' * 128) + self.agent.ext_mgr = extension.ExtensionManager.\ + make_test_instance([extension.Extension('fake', None, + FakeExtension, + FakeExtension())]) + self.sample_nw_iface = hardware.NetworkInterface( + "eth9", "AA:BB:CC:DD:EE:FF", "1.2.3.4", True) + hardware.NODE = None + + @mock.patch( + 'ironic_python_agent.hardware_managers.cna._detect_cna_card', + mock.Mock()) + @mock.patch.object(hardware, 'dispatch_to_managers', autospec=True) + @mock.patch.object(agent.IronicPythonAgent, + '_wait_for_interface', autospec=True) + @mock.patch('oslo_service.wsgi.Server', autospec=True) + @mock.patch.object(hardware, 'get_managers', autospec=True) + def test_run_agent_token_vmedia(self, mock_get_managers, mock_wsgi, + mock_wait, mock_dispatch): + CONF.set_override('inspection_callback_url', '') + + wsgi_server = mock_wsgi.return_value + + def set_serve_api(): + self.agent.serve_api = False + + wsgi_server.start.side_effect = set_serve_api + self.agent.heartbeater = mock.Mock() + self.agent.api_client.lookup_node = mock.Mock() + self.agent.api_client.lookup_node.return_value = { + 'node': { + 'uuid': 'deadbeef-dabb-ad00-b105-f00d00bab10c' + }, + 'config': { + 'heartbeat_timeout': 300, + 'agent_token': '********', + 'agent_token_required': True + } + } + + self.agent.run() + + mock_wsgi.assert_called_once_with(CONF, 'ironic-python-agent', + app=self.agent.api, + host=mock.ANY, port=9999) + wsgi_server.start.assert_called_once_with() + mock_wait.assert_called_once_with(mock.ANY) + self.assertEqual([mock.call('list_hardware_info'), + mock.call('wait_for_disks')], + mock_dispatch.call_args_list) + self.agent.heartbeater.start.assert_called_once_with() + self.assertEqual('1' * 128, self.agent.agent_token) + self.assertEqual('1' * 128, self.agent.api_client.agent_token) |
