diff --git a/awx/main/tests/unit/utils/test_ha.py b/awx/main/tests/unit/utils/test_ha.py deleted file mode 100644 index eb5cfcee03..0000000000 --- a/awx/main/tests/unit/utils/test_ha.py +++ /dev/null @@ -1,68 +0,0 @@ -# -*- coding: utf-8 -*- - -# Copyright (c) 2017 Ansible Tower by Red Hat -# All Rights Reserved. - -# python -import pytest -import mock - -# AWX -from awx.main.utils.ha import ( - AWXCeleryRouter, -) - - -class TestAddRemoveCeleryWorkerQueues(): - @pytest.fixture - def instance_generator(self, mocker): - def fn(hostname='east-1'): - groups=['east', 'west', 'north', 'south'] - instance = mocker.MagicMock() - instance.hostname = hostname - instance.rampart_groups = mocker.MagicMock() - instance.rampart_groups.values_list = mocker.MagicMock(return_value=groups) - - return instance - return fn - - @pytest.fixture - def worker_queues_generator(self, mocker): - def fn(queues=['east', 'west']): - return [dict(name=n, alias='') for n in queues] - return fn - - @pytest.fixture - def mock_app(self, mocker): - app = mocker.MagicMock() - app.control = mocker.MagicMock() - app.control.cancel_consumer = mocker.MagicMock() - return app - - -class TestUpdateCeleryWorkerRouter(): - - @pytest.mark.parametrize("is_controller,expected_routes", [ - (False, { - 'awx.main.tasks.cluster_node_heartbeat': {'queue': 'east-1', 'routing_key': 'east-1'}, - 'awx.main.tasks.purge_old_stdout_files': {'queue': 'east-1', 'routing_key': 'east-1'} - }), - (True, { - 'awx.main.tasks.cluster_node_heartbeat': {'queue': 'east-1', 'routing_key': 'east-1'}, - 'awx.main.tasks.purge_old_stdout_files': {'queue': 'east-1', 'routing_key': 'east-1'}, - 'awx.main.tasks.awx_isolated_heartbeat': {'queue': 'east-1', 'routing_key': 'east-1'}, - }), - ]) - def test_update_celery_worker_routes(self, mocker, is_controller, expected_routes): - def get_or_register(): - instance = mock.MagicMock() - instance.hostname = 'east-1' - instance.is_controller = mock.MagicMock(return_value=is_controller) - return (False, instance) - - with mock.patch('awx.main.models.Instance.objects.get_or_register', get_or_register): - router = AWXCeleryRouter() - - for k,v in expected_routes.iteritems(): - assert router.route_for_task(k) == v - diff --git a/awx/main/utils/ha.py b/awx/main/utils/ha.py index 538de73f69..65fe1190d7 100644 --- a/awx/main/utils/ha.py +++ b/awx/main/utils/ha.py @@ -3,21 +3,15 @@ # Copyright (c) 2017 Ansible Tower by Red Hat # All Rights Reserved. -from awx.main.models import Instance +from django.conf import settings class AWXCeleryRouter(object): def route_for_task(self, task, args=None, kwargs=None): - (changed, instance) = Instance.objects.get_or_register() tasks = [ 'awx.main.tasks.cluster_node_heartbeat', 'awx.main.tasks.purge_old_stdout_files', - ] - isolated_tasks = [ 'awx.main.tasks.awx_isolated_heartbeat', ] if task in tasks: - return {'queue': instance.hostname.encode("utf8"), 'routing_key': instance.hostname.encode("utf8")} - - if instance.is_controller() and task in isolated_tasks: - return {'queue': instance.hostname.encode("utf8"), 'routing_key': instance.hostname.encode("utf8")} + return {'queue': settings.CLUSTER_HOST_ID, 'routing_key': settings.CLUSTER_HOST_ID}