Hello,
So for my use case, I use stdout and stderr to capture container logs. I am looking into supporting scatter functionality in my compute platform.
So I have the following workflow:
{
"cwlVersion": "v1.0",
"class": "Workflow",
"id": "61b0d5b7eb97fd6c8dbba48c",
"requirements": {
"ScatterFeatureRequirement": {}
},
"inputs": {
"message": "string[]"
},
"outputs": {
"echoStdOut": {
"type": "File[]",
"outputSource": ["echo/echoStdOut"]
},
"echoStdErr": {
"type": "File[]",
"outputSource": ["echo/echoStdErr"]
}
},
"steps": {
"echo": {
"run": "/tmp/cwl/plugin:6148da6f08b2c40710890b09.cwl",
"scatter": "message",
"in": {
"message": "message"
},
"out": ["echoStdOut", "echoStdErr"]
}
}
}
And my echo tool basically captures stdout and stderr:
{
"cwlVersion": "v1.0",
"$namespaces": {
"CustomResourceRequirement": "https://polus.org"
},
"$schemas": ["https://schema.org/version/latest/schemaorg-current-https.rdf"],
"id": "echo",
"class": "CommandLineTool",
"stdout": "echo.out",
"stderr": "echo.out",
"CustomResourceRequirement:gpu": "0",
"requirements": {
"DockerRequirement": {
"dockerPull": "busybox"
},
"InlineJavascriptRequirement": {},
"ResourceRequirement": {},
"InitialWorkDirRequirement": {
"listing": []
}
},
"baseCommand": ["echo"],
"inputs": {
"message": {
"type": "string",
"inputBinding": {
"prefix": "--message"
}
}
},
"outputs": {
"echoStdOut": {
"type": "stdout"
},
"echoStdErr": {
"type": "stderr"
}
}
}
My main question is how can I still use scatter and capture logs on each scatter step. Currently, all logs write to the same echo.out log file and they are overwritten.