mirror of
https://github.com/ansible/awx.git
synced 2026-01-22 23:18:03 -03:30
Make websocket events more informative
* Make sure we always populate workflow information when relevant to job status changes. * Include detail about workflow job node
This commit is contained in:
parent
197f39ea70
commit
5df4096660
@ -1230,9 +1230,10 @@ class InventoryUpdate(UnifiedJob, InventorySourceOptions, JobNotificationMixin):
|
||||
return 'DEFAULT_INVENTORY_UPDATE_TIMEOUT'
|
||||
|
||||
def websocket_emit_data(self):
|
||||
websocket_data = super(InventoryUpdate, self).websocket_emit_data()
|
||||
if self.inventory_source.group is not None:
|
||||
return dict(group_id=self.inventory_source.group.id)
|
||||
return {}
|
||||
websocket_data.update(dict(group_id=self.inventory_source.group.id))
|
||||
return websocket_data
|
||||
|
||||
def save(self, *args, **kwargs):
|
||||
update_fields = kwargs.get('update_fields', [])
|
||||
|
||||
@ -435,7 +435,9 @@ class ProjectUpdate(UnifiedJob, ProjectOptions, JobNotificationMixin):
|
||||
return False
|
||||
|
||||
def websocket_emit_data(self):
|
||||
return dict(project_id=self.project.id)
|
||||
websocket_data = super(ProjectUpdate, self).websocket_emit_data()
|
||||
websocket_data.update(dict(project_id=self.project.id))
|
||||
return websocket_data
|
||||
|
||||
@property
|
||||
def task_impact(self):
|
||||
|
||||
@ -784,6 +784,12 @@ class UnifiedJob(PolymorphicModel, PasswordFieldsModel, CommonModelNameNotUnique
|
||||
return self.unified_job_node.workflow_job.pk
|
||||
return None
|
||||
|
||||
@property
|
||||
def workflow_node_id(self):
|
||||
if self.spawned_by_workflow:
|
||||
return self.unified_job_node.pk
|
||||
return None
|
||||
|
||||
@property
|
||||
def celery_task(self):
|
||||
try:
|
||||
@ -808,7 +814,11 @@ class UnifiedJob(PolymorphicModel, PasswordFieldsModel, CommonModelNameNotUnique
|
||||
|
||||
def websocket_emit_data(self):
|
||||
''' Return extra data that should be included when submitting data to the browser over the websocket connection '''
|
||||
return {'workflow_job_id': self.workflow_job_id}
|
||||
websocket_data = dict()
|
||||
if self.spawned_by_workflow:
|
||||
websocket_data.update(dict(workflow_job_id=self.workflow_job_id,
|
||||
workflow_node_id=self.workflow_node_id))
|
||||
return websocket_data
|
||||
|
||||
def websocket_emit_status(self, status):
|
||||
status_data = dict(unified_job_id=self.id, status=status)
|
||||
@ -820,7 +830,6 @@ class UnifiedJob(PolymorphicModel, PasswordFieldsModel, CommonModelNameNotUnique
|
||||
status_data['group_name'] = "workflow_events"
|
||||
emit_channel_notification('workflow_events-' + str(self.workflow_job_id), status_data)
|
||||
|
||||
|
||||
def notification_data(self):
|
||||
return dict(id=self.id,
|
||||
name=self.name,
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user