From a0a77572b29eb3257d8c6f2787f0fc92adaec7fb Mon Sep 17 00:00:00 2001 From: Dmitry Tantsur Date: Tue, 24 Sep 2019 13:39:57 +0200 Subject: [PATCH] Correct deprecated usage of ironicclient (broken with 3.0.0) The ironicclient.v1.client.Client started requiring passing a Session with 3.0.0. Use the high-level interface ironicclient.client.get_client instead since it can create a Session for us. Change-Id: I913f5b127be59cb86df2102724ba1f3cea10f384 Closes-Bug: #1845189 --- tripleo_common/actions/base.py | 11 ++++------- tripleo_common/tests/actions/test_base.py | 9 +++++---- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/tripleo_common/actions/base.py b/tripleo_common/actions/base.py index 138413a13..f921701bd 100644 --- a/tripleo_common/actions/base.py +++ b/tripleo_common/actions/base.py @@ -19,7 +19,7 @@ import zlib from glanceclient.v2 import client as glanceclient from heatclient.v1 import client as heatclient import ironic_inspector_client -from ironicclient.v1 import client as ironicclient +from ironicclient import client as ironicclient from keystoneauth1 import session as ks_session from keystoneauth1.token_endpoint import Token from mistral_lib import actions @@ -88,12 +88,9 @@ class TripleOAction(actions.Action): ironic_endpoint = keystone_utils.get_endpoint_for_project( security_ctx, 'ironic') - # FIXME(lucasagomes): Use ironicclient.get_client() instead - # of ironicclient.Client(). Client() might cause errors since - # it doesn't verify the provided arguments, get_client() is the - # prefered way - return ironicclient.Client( - ironic_endpoint.url, + return ironicclient.get_client( + 1, + endpoint=ironic_endpoint.url, token=security_ctx.auth_token, region_name=ironic_endpoint.region, # 1.58 for allocations backfill diff --git a/tripleo_common/tests/actions/test_base.py b/tripleo_common/tests/actions/test_base.py index d227f9029..732dee4d4 100644 --- a/tripleo_common/tests/actions/test_base.py +++ b/tripleo_common/tests/actions/test_base.py @@ -16,7 +16,7 @@ import zlib import mock -from ironicclient.v1 import client as ironicclient +from ironicclient import client as ironicclient from tripleo_common.actions import base from tripleo_common.tests import base as tests_base @@ -32,15 +32,16 @@ class TestActionsBase(tests_base.TestCase): super(TestActionsBase, self).setUp() self.action = base.TripleOAction() - @mock.patch.object(ironicclient, 'Client') + @mock.patch.object(ironicclient, 'get_client', autospec=True) def test_get_baremetal_client(self, mock_client, mock_endpoint): mock_cxt = mock.MagicMock() mock_endpoint.return_value = mock.Mock( url='http://ironic/v1', region='ironic-region') self.action.get_baremetal_client(mock_cxt) mock_client.assert_called_once_with( - 'http://ironic/v1', max_retries=12, os_ironic_api_version='1.58', - region_name='ironic-region', retry_interval=5, token=mock.ANY) + 1, endpoint='http://ironic/v1', max_retries=12, + os_ironic_api_version='1.58', region_name='ironic-region', + retry_interval=5, token=mock.ANY) mock_endpoint.assert_called_once_with(mock_cxt.security, 'ironic') mock_cxt.assert_not_called()