1
0
mirror of https://github.com/ansible/awx.git synced 2024-11-02 09:51:09 +03:00

Handle race condition where workflow job status might appear stuck in waiting if we miss the socket event indicating that it got moved to running

This commit is contained in:
mabashian 2018-04-06 10:15:24 -04:00
parent 21b58e689a
commit cb92f1794a

View File

@ -195,6 +195,16 @@ export default ['workflowData', 'workflowResultsService', 'workflowDataOptions',
if(data.hasOwnProperty('workflow_job_id') &&
parseInt(data.workflow_job_id, 10) === parseInt($scope.workflow.id,10)){
// This check ensures that the workflow status icon doesn't get stuck in
// the waiting state due to the UI missing the initial socket message. This
// can happen if the GET request on the workflow job returns "waiting" and
// the sockets aren't established yet so we miss the event that indicates
// the workflow job has moved into a running state.
if (!_.includes(['running', 'successful', 'failed', 'error'], $scope.workflow.status)){
$scope.workflow.status = 'running';
runTimeElapsedTimer = workflowResultsService.createOneSecondTimer(moment(), updateWorkflowJobElapsedTimer);
}
WorkflowService.updateStatusOfNode({
treeData: $scope.treeData,
nodeId: data.workflow_node_id,