diff --git a/workflow/main.nf b/workflow/main.nf index cd95d388e353a18fcacb2a308b9d7350078fc6ef..93b24b0b9463baaf171de15346229847b0c15415 100755 --- a/workflow/main.nf +++ b/workflow/main.nf @@ -89,10 +89,43 @@ process trackStart { aws dynamodb put-item \ --table-name pipeline.tracking \ - --item \ - '{"sessionId": {"S": "${workflow.sessionId}"}, "pipeline": {"S": "cellranger_count"}, "projectDir": {"S": "${workflow.projectDir}"}, "start": {"S": "${workflow.start}"}, "astrocyte": {"BOOL": ${params.astrocyte}}}' + --item '{ \ + "sessionId": {"S": "${workflow.sessionId}"}, \ + "pipeline": {"S": "cellranger_count"}, \ + "projectDir": {"S": "${workflow.projectDir}"}, \ + "start": {"S": "${workflow.start}"}, \ + "astrocyte": {"BOOL": ${params.astrocyte}"}, \ + "status": {"S": "started"}}' """ - } +} + +workflow.onError{ + errorScript = """singularity run 'docker://bicf/awscli:1.1' \ + aws dynamodb update-item \ + --table-name pipeline.tracking \ + --key '{ \ + "sessionId": {"S": "${workflow.sessionId}"}, \ + "projectDir": {"S": "${workflow.projectDir}"}}' \ + --update-expression 'SET #status = :status' \ + --expression-attribute-names '{"#status": "status"}' \ + --expression-attribute-values '{":status": {"S":"error"}}' + """ + errorResult = errorScript.execute().text +} + +workflow.onComplete{ + completeScript = """singularity run 'docker://bicf/awscli:1.1' \ + aws dynamodb update-item \ + --table-name pipeline.tracking \ + --key '{ \ + "sessionId": {"S": "${workflow.sessionId}"}, \ + "projectDir": {"S": "${workflow.projectDir}"}}' \ + --update-expression 'SET #status = :status' \ + --expression-attribute-names '{"#status": "status"}' \ + --expression-attribute-values '{":status": {"S":"complete"}}' + """ + completeResult = completeScript.execute().text +} /* * checkDesignFile: check design file for errors