X-Git-Url: https://git.arvados.org/arvados.git/blobdiff_plain/74b4ea5c51773890c4b558b97091af2a0f0c9a7a..dbbc5a9078c0fe88160729f3ca8f56673397b106:/sdk/cwl/tests/federation/main.cwl diff --git a/sdk/cwl/tests/federation/main.cwl b/sdk/cwl/tests/federation/main.cwl index 7326612200..a00e6d3d9a 100755 --- a/sdk/cwl/tests/federation/main.cwl +++ b/sdk/cwl/tests/federation/main.cwl @@ -51,6 +51,21 @@ outputs: twostep-both-remote-success: type: Any outputSource: twostep-both-remote/success + twostep-remote-copy-to-home-success: + type: Any + outputSource: twostep-remote-copy-to-home/success + scatter-gather-success: + type: Any + outputSource: scatter-gather/success + threestep-remote-success: + type: Any + outputSource: threestep-remote/success + hint-on-wf-success: + type: Any + outputSource: hint-on-wf/success + hint-on-tool-success: + type: Any + outputSource: hint-on-tool/success steps: base-case: @@ -92,7 +107,7 @@ steps: runner-home-step-remote: doc: | Single step workflow with the runner on the home cluster and the - step on the remote cluster. + step on the remote cluster. ClusterTarget hint is on the workflow step. in: arvados_api_token: arvados_api_token arvado_api_host_insecure: arvado_api_host_insecure @@ -194,9 +209,9 @@ steps: scrub_image: {default: "arvados/fed-test:remote-case"} scrub_collections: default: - - 031a4ced0aa99de90fb630568afc6e9b+67 # input collection - - eb93a6718eb1a1a8ee9f66ee7d683472+51 # md5sum output collection - - f654d4048612135f4a5e7707ec0fcf3e+112 # final output json + - fccd49fdef8e452295f718208abafd88+69 # input collection + - 58c0e8ea6b148134ef8577ee11307eec+51 # md5sum output collection + - 1fd679c5ab64c123b9764024dbf560f0+112 # final output json out: [out, success] run: framework/testcase.cwl @@ -324,3 +339,207 @@ steps: - ddfa58a81953dad08436d571615dd584+112 # runner output json out: [out, success] run: framework/testcase.cwl + + twostep-remote-copy-to-home: + doc: | + Two step workflow. The runner is on the home cluster, the first + step is on the remote cluster, the second step is on the home + cluster, and propagates its input file directly from input to + output by symlinking the input file in the output directory. + Tests that crunch-run will copy blocks from remote to local + when preparing output collection. + in: + arvados_api_token: arvados_api_token + arvado_api_host_insecure: arvado_api_host_insecure + arvados_api_hosts: arvados_api_hosts + arvados_cluster_ids: arvados_cluster_ids + acr: acr + wf: + default: + class: File + location: cases/twostep-remote-copy-to-home.cwl + secondaryFiles: + - class: File + location: cases/md5sum.cwl + - class: File + location: cases/rev-input-to-output.cwl + obj: + default: + inp: + class: File + location: data/twostep-remote-copy-to-home.txt + valueFrom: |- + ${ + self["md5sumCluster"] = inputs.arvados_cluster_ids[1]; + self["revCluster"] = inputs.arvados_cluster_ids[0]; + return self; + } + runner_cluster: { valueFrom: "$(inputs.arvados_cluster_ids[0])" } + scrub_image: {default: "arvados/fed-test:twostep-remote-copy-to-home"} + scrub_collections: + default: + - 538887bc29a3098bf79abdb8536d17bd+79 # input collection + - 14da0e0d52d7ab2945427074b275e9ee+51 # md5sum output collection + - 2d3a4a840077390a0d7788f169eaba89+112 # rev output collection + - 2d3a4a840077390a0d7788f169eaba89+112 # runner output json + out: [out, success] + run: framework/testcase.cwl + + scatter-gather: + doc: "" + in: + arvados_api_token: arvados_api_token + arvado_api_host_insecure: arvado_api_host_insecure + arvados_api_hosts: arvados_api_hosts + arvados_cluster_ids: arvados_cluster_ids + acr: acr + wf: + default: + class: File + location: cases/scatter-gather.cwl + secondaryFiles: + - class: File + location: cases/md5sum.cwl + - class: File + location: cases/cat.cwl + obj: + default: + shards: + - class: File + location: data/scatter-gather-s1.txt + - class: File + location: data/scatter-gather-s2.txt + - class: File + location: data/scatter-gather-s3.txt + valueFrom: |- + ${ + self["clusters"] = inputs.arvados_cluster_ids; + return self; + } + runner_cluster: { valueFrom: "$(inputs.arvados_cluster_ids[0])" } + scrub_image: {default: "arvados/fed-test:scatter-gather"} + scrub_collections: + default: + - 99cc18329bce1b4a5fe6c4cf60477668+209 # input collection + - 2e570e844e03c7027baad148642d726f+51 # s1 md5sum output collection + - 61c88ee7811d0b849b5c06376eb065a6+51 # s2 md5sum output collection + - 85aaf18d638045fe609e025d3a319b2a+51 # s3 md5sum output collection + - ec44bcba77e65128f1a8f843d881ede4+56 # cat output collection + - 89de265942800ae36549109969940363+117 # runner output json + out: [out, success] + run: framework/testcase.cwl + + threestep-remote: + doc: "" + in: + arvados_api_token: arvados_api_token + arvado_api_host_insecure: arvado_api_host_insecure + arvados_api_hosts: arvados_api_hosts + arvados_cluster_ids: arvados_cluster_ids + acr: acr + wf: + default: + class: File + location: cases/threestep-remote.cwl + secondaryFiles: + - class: File + location: cases/md5sum.cwl + - class: File + location: cases/rev-input-to-output.cwl + obj: + default: + inp: + class: File + location: data/threestep-remote.txt + valueFrom: |- + ${ + self["clusterA"] = inputs.arvados_cluster_ids[0]; + self["clusterB"] = inputs.arvados_cluster_ids[1]; + self["clusterC"] = inputs.arvados_cluster_ids[2]; + return self; + } + runner_cluster: { valueFrom: "$(inputs.arvados_cluster_ids[0])" } + scrub_image: {default: "arvados/fed-test:threestep-remote"} + scrub_collections: + default: + - 9fbf33e62876357fe134f619865cc5a5+68 # input collection + - 210c5f2a716f6689b04316acd4928c10+51 # md5sum output collection + - 3abea7506269d5ebf61fb17c78bbd2af+105 # revB output + - 9e1b3acb28949759ad07e4c9740bbaa5+113 # revC output + - 8c86dbec7de7948871b5e168ede417e1+120 # runner output json + out: [out, success] + run: framework/testcase.cwl + + hint-on-wf: + doc: | + Single step workflow with the runner on the home cluster and the + step on the remote cluster. ClusterTarget hint is at the workflow level. + in: + arvados_api_token: arvados_api_token + arvado_api_host_insecure: arvado_api_host_insecure + arvados_api_hosts: arvados_api_hosts + arvados_cluster_ids: arvados_cluster_ids + acr: acr + wf: + default: + class: File + location: cases/hint-on-wf.cwl + secondaryFiles: + - class: File + location: cases/md5sum.cwl + obj: + default: + inp: + class: File + location: data/hint-on-wf.txt + valueFrom: |- + ${ + self["runOnCluster"] = inputs.arvados_cluster_ids[1]; + return self; + } + runner_cluster: { valueFrom: "$(inputs.arvados_cluster_ids[0])" } + scrub_image: {default: "arvados/fed-test:hint-on-wf"} + scrub_collections: + default: + - 862433f328041b2525c90b1dc3c462fd+62 # input collection + - 9a68b0b9720977faba8a28e75a4398b7+51 # md5sum output collection + - 6a601cddb36ee2f766783b1aa9ff8d66+112 # runner output json + out: [out, success] + run: framework/testcase.cwl + + hint-on-tool: + doc: | + Single step workflow with the runner on the home cluster and the + step on the remote cluster. ClusterTarget hint is at the tool level. + in: + arvados_api_token: arvados_api_token + arvado_api_host_insecure: arvado_api_host_insecure + arvados_api_hosts: arvados_api_hosts + arvados_cluster_ids: arvados_cluster_ids + acr: acr + wf: + default: + class: File + location: cases/hint-on-tool.cwl + secondaryFiles: + - class: File + location: cases/md5sum-tool-hint.cwl + obj: + default: + inp: + class: File + location: data/hint-on-tool.txt + valueFrom: |- + ${ + self["runOnCluster"] = inputs.arvados_cluster_ids[1]; + return self; + } + runner_cluster: { valueFrom: "$(inputs.arvados_cluster_ids[0])" } + scrub_image: {default: "arvados/fed-test:hint-on-tool"} + scrub_collections: + default: + - 6803004a4f8db9f8d1d54f6229851599+64 # input collection + - cacb0d56235564b5ff485c5b31215ab5+51 # md5sum output collection + - 2b50af43fdd84a9e906be2d54b92cddf+112 # runner output json + out: [out, success] + run: framework/testcase.cwl