From 20b5aa7424d2725470d3ff168202d1e616f36e3d Mon Sep 17 00:00:00 2001 From: Matthew Jones Date: Fri, 7 Oct 2016 09:58:47 -0400 Subject: [PATCH] Fix some issues with management commands for clustering --- .../management/commands/deprovision_node.py | 27 +++++++++++++++++++ .../management/commands/register_instance.py | 17 ++++++------ 2 files changed, 35 insertions(+), 9 deletions(-) create mode 100644 awx/main/management/commands/deprovision_node.py diff --git a/awx/main/management/commands/deprovision_node.py b/awx/main/management/commands/deprovision_node.py new file mode 100644 index 0000000000..ac27960daa --- /dev/null +++ b/awx/main/management/commands/deprovision_node.py @@ -0,0 +1,27 @@ +# Copyright (c) 2016 Ansible, Inc. +# All Rights Reserved + +from django.core.management.base import CommandError, BaseCommand +from optparse import make_option +from awx.main.models import Instance + + +class Command(BaseCommand): + """ + Deprovision a Tower cluster node + """ + + option_list = BaseCommand.option_list + ( + make_option('--name', dest='name', type='string', + help='Hostname used during provisioning'), + ) + + def handle(self, **options): + # Get the instance. + instance = Instance.objects.filter(hostname=options.get('name')) + if instance.exists(): + instance.delete() + print('Successfully removed') + else: + print('No instance found matching name {}'.format(options.get('name'))) + diff --git a/awx/main/management/commands/register_instance.py b/awx/main/management/commands/register_instance.py index 3355dcf983..04b2b08a8a 100644 --- a/awx/main/management/commands/register_instance.py +++ b/awx/main/management/commands/register_instance.py @@ -4,27 +4,26 @@ from awx.main.models import Instance from django.conf import settings -from django.core.management.base import CommandError, NoArgsCommand +from optparse import make_option +from django.core.management.base import CommandError, BaseCommand -class Command(NoArgsCommand): +class Command(BaseCommand): """ Internal tower command. Regsiter this instance with the database for HA tracking. """ - option_list = NoArgsCommand.option_list + ( + option_list = BaseCommand.option_list + ( make_option('--hostname', dest='hostname', type='string', - help='Hostname used during provisioning') + help='Hostname used during provisioning'), ) - def handle(self, *args, **options): - super(Command, self).handle(**options) + def handle(self, **options): uuid = settings.SYSTEM_UUID - instance = Instance.objects.filter(hostname=options.get('hostname')) if instance.exists(): - print("Instance already registered %s" % instance_str(instance[0])) + print("Instance already registered {}".format(instance[0])) return instance = Instance(uuid=uuid, hostname=options.get('hostname')) instance.save() - print('Successfully registered instance %s.' % instance_str(instance)) + print('Successfully registered instance {}'.format(instance))