Assure consistent ordering with default IG first (#11034)

* Assure consistent ordering with default IG first

* Write conditional a little more defensively to pass tests
This commit is contained in:
Alan Rominger 2021-09-08 11:11:46 -04:00 committed by GitHub
parent 19ccfcff9a
commit 46ac9506e6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 12 additions and 2 deletions

View File

@ -1435,9 +1435,13 @@ class UnifiedJob(
if not settings.IS_K8S:
default_instance_group_names.append(settings.DEFAULT_CONTROL_PLANE_QUEUE_NAME)
default_instance_groups = InstanceGroup.objects.filter(name__in=default_instance_group_names)
default_instance_groups = list(InstanceGroup.objects.filter(name__in=default_instance_group_names))
return list(default_instance_groups)
# assure deterministic precedence by making sure the default group is first
if (not settings.IS_K8S) and default_instance_groups and default_instance_groups[0].name != settings.DEFAULT_EXECUTION_QUEUE_NAME:
default_instance_groups.reverse()
return default_instance_groups
def awx_meta_vars(self):
"""

View File

@ -301,6 +301,12 @@ def test_inherited_instance_group_membership(instance_group_factory, default_ins
assert default_instance_group not in j.preferred_instance_groups
@pytest.mark.django_db
def test_global_instance_groups_as_defaults(controlplane_instance_group, default_instance_group, job_factory):
j = job_factory()
assert j.preferred_instance_groups == [default_instance_group, controlplane_instance_group]
@pytest.mark.django_db
def test_mixed_group_membership(instance_factory, instance_group_factory):
for i in range(5):