diff --git a/doc/source/command-objects/quota.rst b/doc/source/command-objects/quota.rst index 053fb47acc..5ea49f8c52 100644 --- a/doc/source/command-objects/quota.rst +++ b/doc/source/command-objects/quota.rst @@ -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 ---------- diff --git a/openstackclient/common/quota.py b/openstackclient/common/quota.py index dde4a9acb6..ea1dc38f58 100644 --- a/openstackclient/common/quota.py +++ b/openstackclient/common/quota.py @@ -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")