From 1e5231d68ba5999032c7094bb81f01b8db7cf860 Mon Sep 17 00:00:00 2001 From: Jeff Bradberry Date: Tue, 19 Oct 2021 14:37:48 -0400 Subject: [PATCH] Enable ActivityStream capture for Instances --- awx/api/serializers.py | 1 + awx/main/models/__init__.py | 1 + awx/main/signals.py | 1 + awx/main/tasks.py | 3 +++ 4 files changed, 6 insertions(+) diff --git a/awx/api/serializers.py b/awx/api/serializers.py index c3e2a427f9..e8df13ab3e 100644 --- a/awx/api/serializers.py +++ b/awx/api/serializers.py @@ -5003,6 +5003,7 @@ class ActivityStreamSerializer(BaseSerializer): ('credential_type', ('id', 'name', 'description', 'kind', 'managed')), ('ad_hoc_command', ('id', 'name', 'status', 'limit')), ('workflow_approval', ('id', 'name', 'unified_job_id')), + ('instance', ('id', 'hostname')), ] return field_list diff --git a/awx/main/models/__init__.py b/awx/main/models/__init__.py index 0fab2cd4f6..29b64a0758 100644 --- a/awx/main/models/__init__.py +++ b/awx/main/models/__init__.py @@ -201,6 +201,7 @@ activity_stream_registrar.connect(Organization) activity_stream_registrar.connect(Inventory) activity_stream_registrar.connect(Host) activity_stream_registrar.connect(Group) +activity_stream_registrar.connect(Instance) activity_stream_registrar.connect(InventorySource) # activity_stream_registrar.connect(InventoryUpdate) activity_stream_registrar.connect(Credential) diff --git a/awx/main/signals.py b/awx/main/signals.py index 5caf7b45a8..d8931dc266 100644 --- a/awx/main/signals.py +++ b/awx/main/signals.py @@ -377,6 +377,7 @@ def model_serializer_mapping(): models.Inventory: serializers.InventorySerializer, models.Host: serializers.HostSerializer, models.Group: serializers.GroupSerializer, + models.Instance: serializers.InstanceSerializer, models.InstanceGroup: serializers.InstanceGroupSerializer, models.InventorySource: serializers.InventorySourceSerializer, models.Credential: serializers.CredentialSerializer, diff --git a/awx/main/tasks.py b/awx/main/tasks.py index 0ff7820ea5..9e933f17ba 100644 --- a/awx/main/tasks.py +++ b/awx/main/tasks.py @@ -288,6 +288,9 @@ def apply_cluster_membership_policies(): continue instances_to_add = set(g.instances) - set(g.prior_instances) instances_to_remove = set(g.prior_instances) - set(g.instances) + # The following writes to the db don't spam the activity stream, because + # InstanceGroup is special-cased in signals.py to connect to only the non-m2m + # signal handlers. if instances_to_add: logger.debug('Adding instances {} to group {}'.format(list(instances_to_add), g.obj.name)) g.obj.instances.add(*instances_to_add)