diff options
author | Jenkins <jenkins@review.openstack.org> | 2014-02-08 01:05:47 +0000 |
---|---|---|
committer | Gerrit Code Review <review@openstack.org> | 2014-02-08 01:05:47 +0000 |
commit | ba102bbd56795b1e97a26877a514e7c1303d65d7 (patch) | |
tree | 2f1385403bd6f69cc4db0154c0af293853f34b12 /keystoneclient/generic | |
parent | 2a64a1b37b62bbc15ceb2b1696fa521e86d23f4d (diff) | |
parent | de23a21ed80c6dda7b08a24519a96a8d9ad48f3e (diff) | |
download | python-keystoneclient-ba102bbd56795b1e97a26877a514e7c1303d65d7.tar.gz |
Merge "refactor handling of extension list"
Diffstat (limited to 'keystoneclient/generic')
-rw-r--r-- | keystoneclient/generic/client.py | 36 |
1 files changed, 11 insertions, 25 deletions
diff --git a/keystoneclient/generic/client.py b/keystoneclient/generic/client.py index ebaa619..ba3aecb 100644 --- a/keystoneclient/generic/client.py +++ b/keystoneclient/generic/client.py @@ -153,31 +153,17 @@ class Client(httpclient.HTTPClient): headers={'Accept': 'application/json'}) if resp.status_code in (200, 204): # some cases we get No Content - try: - results = {} - if 'extensions' in body: - if 'values' in body['extensions']: - # Parse correct format (per contract) - for extension in body['extensions']['values']: - alias, name = \ - self._get_extension_info( - extension - ) - results[alias] = name - 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() + if 'extensions' in body and 'values' in body['extensions']: + # Parse correct format (per contract) + extensions = body['extensions']['values'] + elif 'extensions' in body: + # Support incorrect, but prevalent format + extensions = body['extensions'] + else: + return dict(message=( + 'Unrecognized extensions response from %s' % url)) + + return dict(self._get_extension_info(e) for e in extensions) elif resp.status_code == 305: return self._check_keystone_extensions(resp['location']) else: |