summaryrefslogtreecommitdiff
path: root/keystoneclient/base.py
diff options
context:
space:
mode:
authorTihomir Trifonov <t.trifonov@gmail.com>2012-02-01 16:01:06 +0200
committerGabriel Hurley <gabriel@strikeawe.com>2012-02-15 15:56:03 -0800
commita1f927e899df4be76584545a2afe1cf6b1541f27 (patch)
treecf1084001ef01f367baca7aff27dfa64a98fe804 /keystoneclient/base.py
parent9a6a086baff2ef00f2d80b96f4c5fec086cc6d91 (diff)
downloadpython-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.py10
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])