mirror of
https://github.com/ansible/awx.git
synced 2026-05-16 22:07:36 -02: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:
@@ -1230,9 +1230,10 @@ class InventoryUpdate(UnifiedJob, InventorySourceOptions, JobNotificationMixin):
|
|||||||
return 'DEFAULT_INVENTORY_UPDATE_TIMEOUT'
|
return 'DEFAULT_INVENTORY_UPDATE_TIMEOUT'
|
||||||
|
|
||||||
def websocket_emit_data(self):
|
def websocket_emit_data(self):
|
||||||
|
websocket_data = super(InventoryUpdate, self).websocket_emit_data()
|
||||||
if self.inventory_source.group is not None:
|
if self.inventory_source.group is not None:
|
||||||
return dict(group_id=self.inventory_source.group.id)
|
websocket_data.update(dict(group_id=self.inventory_source.group.id))
|
||||||
return {}
|
return websocket_data
|
||||||
|
|
||||||
def save(self, *args, **kwargs):
|
def save(self, *args, **kwargs):
|
||||||
update_fields = kwargs.get('update_fields', [])
|
update_fields = kwargs.get('update_fields', [])
|
||||||
|
|||||||
@@ -435,7 +435,9 @@ class ProjectUpdate(UnifiedJob, ProjectOptions, JobNotificationMixin):
|
|||||||
return False
|
return False
|
||||||
|
|
||||||
def websocket_emit_data(self):
|
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
|
@property
|
||||||
def task_impact(self):
|
def task_impact(self):
|
||||||
|
|||||||
@@ -784,6 +784,12 @@ class UnifiedJob(PolymorphicModel, PasswordFieldsModel, CommonModelNameNotUnique
|
|||||||
return self.unified_job_node.workflow_job.pk
|
return self.unified_job_node.workflow_job.pk
|
||||||
return None
|
return None
|
||||||
|
|
||||||
|
@property
|
||||||
|
def workflow_node_id(self):
|
||||||
|
if self.spawned_by_workflow:
|
||||||
|
return self.unified_job_node.pk
|
||||||
|
return None
|
||||||
|
|
||||||
@property
|
@property
|
||||||
def celery_task(self):
|
def celery_task(self):
|
||||||
try:
|
try:
|
||||||
@@ -808,7 +814,11 @@ class UnifiedJob(PolymorphicModel, PasswordFieldsModel, CommonModelNameNotUnique
|
|||||||
|
|
||||||
def websocket_emit_data(self):
|
def websocket_emit_data(self):
|
||||||
''' Return extra data that should be included when submitting data to the browser over the websocket connection '''
|
''' 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):
|
def websocket_emit_status(self, status):
|
||||||
status_data = dict(unified_job_id=self.id, status=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"
|
status_data['group_name'] = "workflow_events"
|
||||||
emit_channel_notification('workflow_events-' + str(self.workflow_job_id), status_data)
|
emit_channel_notification('workflow_events-' + str(self.workflow_job_id), status_data)
|
||||||
|
|
||||||
|
|
||||||
def notification_data(self):
|
def notification_data(self):
|
||||||
return dict(id=self.id,
|
return dict(id=self.id,
|
||||||
name=self.name,
|
name=self.name,
|
||||||
|
|||||||
Reference in New Issue
Block a user