diff options
| author | Zhao Chao <zhaochao1984@gmail.com> | 2018-01-19 12:28:42 +0800 |
|---|---|---|
| committer | Zhao Chao <zhaochao1984@gmail.com> | 2018-01-19 14:11:55 +0800 |
| commit | 9910a3f9138236e2f845a77a01b47f14949a60c8 (patch) | |
| tree | d13d2c74ee063c822b79fffc75ec7b0dacc81db8 /troveclient/osc | |
| parent | 4fbb1b1b110e25b0d64c4cae200c55973965e949 (diff) | |
| download | python-troveclient-9910a3f9138236e2f845a77a01b47f14949a60c8.tar.gz | |
Add quota commands to OSC
This change adds database support for the python-openstackclient
project for the quota-show and quota-update commands.
The trove command quota-show is now:
openstack database quota show
The trove command quota-update is now:
openstack database quota update
Change-Id: I989b360fd358004e1a2378bdc3a573450baff2f3
Partially-Implements: blueprint trove-support-in-python-openstackclient
Signed-off-by: Zhao Chao <zhaochao1984@gmail.com>
Diffstat (limited to 'troveclient/osc')
| -rw-r--r-- | troveclient/osc/v1/database_quota.py | 74 |
1 files changed, 74 insertions, 0 deletions
diff --git a/troveclient/osc/v1/database_quota.py b/troveclient/osc/v1/database_quota.py new file mode 100644 index 0000000..f257dd7 --- /dev/null +++ b/troveclient/osc/v1/database_quota.py @@ -0,0 +1,74 @@ +# Licensed under the Apache License, Version 2.0 (the "License"); you may +# not use this file except in compliance with the License. You may obtain +# a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT +# WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the +# License for the specific language governing permissions and limitations +# under the License. + +"""Database v1 Quota action implementations""" + +from osc_lib.command import command +from osc_lib import utils as osc_utils +import six + +from troveclient.i18n import _ + + +class ShowDatabaseQuota(command.Lister): + + _description = _("Show quotas for a tenant.") + columns = ['Resource', 'In Use', 'Reserved', 'Limit'] + + def get_parser(self, prog_name): + parser = super(ShowDatabaseQuota, self).get_parser(prog_name) + parser.add_argument( + 'tenant_id', + metavar='<tenant_id>', + help=_('Id of tenant for which to show quotas.'), + ) + return parser + + def take_action(self, parsed_args): + db_quota = self.app.client_manager.database.quota + quota = [osc_utils.get_item_properties(q, self.columns) + for q in db_quota.show(parsed_args.tenant_id)] + return self.columns, quota + + +class UpdateDatabaseQuota(command.ShowOne): + + _description = _("Update quotas for a tenant.") + + def get_parser(self, prog_name): + parser = super(UpdateDatabaseQuota, self).get_parser(prog_name) + parser.add_argument( + 'tenant_id', + metavar='<tenant_id>', + help=_('Id of tenant for which to update quotas.'), + ) + parser.add_argument( + 'resource', + metavar='<resource>', + help=_('Id of resource to change.'), + ) + parser.add_argument( + 'limit', + metavar='<limit>', + type=int, + help=_('New limit to set for the named resource.'), + ) + return parser + + def take_action(self, parsed_args): + db_quota = self.app.client_manager.database.quota + update_params = { + parsed_args.resource: parsed_args.limit + } + updated_quota = db_quota.update(parsed_args.tenant_id, + update_params) + return zip(*sorted(six.iteritems(updated_quota))) |
