Support to force delete instance
Change-Id: I20802f199ef943244f27a842743434e1c84c79e5
This commit is contained in:
parent
4463f36eb0
commit
a0324f4109
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
features:
|
||||
- |
|
||||
Support to force delete instance. By default, only allowed by admin user.
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
openstack database instance delete --force <instance>
|
|
@ -177,13 +177,21 @@ class DeleteDatabaseInstance(base.TroveDeleter):
|
|||
metavar='instance',
|
||||
help='Id or name of instance(s).'
|
||||
)
|
||||
parser.add_argument(
|
||||
'--force',
|
||||
action="store_true",
|
||||
default=False,
|
||||
help=_('Force delete the instance, will reset the instance status '
|
||||
'before deleting.'),
|
||||
)
|
||||
return parser
|
||||
|
||||
def take_action(self, parsed_args):
|
||||
db_instances = self.app.client_manager.database.instances
|
||||
|
||||
# Used for batch deletion
|
||||
self.delete_func = db_instances.delete
|
||||
self.delete_func = (db_instances.force_delete
|
||||
if parsed_args.force else db_instances.delete)
|
||||
self.resource = 'database instance'
|
||||
|
||||
ids = []
|
||||
|
|
|
@ -158,6 +158,17 @@ class TestDatabaseInstanceDelete(TestInstances):
|
|||
calls = [mock.call(instance_1), mock.call(instance_2)]
|
||||
self.instance_client.delete.assert_has_calls(calls)
|
||||
|
||||
@mock.patch("troveclient.utils.get_resource_id_by_name")
|
||||
def test_instance_force_delete(self, mock_getid):
|
||||
mock_getid.return_value = "fake_uuid"
|
||||
|
||||
args = ['instance1', '--force']
|
||||
parsed_args = self.check_parser(self.cmd, args, [('force', True)])
|
||||
self.cmd.take_action(parsed_args)
|
||||
|
||||
mock_getid.assert_called_once_with(self.instance_client, "instance1")
|
||||
self.instance_client.force_delete.assert_called_with('fake_uuid')
|
||||
|
||||
|
||||
class TestDatabaseInstanceCreate(TestInstances):
|
||||
|
||||
|
|
Loading…
Reference in New Issue