summaryrefslogtreecommitdiff
path: root/troveclient/osc
diff options
context:
space:
mode:
authorZhao Chao <zhaochao1984@gmail.com>2018-01-19 12:28:42 +0800
committerZhao Chao <zhaochao1984@gmail.com>2018-01-19 14:11:55 +0800
commit9910a3f9138236e2f845a77a01b47f14949a60c8 (patch)
treed13d2c74ee063c822b79fffc75ec7b0dacc81db8 /troveclient/osc
parent4fbb1b1b110e25b0d64c4cae200c55973965e949 (diff)
downloadpython-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.py74
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)))