From 003104cbdb2c7c1231506a041af00f671a543661 Mon Sep 17 00:00:00 2001 From: Matthew Jones Date: Fri, 18 Apr 2014 13:38:43 -0400 Subject: [PATCH] Add a post-save hook for emitting job event notifications over the websocket channel --- awx/main/signals.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/awx/main/signals.py b/awx/main/signals.py index 36b46f2e22..6411581a21 100644 --- a/awx/main/signals.py +++ b/awx/main/signals.py @@ -19,7 +19,7 @@ from crum.signals import current_user_getter # AWX from awx.main.models import * from awx.api.serializers import * -from awx.main.utils import model_instance_diff, model_to_dict, camelcase_to_underscore +from awx.main.utils import model_instance_diff, model_to_dict, camelcase_to_underscore, emit_websocket_notification __all__ = [] @@ -95,6 +95,13 @@ def update_inventory_computed_fields(sender, **kwargs): update_hosts = issubclass(sender, Job) inventory.update_computed_fields(update_hosts=update_hosts) +def emit_job_event_detail(sender, **kwargs): + instance = kwargs['instance'] + created = kwargs['created'] + if created: + event_serialized = JobEventSerializer(instance).data + emit_websocket_notification('/socket.io/job_events', 'job_events-' + str(instance.id), event_serialized) + post_save.connect(update_inventory_computed_fields, sender=Host) post_delete.connect(update_inventory_computed_fields, sender=Host) post_save.connect(update_inventory_computed_fields, sender=Group) @@ -107,6 +114,7 @@ post_save.connect(update_inventory_computed_fields, sender=Job) post_delete.connect(update_inventory_computed_fields, sender=Job) post_save.connect(update_inventory_computed_fields, sender=InventorySource) post_delete.connect(update_inventory_computed_fields, sender=InventorySource) +post_save.connect(emit_job_event_detail, sender=JobEvent) # Migrate hosts, groups to parent group(s) whenever a group is deleted or # marked as inactive.