summaryrefslogtreecommitdiff
path: root/openstackclient/common/quota.py
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2017-01-17 17:23:54 +0000
committerGerrit Code Review <review@openstack.org>2017-01-17 17:23:54 +0000
commit08ca61ba074ba43ab0fd281992e878c78e0f709a (patch)
tree837819d39d4cd39634644e0418be19c99372690e /openstackclient/common/quota.py
parente853d93a04fd548e94beaa46e8c47fe043f5a8ea (diff)
parent0340275fa9b48cda5a5f4015534ca8cbca23b3d2 (diff)
downloadpython-openstackclient-08ca61ba074ba43ab0fd281992e878c78e0f709a.tar.gz
Merge "Fix quota set command error for SDK > 0.9.10"
Diffstat (limited to 'openstackclient/common/quota.py')
-rw-r--r--openstackclient/common/quota.py33
1 files changed, 30 insertions, 3 deletions
diff --git a/openstackclient/common/quota.py b/openstackclient/common/quota.py
index fa6c5765..d86aec58 100644
--- a/openstackclient/common/quota.py
+++ b/openstackclient/common/quota.py
@@ -182,9 +182,36 @@ class SetQuota(command.Command):
project,
**volume_kwargs)
if network_kwargs:
- network_client.update_quota(
- project,
- **network_kwargs)
+ if hasattr(_quota.Quota, 'allow_get'):
+ # TODO(huanxuan): Remove this block once the fixed
+ # SDK Quota class is the minimum required version.
+ # This is expected to be SDK release 0.9.13
+ res = network_client._get_resource(
+ _quota.Quota, project, **network_kwargs)
+ if any([res._body.dirty, res._header.dirty]):
+ request = res._prepare_request(prepend_key=True)
+ # remove the id in the body
+ if 'id' in request.body[res.resource_key]:
+ del request.body[res.resource_key]['id']
+ if res.patch_update:
+ response = network_client.session.patch(
+ request.uri,
+ endpoint_filter=res.service,
+ json=request.body,
+ headers=request.headers
+ )
+ else:
+ response = network_client.session.put(
+ request.uri,
+ endpoint_filter=res.service,
+ json=request.body,
+ headers=request.headers
+ )
+ res._translate_response(response, has_body=True)
+ else:
+ network_client.update_quota(
+ project,
+ **network_kwargs)
class ShowQuota(command.ShowOne):