mirror of
https://github.com/ansible/awx.git
synced 2026-01-19 05:31:22 -03:30
send and subcribe to summary events for all new events
This commit is contained in:
parent
2bd656e61d
commit
c6b6a3ad89
@ -25,6 +25,7 @@ from django.core.cache import cache as django_cache
|
||||
|
||||
# AWX
|
||||
from awx.main.models import * # noqa
|
||||
from awx.main.consumers import emit_channel_notification
|
||||
|
||||
logger = logging.getLogger('awx.main.commands.run_callback_receiver')
|
||||
|
||||
@ -159,6 +160,17 @@ class CallbackBrokerWorker(ConsumerMixin):
|
||||
job_identifier = body[key]
|
||||
break
|
||||
|
||||
if body.get('event') == 'EOF':
|
||||
# EOF events are sent when stdout for the running task is
|
||||
# closed. don't actually persist them to the database; we
|
||||
# just use them to report `summary` websocket events as an
|
||||
# approximation for when a job is "done"
|
||||
emit_channel_notification(
|
||||
'jobs-summary',
|
||||
dict(group_name='jobs', unified_job_id=job_identifier)
|
||||
)
|
||||
continue
|
||||
|
||||
retries = 0
|
||||
while retries <= self.MAX_RETRIES:
|
||||
try:
|
||||
|
||||
@ -9,7 +9,6 @@ from django.utils.translation import ugettext_lazy as _
|
||||
from django.utils.encoding import force_text
|
||||
|
||||
from awx.api.versioning import reverse
|
||||
from awx.main.consumers import emit_channel_notification
|
||||
from awx.main.fields import JSONField
|
||||
from awx.main.models.base import CreatedModifiedModel
|
||||
from awx.main.utils import ignore_inventory_computed_fields
|
||||
@ -361,8 +360,6 @@ class BasePlaybookEvent(CreatedModifiedModel):
|
||||
self._update_host_summary_from_stats(hostnames)
|
||||
self.job.inventory.update_computed_fields()
|
||||
|
||||
emit_channel_notification('jobs-summary', dict(group_name='jobs', unified_job_id=self.job.id))
|
||||
|
||||
|
||||
|
||||
class JobEvent(BasePlaybookEvent):
|
||||
|
||||
@ -878,8 +878,10 @@ class OutputEventFilter(object):
|
||||
if self._buffer:
|
||||
self._emit_event(self._buffer)
|
||||
self._buffer = ''
|
||||
self._event_callback(dict(event='EOF'))
|
||||
|
||||
def _emit_event(self, buffered_stdout, next_event_data=None):
|
||||
next_event_data = next_event_data or {}
|
||||
if self._current_event_data:
|
||||
event_data = self._current_event_data
|
||||
stdout_chunks = [buffered_stdout]
|
||||
|
||||
@ -216,15 +216,14 @@ export default
|
||||
self.unsubscribe(state);
|
||||
}
|
||||
else{
|
||||
if(state.data && state.data.socket && state.data.socket.groups.hasOwnProperty( "job_events")){
|
||||
state.data.socket.groups.job_events = [id];
|
||||
}
|
||||
if(state.data && state.data.socket && state.data.socket.groups.hasOwnProperty( "ad_hoc_command_events")){
|
||||
state.data.socket.groups.ad_hoc_command_events = [id];
|
||||
}
|
||||
if(state.data && state.data.socket && state.data.socket.groups.hasOwnProperty( "workflow_events")){
|
||||
state.data.socket.groups.workflow_events = [id];
|
||||
}
|
||||
["job_events", "ad_hoc_command_events", "workflow_events",
|
||||
"project_update_events", "inventory_update_events",
|
||||
"system_job_events"
|
||||
].forEach(function(group) {
|
||||
if(state.data && state.data.socket && state.data.socket.groups.hasOwnProperty(group)){
|
||||
state.data.socket.groups[group] = [id];
|
||||
}
|
||||
});
|
||||
self.subscribe(state);
|
||||
}
|
||||
return true;
|
||||
|
||||
@ -19,7 +19,7 @@ export default {
|
||||
jobType: 'ad_hoc_commands',
|
||||
socket: {
|
||||
"groups": {
|
||||
"jobs": ["status_changed"],
|
||||
"jobs": ["status_changed", "summary"],
|
||||
"ad_hoc_command_events": []
|
||||
}
|
||||
}
|
||||
|
||||
@ -20,7 +20,8 @@ export default {
|
||||
data: {
|
||||
socket: {
|
||||
"groups":{
|
||||
"jobs": ["status_changed"]
|
||||
"jobs": ["status_changed", "summary"],
|
||||
"inventory_update_events": [],
|
||||
}
|
||||
},
|
||||
jobType: 'inventory_updates'
|
||||
|
||||
@ -19,7 +19,8 @@ export default {
|
||||
jobType: 'system_jobs',
|
||||
socket: {
|
||||
"groups": {
|
||||
"jobs": ["status_changed"]
|
||||
"jobs": ["status_changed", "summary"],
|
||||
"system_job_events": [],
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -21,7 +21,8 @@ export default {
|
||||
jobType: 'project_updates',
|
||||
socket: {
|
||||
"groups": {
|
||||
"jobs": ["status_changed"]
|
||||
"jobs": ["status_changed", "summary"],
|
||||
"project_update_events": [],
|
||||
}
|
||||
},
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user