diff options
author | Tihomir Trifonov <t.trifonov@gmail.com> | 2012-02-01 16:01:06 +0200 |
---|---|---|
committer | Gabriel Hurley <gabriel@strikeawe.com> | 2012-02-15 15:56:03 -0800 |
commit | a1f927e899df4be76584545a2afe1cf6b1541f27 (patch) | |
tree | cf1084001ef01f367baca7aff27dfa64a98fe804 /keystoneclient/base.py | |
parent | 9a6a086baff2ef00f2d80b96f4c5fec086cc6d91 (diff) | |
download | python-keystoneclient-a1f927e899df4be76584545a2afe1cf6b1541f27.tar.gz |
Fixes user update methods.
1. Fixes the url for user update methods to reflect extension status,
e.g. 'users/{user_id}/tenant' to 'users/{user_id}/OS-KSADM/tenant',
as per Keystone API.
2. Fixes the update_user method, as it expects a POST instead of PUT.
Change-Id: I045ca7650b2ef8969af695900da1b4f62d4da6bd
Diffstat (limited to 'keystoneclient/base.py')
-rw-r--r-- | keystoneclient/base.py | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/keystoneclient/base.py b/keystoneclient/base.py index d5d3ee9..df04134 100644 --- a/keystoneclient/base.py +++ b/keystoneclient/base.py @@ -87,8 +87,14 @@ class Manager(object): def _delete(self, url): resp, body = self.api.delete(url) - def _update(self, url, body, response_key=None): - resp, body = self.api.put(url, body=body) + def _update(self, url, body, response_key=None, method="PUT"): + methods = {"PUT": self.api.put, + "POST": self.api.post} + try: + resp, body = methods[method](url, body=body) + except KeyError: + raise exceptions.ClientException("Invalid update method: %s" + % method) # PUT requests may not return a body if body: return self.resource_class(self, body[response_key]) |