CWL CommandLineTool for stage-out
The CWL tool invokes the installed stage-out <catalog-directory> <bucket>
<prefix> command in localhost/stage-out:latest. Existing job inputs and
credential environment variable names are preserved.
The package copies the catalog into a unique temporary directory, uploads its assets, rewrites their links to S3, and publishes the catalog and item documents. It traverses nested catalogs recursively and leaves the input directory intact. Upload failures propagate; the command prints the resulting catalog URI to stdout.
Set aws_access_key_id, aws_secret_access_key, aws_region_name, and
aws_endpoint_url through the CWL job inputs. The tool passes them as environment
variables to boto3.
| stage_out_impl.py | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 | |
Build the staging images:
export WORKSPACE=/workspace/mastering-app-package
podman \
build \
--format docker \
-t localhost/stage:latest \
${WORKSPACE}/water-bodies/command-line-tools/stage
# Current checkout uses separate installed staging commands.
podman build --format docker -t localhost/stage-in:latest ${WORKSPACE}/water-bodies/command-line-tools/stage-in
podman build --format docker -t localhost/stage-out:latest ${WORKSPACE}/water-bodies/command-line-tools/stage-out
Run stage-out:
cwltool \
--podman \
${WORKSPACE}/cwl-cli/stage-out.cwl \
--aws_access_key_id $( cat ~/.aws/credentials | grep aws_access_key_id | cut -d "=" -f 2 ) \
--aws_secret_access_key $( cat ~/.aws/credentials | grep aws_secret_access_key | cut -d "=" -f 2 ) \
--endpoint_url $( cat ~/.aws/config | grep endpoint_url | head -n 1 | cut -d "=" -f 2 ) \
--region_name $( cat ~/.aws/config | grep region | cut -d "=" -f 2 ) \
--s3_bucket processing-results \
--sub_path processing-results/$( cat /proc/sys/kernel/random/uuid ) \
--stac_catalog ${WORKSPACE}/runs