From 85438e7454c2d4b1331ec6efb7750b2a407704c8 Mon Sep 17 00:00:00 2001 From: Michael H Date: Thu, 16 Jan 2020 19:09:09 -0500 Subject: [PATCH] [Setup] Fix data deletion. (#3384) * I'm ready to :knife: some of these entrypoints * If we're gonna teardown here, may as well do it right --- redbot/setup.py | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/redbot/setup.py b/redbot/setup.py index c052cb64c..2be440acc 100644 --- a/redbot/setup.py +++ b/redbot/setup.py @@ -253,20 +253,23 @@ async def remove_instance( backend = get_current_backend(instance) driver_cls = drivers.get_driver_class(backend) + await driver_cls.initialize(**data_manager.storage_details()) + try: + if delete_data is True: + await driver_cls.delete_all_data(interactive=interactive, drop_db=drop_db) - if delete_data is True: - await driver_cls.delete_all_data(interactive=interactive, drop_db=drop_db) + if interactive is True and remove_datapath is None: + remove_datapath = click.confirm( + "Would you like to delete the instance's entire datapath?", default=False + ) - if interactive is True and remove_datapath is None: - remove_datapath = click.confirm( - "Would you like to delete the instance's entire datapath?", default=False - ) + if remove_datapath is True: + data_path = data_manager.core_data_path().parent + safe_delete(data_path) - if remove_datapath is True: - data_path = data_manager.core_data_path().parent - safe_delete(data_path) - - save_config(instance, {}, remove=True) + save_config(instance, {}, remove=True) + finally: + await driver_cls.teardown() print("The instance {} has been removed\n".format(instance))