summaryrefslogtreecommitdiff
path: root/openstackclient
diff options
context:
space:
mode:
authorRui Chen <chenrui.momo@gmail.com>2016-08-05 12:07:13 +0800
committerRui Chen <chenrui.momo@gmail.com>2016-09-12 11:00:55 +0800
commit6fba7163e85a436d1fe0660d9932a53d06b1a343 (patch)
tree26cf39aa2dbbec1db5635e58875a5f95ed02bcaa /openstackclient
parent4e71e9da6b729212516eceb0aa556ecbc4dfdf36 (diff)
downloadpython-openstackclient-6fba7163e85a436d1fe0660d9932a53d06b1a343.tar.gz
Set quota "per_volume_gigabytes", "backup_gigabytes" and "backups"
"per_volume_gigabytes", "backup_gigabytes" and "backups" items can be shown in "openstack quota show" command, but can't be updated by "openstack quota set". This patch fix the issue. Change-Id: I47db5a69d4e4ef6e140f2735257c83e1fb052760 Closes-Bug: #1609767
Diffstat (limited to 'openstackclient')
-rw-r--r--openstackclient/common/quota.py12
-rw-r--r--openstackclient/tests/unit/common/test_quota.py22
2 files changed, 33 insertions, 1 deletions
diff --git a/openstackclient/common/quota.py b/openstackclient/common/quota.py
index 5d53171c..8ae6f7d4 100644
--- a/openstackclient/common/quota.py
+++ b/openstackclient/common/quota.py
@@ -43,11 +43,20 @@ COMPUTE_QUOTAS = {
}
VOLUME_QUOTAS = {
+ 'backups': 'backups',
+ 'backup_gigabytes': 'backup-gigabytes',
'gigabytes': 'gigabytes',
+ 'per_volume_gigabytes': 'per-volume-gigabytes',
'snapshots': 'snapshots',
'volumes': 'volumes',
}
+IMPACT_VOLUME_TYPE_QUOTAS = [
+ 'gigabytes',
+ 'snapshots',
+ 'volumes',
+]
+
NOVA_NETWORK_QUOTAS = {
'floating_ips': 'floating-ips',
'security_group_rules': 'secgroup-rules',
@@ -128,7 +137,8 @@ class SetQuota(command.Command):
for k, v in VOLUME_QUOTAS.items():
value = getattr(parsed_args, k, None)
if value is not None:
- if parsed_args.volume_type:
+ if (parsed_args.volume_type and
+ k in IMPACT_VOLUME_TYPE_QUOTAS):
k = k + '_%s' % parsed_args.volume_type
volume_kwargs[k] = value
diff --git a/openstackclient/tests/unit/common/test_quota.py b/openstackclient/tests/unit/common/test_quota.py
index 7edd4186..cbe4cb80 100644
--- a/openstackclient/tests/unit/common/test_quota.py
+++ b/openstackclient/tests/unit/common/test_quota.py
@@ -158,12 +158,20 @@ class TestQuotaSet(TestQuota):
'--gigabytes', str(volume_fakes.QUOTA['gigabytes']),
'--snapshots', str(volume_fakes.QUOTA['snapshots']),
'--volumes', str(volume_fakes.QUOTA['volumes']),
+ '--backups', str(volume_fakes.QUOTA['backups']),
+ '--backup-gigabytes', str(volume_fakes.QUOTA['backup_gigabytes']),
+ '--per-volume-gigabytes',
+ str(volume_fakes.QUOTA['per_volume_gigabytes']),
identity_fakes.project_name,
]
verifylist = [
('gigabytes', volume_fakes.QUOTA['gigabytes']),
('snapshots', volume_fakes.QUOTA['snapshots']),
('volumes', volume_fakes.QUOTA['volumes']),
+ ('backups', volume_fakes.QUOTA['backups']),
+ ('backup_gigabytes', volume_fakes.QUOTA['backup_gigabytes']),
+ ('per_volume_gigabytes',
+ volume_fakes.QUOTA['per_volume_gigabytes']),
]
parsed_args = self.check_parser(self.cmd, arglist, verifylist)
@@ -174,6 +182,9 @@ class TestQuotaSet(TestQuota):
'gigabytes': volume_fakes.QUOTA['gigabytes'],
'snapshots': volume_fakes.QUOTA['snapshots'],
'volumes': volume_fakes.QUOTA['volumes'],
+ 'backups': volume_fakes.QUOTA['backups'],
+ 'backup_gigabytes': volume_fakes.QUOTA['backup_gigabytes'],
+ 'per_volume_gigabytes': volume_fakes.QUOTA['per_volume_gigabytes']
}
self.volume_quotas_mock.update.assert_called_once_with(
@@ -188,6 +199,10 @@ class TestQuotaSet(TestQuota):
'--gigabytes', str(volume_fakes.QUOTA['gigabytes']),
'--snapshots', str(volume_fakes.QUOTA['snapshots']),
'--volumes', str(volume_fakes.QUOTA['volumes']),
+ '--backups', str(volume_fakes.QUOTA['backups']),
+ '--backup-gigabytes', str(volume_fakes.QUOTA['backup_gigabytes']),
+ '--per-volume-gigabytes',
+ str(volume_fakes.QUOTA['per_volume_gigabytes']),
'--volume-type', 'volume_type_backend',
identity_fakes.project_name,
]
@@ -195,6 +210,10 @@ class TestQuotaSet(TestQuota):
('gigabytes', volume_fakes.QUOTA['gigabytes']),
('snapshots', volume_fakes.QUOTA['snapshots']),
('volumes', volume_fakes.QUOTA['volumes']),
+ ('backups', volume_fakes.QUOTA['backups']),
+ ('backup_gigabytes', volume_fakes.QUOTA['backup_gigabytes']),
+ ('per_volume_gigabytes',
+ volume_fakes.QUOTA['per_volume_gigabytes']),
('volume_type', 'volume_type_backend'),
]
@@ -206,6 +225,9 @@ class TestQuotaSet(TestQuota):
'gigabytes_volume_type_backend': volume_fakes.QUOTA['gigabytes'],
'snapshots_volume_type_backend': volume_fakes.QUOTA['snapshots'],
'volumes_volume_type_backend': volume_fakes.QUOTA['volumes'],
+ 'backups': volume_fakes.QUOTA['backups'],
+ 'backup_gigabytes': volume_fakes.QUOTA['backup_gigabytes'],
+ 'per_volume_gigabytes': volume_fakes.QUOTA['per_volume_gigabytes']
}
self.volume_quotas_mock.update.assert_called_once_with(