From bec878eb89ff608069e4ed585f0d605a71c01d39 Mon Sep 17 00:00:00 2001 From: "Brad P. Crochet" Date: Tue, 21 Nov 2017 12:32:55 -0500 Subject: [PATCH] Switch zaqarclient and swiftclient to use a session Use a keystone session with zaqar and swift clients. Change-Id: I1be34d903b2785205c1f240095e52a63de795b8e Closes-Bug: #1733345 --- mistral/actions/openstack/actions.py | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/mistral/actions/openstack/actions.py b/mistral/actions/openstack/actions.py index 1a3ce9138..959864a1a 100644 --- a/mistral/actions/openstack/actions.py +++ b/mistral/actions/openstack/actions.py @@ -409,6 +409,7 @@ class BaremetalIntrospectionAction(base.OpenStackAction): class SwiftAction(base.OpenStackAction): + _service_name = 'swift' @classmethod def _get_client_class(cls): @@ -418,13 +419,15 @@ class SwiftAction(base.OpenStackAction): LOG.debug("Swift action security context: %s", context) - swift_endpoint = keystone_utils.get_endpoint_for_project('swift') + swift_endpoint = self.get_service_endpoint() + + session_and_auth = self.get_session_and_auth(context) kwargs = { 'preauthurl': swift_endpoint.url % { 'tenant_id': context.project_id }, - 'preauthtoken': context.auth_token, + 'session': session_and_auth['session'], 'insecure': context.insecure } @@ -432,6 +435,7 @@ class SwiftAction(base.OpenStackAction): class ZaqarAction(base.OpenStackAction): + _service_type = 'messaging' @classmethod def _get_client_class(cls): @@ -441,18 +445,20 @@ class ZaqarAction(base.OpenStackAction): LOG.debug("Zaqar action security context: %s", context) - zaqar_endpoint = keystone_utils.get_endpoint_for_project( - service_type='messaging') - keystone_endpoint = keystone_utils.get_keystone_endpoint_v2() + zaqar_endpoint = self.get_service_endpoint() + + session_and_auth = self.get_session_and_auth(context) + + auth_uri = context.auth_uri or CONF.keystone_authtoken.auth_uri opts = { 'os_auth_token': context.auth_token, - 'os_auth_url': keystone_endpoint.url, + 'os_auth_url': auth_uri, 'os_project_id': context.project_id, 'insecure': context.insecure, } - auth_opts = {'backend': 'keystone', 'options': opts} - conf = {'auth_opts': auth_opts} + auth_opts = {'backend': 'keystone', 'options': opts, } + conf = {'auth_opts': auth_opts, 'session': session_and_auth['session']} return self._get_client_class()(zaqar_endpoint.url, conf=conf)