diff options
author | Zuul <zuul@review.opendev.org> | 2022-03-07 16:49:41 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2022-03-07 16:49:41 +0000 |
commit | 75178ffeb3a4b6819bb9116e2785ece83882f72b (patch) | |
tree | 99dc890398cd18d2332eebc577c8f929fee6fb37 | |
parent | 6331605d6c5c44802efb2c6215c6e09354c95e76 (diff) | |
parent | 8de7e84d5b0fdbdb2fa84d9b687819bdb48060e7 (diff) | |
download | ironic-75178ffeb3a4b6819bb9116e2785ece83882f72b.tar.gz |
Merge "Inspector: better error message on DiscoveryFailure" into stable/xena
-rw-r--r-- | ironic/drivers/modules/inspector.py | 12 | ||||
-rw-r--r-- | ironic/tests/unit/drivers/modules/test_inspector.py | 12 |
2 files changed, 21 insertions, 3 deletions
diff --git a/ironic/drivers/modules/inspector.py b/ironic/drivers/modules/inspector.py index b344abb74..0a3219b71 100644 --- a/ironic/drivers/modules/inspector.py +++ b/ironic/drivers/modules/inspector.py @@ -21,6 +21,7 @@ from urllib import parse as urlparse import eventlet from futurist import periodics +from keystoneauth1 import exceptions as ks_exception import openstack from oslo_log import log as logging @@ -66,9 +67,14 @@ def _get_client(context): conf['ironic-inspector'] = conf.pop('inspector') # TODO(pas-ha) investigate possibility of passing user context here, # similar to what neutron/glance-related code does - return openstack.connection.Connection( - session=session, - oslo_conf=conf).baremetal_introspection + try: + return openstack.connection.Connection( + session=session, + oslo_conf=conf).baremetal_introspection + except ks_exception.DiscoveryFailure as exc: + raise exception.ConfigInvalid( + _("Could not contact ironic-inspector for version discovery: %s") + % exc) def _get_callback_endpoint(client): diff --git a/ironic/tests/unit/drivers/modules/test_inspector.py b/ironic/tests/unit/drivers/modules/test_inspector.py index d0a529852..005b3434b 100644 --- a/ironic/tests/unit/drivers/modules/test_inspector.py +++ b/ironic/tests/unit/drivers/modules/test_inspector.py @@ -13,6 +13,7 @@ from unittest import mock import eventlet +from keystoneauth1 import exceptions as ks_exception import openstack from ironic.common import context @@ -61,6 +62,17 @@ class GetClientTestCase(db_base.DbTestCase): self.assertEqual(1, mock_auth.call_count) self.assertEqual(1, mock_session.call_count) + def test__get_client_connection_problem( + self, mock_conn, mock_session, mock_auth): + mock_conn.side_effect = ks_exception.DiscoveryFailure("") + self.assertRaises(exception.ConfigInvalid, + inspector._get_client, self.context) + mock_conn.assert_called_once_with( + session=mock.sentinel.session, + oslo_conf=mock.ANY) + self.assertEqual(1, mock_auth.call_count) + self.assertEqual(1, mock_session.call_count) + class BaseTestCase(db_base.DbTestCase): def setUp(self): |