From f54ac776cd7aa438cee06e78525379a99c4e1d80 Mon Sep 17 00:00:00 2001 From: AlanCoding Date: Mon, 21 May 2018 15:21:35 -0400 Subject: [PATCH] add final_line_count to EOF websocket --- awx/main/management/commands/run_callback_receiver.py | 3 ++- awx/main/utils/common.py | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/awx/main/management/commands/run_callback_receiver.py b/awx/main/management/commands/run_callback_receiver.py index 7bb33b033c..0ffa218348 100644 --- a/awx/main/management/commands/run_callback_receiver.py +++ b/awx/main/management/commands/run_callback_receiver.py @@ -162,6 +162,7 @@ class CallbackBrokerWorker(ConsumerMixin): if body.get('event') == 'EOF': try: + final_line_count = body.get('final_line_count', 0) logger.info('Event processing is finished for Job {}, sending notifications'.format(job_identifier)) # EOF events are sent when stdout for the running task is # closed. don't actually persist them to the database; we @@ -169,7 +170,7 @@ class CallbackBrokerWorker(ConsumerMixin): # approximation for when a job is "done" emit_channel_notification( 'jobs-summary', - dict(group_name='jobs', unified_job_id=job_identifier) + dict(group_name='jobs', unified_job_id=job_identifier, final_line_count=final_line_count) ) # Additionally, when we've processed all events, we should # have all the data we need to send out success/failure diff --git a/awx/main/utils/common.py b/awx/main/utils/common.py index c9914cd1c3..59499acb2e 100644 --- a/awx/main/utils/common.py +++ b/awx/main/utils/common.py @@ -989,7 +989,7 @@ class OutputEventFilter(object): if value: self._emit_event(value) self._buffer = StringIO() - self._event_callback(dict(event='EOF')) + self._event_callback(dict(event='EOF', final_line_count=self._start_line)) def _emit_event(self, buffered_stdout, next_event_data=None): next_event_data = next_event_data or {}