diff options
| author | Jay Faulkner <jay.faulkner@verizonmedia.com> | 2020-08-28 15:25:36 -0700 |
|---|---|---|
| committer | Julia Kreger <juliaashleykreger@gmail.com> | 2020-09-02 21:56:46 +0000 |
| commit | 2e8d36fc405ef2a58f273d107e506e846d054d78 (patch) | |
| tree | 7018943873720505740dccc60b045fbc3af752b9 /ironic_python_agent/tests/unit/test_agent.py | |
| parent | 86cf092f887834d3c4b2abb47be5ad12ae4aace8 (diff) | |
| download | ironic-python-agent-bugfix/6.2.tar.gz | |
Make WSGI server respect listen_* directivesbugfix/6.2-eolbugfix/6.2
The listen_port and listen_host directives are intended to allow
deployers of IPA to change the port and host IPA listens on. These
configs have not been obeyed since the migration to the oslo.service
wsgi server.
Story: 2008016
Task: 40668
Change-Id: I76235a6e6ffdf80a0f5476f577b055223cdf1585
(cherry picked from commit 7d0ad36ebd350a7162bc3c33bbefd26b9e962a78)
Diffstat (limited to 'ironic_python_agent/tests/unit/test_agent.py')
| -rw-r--r-- | ironic_python_agent/tests/unit/test_agent.py | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/ironic_python_agent/tests/unit/test_agent.py b/ironic_python_agent/tests/unit/test_agent.py index 6c461ab4..74719b10 100644 --- a/ironic_python_agent/tests/unit/test_agent.py +++ b/ironic_python_agent/tests/unit/test_agent.py @@ -375,6 +375,51 @@ class TestBaseAgent(ironic_agent_base.IronicAgentTest): self.assertEqual('1' * 128, self.agent.agent_token) self.assertEqual('1' * 128, self.agent.api_client.agent_token) + @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_listen_host_port(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.listen_address = mock.Mock() + self.agent.listen_address.hostname = '2001:db8:dead:beef::cafe' + self.agent.listen_address.port = 9998 + 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 + } + } + + self.agent.run() + + mock_wsgi.assert_called_once_with(CONF, 'ironic-python-agent', + app=self.agent.api, + host='2001:db8:dead:beef::cafe', + port=9998) + 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() + @mock.patch('eventlet.sleep', autospec=True) @mock.patch( 'ironic_python_agent.hardware_managers.cna._detect_cna_card', |
