|
4 | 4 | "SetConstants": { |
5 | 5 | "Type": "ExpressionEval", |
6 | 6 | "Parameters": { |
| 7 | + "gcs_endpoint_id": "<INSERT YOUR GCS ENDPOINT ID HERE>", |
7 | 8 | "gcs_base_path": "/", |
8 | 9 | "compute_endpoint_id": "<INSERT YOUR COMPUTE ENDPOINT ID HERE>", |
9 | 10 | "compute_function_id": "<INSERT YOUR COMPUTE FUNCTION ID HERE>", |
10 | 11 | "compute_output_directory.=": "'/' + _context.run_id + '/'" |
11 | 12 | }, |
12 | 13 | "ResultPath": "$.constants", |
13 | | - "Next": "InitIterateSourcePaths" |
| 14 | + "Next": "InitIterateTransferData" |
14 | 15 | }, |
15 | | - "InitIterateSourcePaths": { |
| 16 | + "InitIterateTransferData": { |
16 | 17 | "Type": "ExpressionEval", |
17 | 18 | "Parameters": { |
18 | | - "src_paths_iterator_pos": 0, |
19 | | - "src_paths": [], |
20 | | - "transfer_from_src_data": [] |
| 19 | + "transfer_data_iterator_pos": 0, |
| 20 | + "transfer_from_src_data": [], |
| 21 | + "src_paths": [] |
21 | 22 | }, |
22 | | - "ResultPath": "$.iterate_source_paths", |
23 | | - "Next": "IterateSourcePathsConditional" |
| 23 | + "ResultPath": "$.iterate_transfer_data", |
| 24 | + "Next": "IterateTransferDataConditional" |
24 | 25 | }, |
25 | | - "IterateSourcePathsConditional": { |
| 26 | + "IterateTransferDataConditional": { |
26 | 27 | "Type": "ExpressionEval", |
27 | 28 | "Parameters": { |
28 | | - "conditional.=": "len(transfer_settings.DATA) > iterate_source_paths.src_paths_iterator_pos" |
| 29 | + "val.=": "len(transfer_settings.DATA) > iterate_transfer_data.transfer_data_iterator_pos" |
29 | 30 | }, |
30 | | - "ResultPath": "$.iterate_source_paths_conditional", |
31 | | - "Next": "IterateSourcePaths" |
| 31 | + "ResultPath": "$.iterate_transfer_data_conditional", |
| 32 | + "Next": "IterateTransferData" |
32 | 33 | }, |
33 | | - "IterateSourcePaths": { |
| 34 | + "IterateTransferData": { |
34 | 35 | "Type": "Choice", |
35 | 36 | "Choices": [ |
36 | 37 | { |
37 | | - "Variable": "$.iterate_source_paths_conditional.conditional", |
| 38 | + "Variable": "$.iterate_transfer_data_conditional.val", |
38 | 39 | "BooleanEquals": true, |
39 | | - "Next": "StatSourcePath" |
| 40 | + "Next": "StatTransferData" |
40 | 41 | } |
41 | 42 | ], |
42 | 43 | "Default": "MakeComputeWorkingDir" |
43 | 44 | }, |
44 | | - "StatSourcePath": { |
| 45 | + "StatTransferData": { |
45 | 46 | "Type": "Action", |
46 | 47 | "ActionUrl": "https://transfer.actions.globus.org/stat", |
47 | 48 | "Parameters": { |
48 | 49 | "endpoint_id.$": "$.transfer_settings.source_endpoint", |
49 | | - "path.=": "transfer_settings.DATA[iterate_source_paths.src_paths_iterator_pos].source_path" |
| 50 | + "path.=": "transfer_settings.DATA[iterate_transfer_data.transfer_data_iterator_pos].source_path" |
50 | 51 | }, |
51 | | - "ResultPath": "$.source_path_stat_result", |
52 | | - "Next": "AppendSourcePath" |
| 52 | + "ResultPath": "$.transfer_data_stat_result", |
| 53 | + "Next": "AppendTransferData" |
53 | 54 | }, |
54 | | - "AppendSourcePath": { |
| 55 | + "AppendTransferData": { |
55 | 56 | "Type": "ExpressionEval", |
56 | 57 | "Parameters": { |
57 | | - "src_paths.=": "iterate_source_paths.src_paths + [constants.compute_output_directory + source_path_stat_result.details.name]", |
58 | | - "transfer_from_src_data.=": "iterate_source_paths.transfer_from_src_data + [{'source_path': transfer_settings.DATA[iterate_source_paths.src_paths_iterator_pos].source_path, 'destination_path': constants.compute_output_directory + source_path_stat_result.details.name, 'DATA_TYPE': transfer_settings.DATA[iterate_source_paths.src_paths_iterator_pos].DATA_TYPE, 'recursive': transfer_settings.DATA[iterate_source_paths.src_paths_iterator_pos].recursive}]", |
59 | | - "src_paths_iterator_pos.=": "iterate_source_paths.src_paths_iterator_pos + 1" |
| 58 | + "src_paths.=": "iterate_transfer_data.src_paths + [constants.compute_output_directory + transfer_data_stat_result.details.name]", |
| 59 | + "transfer_from_src_data.=": "iterate_transfer_data.transfer_from_src_data + [{'source_path': transfer_settings.DATA[iterate_transfer_data.transfer_data_iterator_pos].source_path, 'destination_path': constants.compute_output_directory + transfer_data_stat_result.details.name, 'DATA_TYPE': transfer_settings.DATA[iterate_transfer_data.transfer_data_iterator_pos].DATA_TYPE, 'recursive': transfer_settings.DATA[iterate_transfer_data.transfer_data_iterator_pos].recursive}]", |
| 60 | + "transfer_data_iterator_pos.=": "iterate_transfer_data.transfer_data_iterator_pos + 1" |
60 | 61 | }, |
61 | | - "ResultPath": "$.iterate_source_paths", |
62 | | - "Next": "IterateSourcePathsConditional" |
| 62 | + "ResultPath": "$.iterate_transfer_data", |
| 63 | + "Next": "IterateTransferDataConditional" |
63 | 64 | }, |
64 | 65 | "MakeComputeWorkingDir": { |
65 | 66 | "Type": "Action", |
66 | 67 | "ActionUrl": "https://transfer.actions.globus.org/mkdir", |
67 | 68 | "Parameters": { |
68 | | - "endpoint_id.$": "$.transfer_settings.destination_endpoint", |
| 69 | + "endpoint_id.$": "$.constants.gcs_endpoint_id", |
69 | 70 | "path.$": "$.constants.compute_output_directory" |
70 | 71 | }, |
71 | 72 | "ResultPath": "$.mkdir_result", |
|
76 | 77 | "ActionUrl": "https://transfer.actions.globus.org/transfer", |
77 | 78 | "Parameters": { |
78 | 79 | "source_endpoint.$": "$.transfer_settings.source_endpoint", |
79 | | - "destination_endpoint.$": "$.transfer_settings.destination_endpoint", |
80 | | - "DATA.$": "$.iterate_source_paths.transfer_from_src_data" |
| 80 | + "destination_endpoint.$": "$.constants.gcs_endpoint_id", |
| 81 | + "DATA.$": "$.iterate_transfer_data.transfer_from_src_data" |
81 | 82 | }, |
82 | 83 | "ResultPath": "$.transfer_from_src_result", |
83 | 84 | "Next": "RunComputeFunction" |
|
92 | 93 | "function_id.$": "$.constants.compute_function_id", |
93 | 94 | "args": [], |
94 | 95 | "kwargs": { |
95 | | - "src_paths.$": "$.iterate_source_paths.src_paths", |
| 96 | + "src_paths.$": "$.iterate_transfer_data.src_paths", |
96 | 97 | "dest_path.$": "$.constants.compute_output_directory", |
97 | 98 | "gcs_base_path.$": "$.constants.gcs_base_path" |
98 | 99 | } |
99 | 100 | } |
100 | 101 | ] |
101 | 102 | }, |
102 | 103 | "ResultPath": "$.compute_result", |
| 104 | + "Next": "GetDestinationPath" |
| 105 | + }, |
| 106 | + "GetDestinationPath": { |
| 107 | + "Type": "ExpressionEval", |
| 108 | + "Parameters": { |
| 109 | + "path.=": "getattr('destination_path', '/~/' + pathsplit(compute_result.details.result[0])[1])" |
| 110 | + }, |
| 111 | + "ResultPath": "$.destination", |
103 | 112 | "Next": "TransferFromComputeEndpoint" |
104 | 113 | }, |
105 | 114 | "TransferFromComputeEndpoint": { |
106 | 115 | "Type": "Action", |
107 | 116 | "ActionUrl": "https://transfer.actions.globus.org/transfer", |
108 | 117 | "Parameters": { |
109 | | - "source_endpoint.$": "$.transfer_settings.destination_endpoint", |
110 | | - "destination_endpoint.$": "$.destination.id", |
| 118 | + "source_endpoint.$": "$.constants.gcs_endpoint_id", |
| 119 | + "destination_endpoint.$": "$.transfer_settings.destination_endpoint", |
111 | 120 | "DATA": [ |
112 | 121 | { |
113 | 122 | "source_path.=": "compute_result.details.result[0]", |
|
122 | 131 | "Type": "Action", |
123 | 132 | "ActionUrl": "https://transfer.actions.globus.org/delete", |
124 | 133 | "Parameters": { |
125 | | - "endpoint.$": "$.transfer_settings.destination_endpoint", |
| 134 | + "endpoint.$": "$.constants.gcs_endpoint_id", |
126 | 135 | "recursive": true, |
127 | 136 | "DATA": [ |
128 | 137 | { |
|
0 commit comments