From a8be54f8aa236a30b1aef92c90212170dd20dbd6 Mon Sep 17 00:00:00 2001 From: dcore94 Date: Thu, 16 Sep 2021 16:59:35 +0200 Subject: [PATCH] added report generation --- templates/da_cache_to_shub.json.j2 | 52 ++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/templates/da_cache_to_shub.json.j2 b/templates/da_cache_to_shub.json.j2 index 921feb2..a755e34 100644 --- a/templates/da_cache_to_shub.json.j2 +++ b/templates/da_cache_to_shub.json.j2 @@ -157,6 +157,58 @@ "name" : "join", "type" : "JOIN", "taskReferenceName" : "join_parallel_downloads" + }, + { + "name" : "fork_join", + "type" : "FORK_JOIN", + "taskReferenceName" : "fork_manage_output", + "inputParameters" : { + + }, + "dynamicForkTasksParam": "tasks", + "dynamicForkTasksInputParamName": "inputs" + }, + { + "name" : "join", + "type" : "JOIN", + "taskReferenceName" : "join_manage_output" + }, + { + "name" : "fork_join", + "taskReferenceName" : "reporting", + "type": "FORK_JOIN", + "forkTasks" : [ + [ + { + "name": "LAMBDA_TASK", + "taskReferenceName": "build_json_report", + "type": "LAMBDA", + "inputParameters": { + "input" : "${workflow.input.descriptor}", + "output" : "${join_manage_output.output}", + "scriptExpression": "var k,report={requestid:$.input.request_id,order_number:$.input.order_number,errors:[]},keys=Object.keys($.output).sort();for(k in keys){var index=keys[k].split('_')[1],o=$.output[keys[k]];o.endpoint1.error&&report.errors.push({url:$.input.downloads[index].url,number:index,error_number:1002,error_message:o.endpoint1.error}),o.endpoint2.error&&report.errors.push({url:$.input.descriptor.downloads[index].url,number:index,error_number:9999,error_message:o.endpoint2.error})};return {report:Java.to(report,'java.util.Map[]')}" + } + } + ], + [ + { + "name": "LAMBDA_TASK", + "taskReferenceName": "build_email_report", + "type": "LAMBDA", + "inputParameters": { + "input" : "${workflow.input.descriptor}", + "output" : "${join_manage_output.output}", + "scriptExpression": "var k,report='',keys=Object.keys($.output).sort();for(k in keys){var index=keys[k].split('_')[1];report+='';var o=$.output[keys[k]];o.endpoint1.error||o.endpoint2.error?report+='':report+='',report+=''}report+='
DownloadOutcomeLink
'+index+''+(o.endpoint1.error||'')+(o.endpoint2.error||'')+'OK
';return { report : report}" + } + } + ] + ] + }, + { + "name" : "join", + "type" : "JOIN", + "taskReferenceName" : "join_reporting", + "joinOn" : ["build_json_report", "build_email_report"] } ] }