diff --git a/src/TaskManager/TaskManager/appsettings.Local.json b/src/TaskManager/TaskManager/appsettings.Local.json index 75c15831b..5df825ab3 100644 --- a/src/TaskManager/TaskManager/appsettings.Local.json +++ b/src/TaskManager/TaskManager/appsettings.Local.json @@ -74,8 +74,8 @@ "scuAgentName": "monaiscu" }, "argoCallback": { - "argoRabbitOverrideEnabled": false, - "argoRabbitOverrideEndpoint": "localhost" + "argoRabbitOverrideEnabled": true, + "argoRabbitOverrideEndpoint": "rabbit-monai" } } }, diff --git a/src/WorkflowManager/Logging/Logging/Log.cs b/src/WorkflowManager/Logging/Logging/Log.cs index 4018210b0..b221f3a65 100644 --- a/src/WorkflowManager/Logging/Logging/Log.cs +++ b/src/WorkflowManager/Logging/Logging/Log.cs @@ -94,7 +94,7 @@ public static partial class Log [LoggerMessage(EventId = 23, Level = LogLevel.Error, Message = "The task {taskId} metadata store update failed. Payload: {payloadId} - Metadata: {metadata}")] public static partial void TaskMetaDataUpdateFailed(this ILogger logger, string payloadId, string taskId, Dictionary metadata); - [LoggerMessage(EventId = 24, Level = LogLevel.Debug, Message = "No files to export for task {taskId} within workflow instance {workflowInstanceId}.")] + [LoggerMessage(EventId = 24, Level = LogLevel.Error, Message = "No files to export for task {taskId} within workflow instance {workflowInstanceId}.")] public static partial void ExportFilesNotFound(this ILogger logger, string taskId, string workflowInstanceId); [LoggerMessage(EventId = 25, Level = LogLevel.Error, Message = "Failed to get dicom tag {keyId} in bucket {bucketId}. Payload: {payloadId}")] diff --git a/src/WorkflowManager/WorkflowExecuter/Services/WorkflowExecuterService.cs b/src/WorkflowManager/WorkflowExecuter/Services/WorkflowExecuterService.cs index 2dba733cb..6170e6aeb 100644 --- a/src/WorkflowManager/WorkflowExecuter/Services/WorkflowExecuterService.cs +++ b/src/WorkflowManager/WorkflowExecuter/Services/WorkflowExecuterService.cs @@ -349,13 +349,6 @@ private async Task HandleDicomExportAsync(WorkflowRevision workflow, WorkflowIns var artifactValues = GetDicomExports(workflow, workflowInstance, task, exportList); - if (artifactValues.Any() is false) - { - await HandleTaskDestinations(workflowInstance, workflow, task, correlationId); - - return; - } - var files = new List(); foreach (var artifact in artifactValues) { @@ -365,15 +358,29 @@ private async Task HandleDicomExportAsync(WorkflowRevision workflow, WorkflowIns workflowInstance.BucketId, artifact, true); - if (objects.IsNullOrEmpty() is false) + + var dcmFiles = objects?.Where(o => o.FilePath.EndsWith(".dcm"))?.ToList(); + + if (dcmFiles?.IsNullOrEmpty() is false) { - files.AddRange(objects.ToList()); + files.AddRange(dcmFiles.ToList()); } } } artifactValues = files.Select(f => f.FilePath).ToArray(); + if (artifactValues.IsNullOrEmpty()) + { + _logger.ExportFilesNotFound(task.TaskId, workflowInstance.Id); + + await UpdateWorkflowInstanceStatus(workflowInstance, task.TaskId, TaskExecutionStatus.Failed); + + await CompleteTask(task, workflowInstance, correlationId, TaskExecutionStatus.Failed); + + return; + } + await DispatchDicomExport(workflowInstance, task, exportList, artifactValues, correlationId); } @@ -399,8 +406,6 @@ private string[] GetDicomExports(WorkflowRevision workflow, WorkflowInstance wor if (!task.InputArtifacts.Any()) { - _logger.ExportFilesNotFound(task.TaskId, workflowInstance.Id); - return Array.Empty(); }