mirror of
https://github.com/ansible/awx.git
synced 2026-01-12 18:40:01 -03:30
Delete dead code from get_or_register, move, and test
This commit is contained in:
parent
ef0f6ca248
commit
6c56f2b35b
@ -1,6 +1,8 @@
|
||||
# Copyright (c) 2015 Ansible, Inc.
|
||||
# All Rights Reserved
|
||||
|
||||
import os
|
||||
|
||||
from django.core.management.base import BaseCommand, CommandError
|
||||
from django.db import transaction
|
||||
from django.conf import settings
|
||||
@ -14,7 +16,12 @@ class Command(BaseCommand):
|
||||
Register this instance with the database for HA tracking.
|
||||
"""
|
||||
|
||||
help = "Add instance to the database. When no options are provided, the hostname of the current system will be used. Override with `--hostname`."
|
||||
help = (
|
||||
"Add instance to the database. "
|
||||
"When no options are provided, values from Django settings will be used to register the current system, "
|
||||
"as well as the default queues if needed (only used or enabled for Kubernetes installs). "
|
||||
"Override with `--hostname`."
|
||||
)
|
||||
|
||||
def add_arguments(self, parser):
|
||||
parser.add_argument('--hostname', dest='hostname', type=str, help="Hostname used during provisioning")
|
||||
@ -25,7 +32,14 @@ class Command(BaseCommand):
|
||||
if not hostname:
|
||||
if not settings.AWX_AUTO_DEPROVISION_INSTANCES:
|
||||
raise CommandError('Registering with values from settings only intended for use in K8s installs')
|
||||
(changed, instance) = Instance.objects.get_or_register()
|
||||
|
||||
from awx.main.management.commands.register_queue import RegisterQueue
|
||||
|
||||
(changed, instance) = Instance.objects.register(ip_address=os.environ.get('MY_POD_IP'), node_type='control', uuid=settings.SYSTEM_UUID)
|
||||
RegisterQueue(settings.DEFAULT_CONTROL_PLANE_QUEUE_NAME, 100, 0, [], is_container_group=False).register()
|
||||
RegisterQueue(
|
||||
settings.DEFAULT_EXECUTION_QUEUE_NAME, 100, 0, [], is_container_group=True, pod_spec_override=settings.DEFAULT_EXECUTION_QUEUE_POD_SPEC_OVERRIDE
|
||||
).register()
|
||||
else:
|
||||
(changed, instance) = Instance.objects.register(hostname=hostname, node_type=node_type, uuid=uuid)
|
||||
if changed:
|
||||
|
||||
@ -2,7 +2,6 @@
|
||||
# All Rights Reserved.
|
||||
|
||||
import logging
|
||||
import os
|
||||
from django.db import models
|
||||
from django.conf import settings
|
||||
from django.db.models.functions import Lower
|
||||
@ -164,23 +163,6 @@ class InstanceManager(models.Manager):
|
||||
instance = self.create(hostname=hostname, ip_address=ip_address, node_type=node_type, **create_defaults, **uuid_option)
|
||||
return (True, instance)
|
||||
|
||||
def get_or_register(self):
|
||||
if settings.AWX_AUTO_DEPROVISION_INSTANCES:
|
||||
from awx.main.management.commands.register_queue import RegisterQueue
|
||||
|
||||
pod_ip = os.environ.get('MY_POD_IP')
|
||||
if settings.IS_K8S:
|
||||
registered = self.register(ip_address=pod_ip, node_type='control', uuid=settings.SYSTEM_UUID)
|
||||
else:
|
||||
registered = self.register(ip_address=pod_ip, uuid=settings.SYSTEM_UUID)
|
||||
RegisterQueue(settings.DEFAULT_CONTROL_PLANE_QUEUE_NAME, 100, 0, [], is_container_group=False).register()
|
||||
RegisterQueue(
|
||||
settings.DEFAULT_EXECUTION_QUEUE_NAME, 100, 0, [], is_container_group=True, pod_spec_override=settings.DEFAULT_EXECUTION_QUEUE_POD_SPEC_OVERRIDE
|
||||
).register()
|
||||
return registered
|
||||
else:
|
||||
return (False, self.me())
|
||||
|
||||
|
||||
class InstanceGroupManager(models.Manager):
|
||||
"""A custom manager class for the Instance model.
|
||||
|
||||
@ -0,0 +1,40 @@
|
||||
import pytest
|
||||
|
||||
from awx.main.management.commands.provision_instance import Command
|
||||
from awx.main.models.ha import InstanceGroup, Instance
|
||||
from awx.main.tasks.system import apply_cluster_membership_policies
|
||||
|
||||
from django.test.utils import override_settings
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_traditional_registration():
|
||||
assert not Instance.objects.exists()
|
||||
assert not InstanceGroup.objects.exists()
|
||||
|
||||
Command().handle(hostname='bar_node', node_type='execution', uuid='4321')
|
||||
|
||||
inst = Instance.objects.first()
|
||||
assert inst.hostname == 'bar_node'
|
||||
assert inst.node_type == 'execution'
|
||||
assert inst.uuid == '4321'
|
||||
|
||||
assert not InstanceGroup.objects.exists()
|
||||
|
||||
|
||||
@pytest.mark.django_db
|
||||
def test_register_self_openshift():
|
||||
assert not Instance.objects.exists()
|
||||
assert not InstanceGroup.objects.exists()
|
||||
|
||||
with override_settings(AWX_AUTO_DEPROVISION_INSTANCES=True, CLUSTER_HOST_ID='foo_node', SYSTEM_UUID='12345'):
|
||||
Command().handle()
|
||||
inst = Instance.objects.first()
|
||||
assert inst.hostname == 'foo_node'
|
||||
assert inst.uuid == '12345'
|
||||
assert inst.node_type == 'control'
|
||||
|
||||
apply_cluster_membership_policies() # populate instance list using policy rules
|
||||
|
||||
assert list(InstanceGroup.objects.get(name='default').instances.all()) == [] # container group
|
||||
assert list(InstanceGroup.objects.get(name='controlplane').instances.all()) == [inst]
|
||||
Loading…
x
Reference in New Issue
Block a user