Pass path into full_url and base_url
This change mirrors what was done prior to flask and leans on the base_url and full_url functions to append '/v3' and the path or collection_name. This will allow for changes to wrap_member and wrap_collection to properly handle local-only wrapping (no need to cross-api call wrap because a "role" is returned from the "trust" api). Change-Id: I5376d8abc581994f28da64f3b578a04b00e68c4d Partial-Bug: #1776504
This commit is contained in:
parent
637990bf71
commit
13897ef69b
|
@ -58,7 +58,7 @@ class OSRevokeResource(flask_restful.Resource):
|
|||
response = {'events': [event.to_dict() for event in events],
|
||||
'links': {
|
||||
'next': None,
|
||||
'self': '%s/v3/OS-REVOKE/events' % ks_flask.base_url(),
|
||||
'self': ks_flask.base_url(path='/OS-REVOKE/events'),
|
||||
'previous': None}
|
||||
}
|
||||
return response
|
||||
|
|
|
@ -81,7 +81,7 @@ def _normalize_trust_roles(trust):
|
|||
|
||||
trust['roles'] = trust_full_roles
|
||||
trust['roles_links'] = {
|
||||
'self': ks_flask.base_url() + '/%s/roles' % trust['id'],
|
||||
'self': ks_flask.base_url(path='/%s/roles' % trust['id']),
|
||||
'next': None,
|
||||
'previous': None}
|
||||
|
||||
|
|
|
@ -594,8 +594,8 @@ class ResourceBase(flask_restful.Resource):
|
|||
|
||||
container = {cls.collection_key: refs}
|
||||
pfx = getattr(cls, 'api_prefix', '').lstrip('/')
|
||||
parts = [p for p in (full_url(), 'v3', pfx, cls.collection_key) if p]
|
||||
self_url = '/'.join(parts)
|
||||
path = '/'.join([p for p in (pfx, cls.collection_key) if p])
|
||||
self_url = full_url(path)
|
||||
container['links'] = {
|
||||
'next': None,
|
||||
'self': self_url,
|
||||
|
@ -617,7 +617,7 @@ class ResourceBase(flask_restful.Resource):
|
|||
if cls.api_prefix:
|
||||
api_prefix = cls.api_prefix.lstrip('/').rstrip('/')
|
||||
collection_element = '/'.join([api_prefix, cls.collection_key])
|
||||
self_link = '/'.join([base_url(), 'v3', collection_element, ref['id']])
|
||||
self_link = base_url(path='/'.join([collection_element, ref['id']]))
|
||||
ref.setdefault('links', {})['self'] = self_link
|
||||
|
||||
@classmethod
|
||||
|
@ -797,7 +797,7 @@ class ResourceBase(flask_restful.Resource):
|
|||
return arg.replace(':', '_').replace('-', '_')
|
||||
|
||||
|
||||
def base_url():
|
||||
def base_url(path=''):
|
||||
url = CONF['public_endpoint']
|
||||
|
||||
if url:
|
||||
|
@ -819,11 +819,13 @@ def base_url():
|
|||
# production environment.
|
||||
url = 'http://localhost:%d' % CONF.eventlet_server.public_port
|
||||
|
||||
return url.rstrip('/')
|
||||
url = url.rstrip('/')
|
||||
url = '/'.join([p for p in (url, 'v3', path.lstrip('/').rstrip('/')) if p])
|
||||
return url
|
||||
|
||||
|
||||
def full_url():
|
||||
subs = {'url': base_url(), 'query_string': ''}
|
||||
def full_url(path=''):
|
||||
subs = {'url': base_url(path), 'query_string': ''}
|
||||
qs = flask.request.environ.get('QUERY_STRING')
|
||||
if qs:
|
||||
subs['query_string'] = '?%s' % qs
|
||||
|
|
Loading…
Reference in New Issue