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
This commit is contained in:
Dmitry Tantsur 2019-09-24 13:39:57 +02:00 committed by yatin
parent 5cbb6bee6a
commit a0a77572b2
2 changed files with 9 additions and 11 deletions

View File

@ -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

View File

@ -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()