From 739765f2f8fdfba281f6cae9be274a59ae0c1f73 Mon Sep 17 00:00:00 2001 From: Jean-Baptiste Jaillet Date: Mon, 20 Mar 2017 16:12:06 +0100 Subject: [PATCH] multitenant: add delete_tenant command --- .../management/commands/delete_tenant.py | 29 ++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 hobo/multitenant/management/commands/delete_tenant.py diff --git a/hobo/multitenant/management/commands/delete_tenant.py b/hobo/multitenant/management/commands/delete_tenant.py new file mode 100644 index 0000000..4d3096d --- /dev/null +++ b/hobo/multitenant/management/commands/delete_tenant.py @@ -0,0 +1,29 @@ +import sys +from optparse import make_option + +from django.core.management.base import CommandError, BaseCommand +from hobo.multitenant.middleware import TenantMiddleware + + +class Command(BaseCommand): + help = "Delete tenant(s) by hostname(s)" + args = ['...'] + option_list = BaseCommand.option_list + ( + make_option('--force-drop', action='store_true', default=False, + help='If you want the schema to be deleted from database'), + ) + + def handle(self, *args, **options): + + if not args: + raise CommandError("you must give at least one tenant hostname") + + # if - is given on the command line, get list of hostnames from stdin + if '-' in args: + args = list(args) + args.remove('-') + args.extend([x.strip() for x in sys.stdin.readlines()]) + for hostname in args: + tenant = TenantMiddleware.get_tenant_by_hostname(hostname) + tenant.delete(force_drop=options['force_drop']) + -- 2.11.0