diff options
author | zhanggang <zhanggang@cmss.chinamobile.com> | 2017-12-07 04:16:50 -0500 |
---|---|---|
committer | zhanggang <zhanggang@cmss.chinamobile.com> | 2017-12-08 04:01:01 -0500 |
commit | 2119af70ef4cfa8ea031c25f9e0d3abcf102fdcc (patch) | |
tree | 3c34344174f0ebb0242cee2dad18d95cb28688e7 /troveclient/osc/v1/databases.py | |
parent | 22ae4cf93788c73ccdd639423989f70be339dbac (diff) | |
download | python-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.py | 37 |
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) |