Report single node clusters as non-ha (#11212)

* Report single node clusters as non-ha

* Move test file so we can make it use the database

* Update unit test to accomidate different node types
This commit is contained in:
Alan Rominger 2021-10-06 10:50:18 -04:00 committed by GitHub
parent b70793db5c
commit e52416fd47
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 20 additions and 18 deletions

View File

@ -10,6 +10,6 @@ def is_ha_environment():
otherwise.
"""
# If there are two or more instances, then we are in an HA environment.
if Instance.objects.count() > 1:
if Instance.objects.filter(node_type__in=('control', 'hybrid')).count() > 1:
return True
return False

View File

@ -0,0 +1,19 @@
import pytest
# AWX
from awx.main.ha import is_ha_environment
from awx.main.models.ha import Instance
@pytest.mark.django_db
def test_multiple_instances():
for i in range(2):
Instance.objects.create(hostname=f'foo{i}', node_type='hybrid')
assert is_ha_environment()
@pytest.mark.django_db
def test_db_localhost():
Instance.objects.create(hostname='foo', node_type='hybrd')
Instance.objects.create(hostname='bar', node_type='execution')
assert is_ha_environment() is False

View File

@ -1,17 +0,0 @@
# Copyright (c) 2016 Ansible, Inc.
# Python
from unittest import mock
# AWX
from awx.main.ha import is_ha_environment
@mock.patch('awx.main.models.Instance.objects.count', lambda: 2)
def test_multiple_instances():
assert is_ha_environment()
@mock.patch('awx.main.models.Instance.objects.count', lambda: 1)
def test_db_localhost():
assert is_ha_environment() is False