Make Barbican client respect OPENSTACK_ENDPOINT_TYPE

See bug for details; this uses base.py's get_url() function to fetch
the appropriate URL.  Also sets the region.

Change-Id: I9f642965eaf6b0213017c8d536e143db62399311
Closes-Bug: 1593329
This commit is contained in:
Matt Borland 2016-06-16 10:47:47 -06:00
parent 38605d2e4c
commit 8369ddde7a
1 changed files with 6 additions and 1 deletions

View File

@ -23,6 +23,7 @@ from keystoneclient import session
from horizon.utils.memoized import memoized # noqa from horizon.utils.memoized import memoized # noqa
from openstack_dashboard.api import base
from openstack_dashboard.api import keystone from openstack_dashboard.api import keystone
from openstack_dashboard.api.rest import urls from openstack_dashboard.api.rest import urls
from openstack_dashboard.api.rest import utils as rest_utils from openstack_dashboard.api.rest import utils as rest_utils
@ -31,6 +32,8 @@ from openstack_dashboard.api.rest import utils as rest_utils
@memoized @memoized
def barbicanclient(request): def barbicanclient(request):
project_id = request.user.project_id project_id = request.user.project_id
region = request.user.services_region
endpoint = base.url_for(request, 'key-manager')
if keystone.get_version() < 3: if keystone.get_version() < 3:
auth = auth_v2.Token(settings.OPENSTACK_KEYSTONE_URL, auth = auth_v2.Token(settings.OPENSTACK_KEYSTONE_URL,
request.user.token.id, request.user.token.id,
@ -41,7 +44,9 @@ def barbicanclient(request):
request.user.token.id, request.user.token.id,
project_id=project_id, project_id=project_id,
project_domain_id=domain_id) project_domain_id=domain_id)
return barbican_client.Client(session=session.Session(auth=auth)) return barbican_client.Client(session=session.Session(auth=auth),
endpoint=endpoint,
region_name=region)
@urls.register @urls.register