Add support to specify volume quotas per volume type

Add a --volume-type option to quota set, this will allow users
to set quotas for volume attributes on a per volume-type basis.

for example:
  openstack quota set admin --volume-type myvol --volumes 12

Change-Id: I3ce9cf82a65d4f012b339f0e0dedb752cb132c33
Closes-Bug: 1438377
This commit is contained in:
Steve Martinelli 2015-04-03 03:12:27 -04:00
parent d5f2c50c0f
commit 8bd8a8dfd7
2 changed files with 15 additions and 2 deletions

View File

@ -30,6 +30,7 @@ Set quotas for project
[--gigabytes <new-gigabytes>]
[--snapshots <new-snapshots>]
[--volumes <new-volumes>]
[--volume-type <volume-type>]
<project>
@ -121,6 +122,10 @@ Set quotas for class
New value for the snapshots quota
.. option:: --volume-type <volume-type>
Set quotas for a specific <volume-type>
quota show
----------

View File

@ -82,6 +82,11 @@ class SetQuota(command.Command):
type=int,
help='New value for the %s quota' % v,
)
parser.add_argument(
'--volume-type',
metavar='<volume-type>',
help='Set quotas for a specific <volume-type>',
)
return parser
def take_action(self, parsed_args):
@ -97,8 +102,11 @@ class SetQuota(command.Command):
volume_kwargs = {}
for k, v in VOLUME_QUOTAS.items():
if v in parsed_args:
volume_kwargs[k] = getattr(parsed_args, v, None)
value = getattr(parsed_args, v, None)
if value is not None:
if parsed_args.volume_type:
k = k + '_%s' % parsed_args.volume_type
volume_kwargs[k] = value
if compute_kwargs == {} and volume_kwargs == {}:
sys.stderr.write("No quotas updated")