summaryrefslogtreecommitdiff
path: root/troveclient/osc/v1/databases.py
diff options
context:
space:
mode:
authorzhanggang <zhanggang@cmss.chinamobile.com>2017-12-07 04:16:50 -0500
committerzhanggang <zhanggang@cmss.chinamobile.com>2017-12-08 04:01:01 -0500
commit2119af70ef4cfa8ea031c25f9e0d3abcf102fdcc (patch)
tree3c34344174f0ebb0242cee2dad18d95cb28688e7 /troveclient/osc/v1/databases.py
parent22ae4cf93788c73ccdd639423989f70be339dbac (diff)
downloadpython-troveclient-2119af70ef4cfa8ea031c25f9e0d3abcf102fdcc.tar.gz
Add database-delete to OSC
This change adds database support to the python-openstackclient project for the database-delete command. The trove command database-delete is now: openstack database db delete Change-Id: I7e56326b8f60624c2f408046055a10a42ea4d183 Partially-Implements: trove-support-in-python-openstackclient
Diffstat (limited to 'troveclient/osc/v1/databases.py')
-rw-r--r--troveclient/osc/v1/databases.py37
1 files changed, 34 insertions, 3 deletions
diff --git a/troveclient/osc/v1/databases.py b/troveclient/osc/v1/databases.py
index 54a9746..ea68697 100644
--- a/troveclient/osc/v1/databases.py
+++ b/troveclient/osc/v1/databases.py
@@ -13,10 +13,10 @@
"""Database v1 Databases action implementations"""
from osc_lib.command import command
-from osc_lib import utils as osc_utils
+from osc_lib import exceptions
+from osc_lib import utils
from troveclient.i18n import _
-from troveclient import utils
class ListDatabases(command.Lister):
@@ -42,5 +42,36 @@ class ListDatabases(command.Lister):
while items.next:
items = databases.list(instance, marker=items.next)
dbs += items
- dbs = [osc_utils.get_item_properties(db, self.columns) for db in dbs]
+ dbs = [utils.get_item_properties(db, self.columns) for db in dbs]
return self.columns, dbs
+
+
+class DeleteDatabase(command.Command):
+
+ _description = _("Deletes a database from an instance.")
+
+ def get_parser(self, prog_name):
+ parser = super(DeleteDatabase, self).get_parser(prog_name)
+ parser.add_argument(
+ dest='instance',
+ metavar='<instance>',
+ help=_('ID or name of the instance.')
+ )
+ parser.add_argument(
+ dest='database',
+ metavar='<database>',
+ help=_('Name of the database.')
+ )
+ return parser
+
+ def take_action(self, parsed_args):
+ manager = self.app.client_manager.database
+ databases = manager.databases
+ try:
+ instance = utils.find_resource(manager.instances,
+ parsed_args.instance)
+ databases.delete(instance, parsed_args.database)
+ except Exception as e:
+ msg = (_("Failed to delete database %(database)s: %(e)s")
+ % {'database': parsed_args.database, 'e': e})
+ raise exceptions.CommandError(msg)