diff --git a/awx/main/models/ha.py b/awx/main/models/ha.py index e42fbbcdf6..95d5a69b82 100644 --- a/awx/main/models/ha.py +++ b/awx/main/models/ha.py @@ -5,8 +5,7 @@ from decimal import Decimal import logging import os -from django.core.validators import MinValueValidator, MaxValueValidator -from django.core.exceptions import ValidationError +from django.core.validators import MinValueValidator from django.db import models, connection from django.db.models.signals import post_save, post_delete from django.dispatch import receiver @@ -505,12 +504,14 @@ def receptor_address_saved(sender, instance, **kwargs): control_instances = set(Instance.objects.filter(node_type__in=[Instance.Types.CONTROL, Instance.Types.HYBRID])) if address.peers_from_control_nodes: if set(address.peers_from.all()) != control_instances: - address.peers_from.add(*control_instances) - schedule_write_receptor_config() + with disable_activity_stream(): + address.peers_from.add(*control_instances) + schedule_write_receptor_config() else: if address.peers_from.exists(): - address.peers_from.remove(*control_instances) - schedule_write_receptor_config() + with disable_activity_stream(): + address.peers_from.remove(*control_instances) + schedule_write_receptor_config() @receiver(post_delete, sender=ReceptorAddress) diff --git a/awx/main/models/receptor_address.py b/awx/main/models/receptor_address.py index a503712638..25ff08db7e 100644 --- a/awx/main/models/receptor_address.py +++ b/awx/main/models/receptor_address.py @@ -1,10 +1,7 @@ from django.db import models from django.core.validators import MinValueValidator, MaxValueValidator from django.utils.translation import gettext_lazy as _ -from django.db.models.signals import post_save, post_delete -from django.dispatch import receiver from awx.api.versioning import reverse -from django.db.models import Sum, Q class ReceptorAddress(models.Model): diff --git a/awx/main/tests/functional/api/test_instance_peers.py b/awx/main/tests/functional/api/test_instance_peers.py index c73a2b4427..9ca7617607 100644 --- a/awx/main/tests/functional/api/test_instance_peers.py +++ b/awx/main/tests/functional/api/test_instance_peers.py @@ -1,10 +1,7 @@ import pytest import yaml -import itertools from unittest import mock -from django.db.utils import IntegrityError - from awx.api.versioning import reverse from awx.main.models import Instance, ReceptorAddress from awx.api.views.instance_install_bundle import generate_group_vars_all_yml @@ -84,7 +81,7 @@ class TestPeers: only one address can have peers_from_control_nodes set to True for a given instance """ hop = Instance.objects.create(hostname='hop', node_type='hop') - hopaddr1 = ReceptorAddress.objects.create(instance=hop, address='hopaddr1', peers_from_control_nodes=True) + ReceptorAddress.objects.create(instance=hop, address='hopaddr1', peers_from_control_nodes=True) resp = post( url=reverse('api:instance_receptor_addresses_list', kwargs={'pk': hop.pk}), data={"address": "hopaddr2", "peers_from_control_nodes": True}, @@ -247,13 +244,13 @@ class TestPeers: """ control = Instance.objects.create(hostname='control', node_type='control') hop1 = Instance.objects.create(hostname='hop1', node_type='hop') - hop1addr = ReceptorAddress.objects.create(instance=hop1, address='hop1addr', peers_from_control_nodes=True, port=6789) + ReceptorAddress.objects.create(instance=hop1, address='hop1addr', peers_from_control_nodes=True, port=6789) hop2 = Instance.objects.create(hostname='hop2', node_type='hop') hop2addr = ReceptorAddress.objects.create(instance=hop2, address='hop2addr', peers_from_control_nodes=False, port=6789) execution = Instance.objects.create(hostname='execution', node_type='execution') - executionaddr = ReceptorAddress.objects.create(instance=execution, address='executionaddr', peers_from_control_nodes=False, port=6789) + ReceptorAddress.objects.create(instance=execution, address='executionaddr', peers_from_control_nodes=False, port=6789) execution.peers.add(hop2addr) hop1.peers.add(hop2addr) @@ -318,7 +315,7 @@ class TestPeers: # new address with peers_from_control_nodes False and peered to another hop node (no) hop2 = Instance.objects.create(hostname='hop2', node_type='hop') - hop2addr = ReceptorAddress.objects.create(instance=hop2, address='hop2addr', peers_from_control_nodes=False) + ReceptorAddress.objects.create(instance=hop2, address='hop2addr', peers_from_control_nodes=False) hop2.peers.add(hop1addr) hop2.delete() write_method.assert_not_called()