Merge "refactor handling of extension list"
This commit is contained in:
@@ -153,31 +153,17 @@ class Client(httpclient.HTTPClient):
|
|||||||
headers={'Accept':
|
headers={'Accept':
|
||||||
'application/json'})
|
'application/json'})
|
||||||
if resp.status_code in (200, 204): # some cases we get No Content
|
if resp.status_code in (200, 204): # some cases we get No Content
|
||||||
try:
|
if 'extensions' in body and 'values' in body['extensions']:
|
||||||
results = {}
|
# Parse correct format (per contract)
|
||||||
if 'extensions' in body:
|
extensions = body['extensions']['values']
|
||||||
if 'values' in body['extensions']:
|
elif 'extensions' in body:
|
||||||
# Parse correct format (per contract)
|
# Support incorrect, but prevalent format
|
||||||
for extension in body['extensions']['values']:
|
extensions = body['extensions']
|
||||||
alias, name = \
|
else:
|
||||||
self._get_extension_info(
|
return dict(message=(
|
||||||
extension
|
'Unrecognized extensions response from %s' % url))
|
||||||
)
|
|
||||||
results[alias] = name
|
return dict(self._get_extension_info(e) for e in extensions)
|
||||||
return results
|
|
||||||
else:
|
|
||||||
# Support incorrect, but prevalent format
|
|
||||||
for extension in body['extensions']:
|
|
||||||
alias, name = \
|
|
||||||
self._get_extension_info(extension)
|
|
||||||
results[alias] = name
|
|
||||||
return results
|
|
||||||
else:
|
|
||||||
results['message'] = ("Unrecognized extensions "
|
|
||||||
"response from %s" % url)
|
|
||||||
return results
|
|
||||||
except KeyError:
|
|
||||||
raise exceptions.AuthorizationFailure()
|
|
||||||
elif resp.status_code == 305:
|
elif resp.status_code == 305:
|
||||||
return self._check_keystone_extensions(resp['location'])
|
return self._check_keystone_extensions(resp['location'])
|
||||||
else:
|
else:
|
||||||
|
Reference in New Issue
Block a user