+ SNAPSHOT_SPEC_FILE=/var/workdir/release/efa81480-7f08-44d4-ba4d-bbdd25cf4c7d/snapshot_spec.json + '[' '!' -f /var/workdir/release/efa81480-7f08-44d4-ba4d-bbdd25cf4c7d/snapshot_spec.json ']' + DATA_FILE=/var/workdir/release/efa81480-7f08-44d4-ba4d-bbdd25cf4c7d/data.json + '[' '!' -f /var/workdir/release/efa81480-7f08-44d4-ba4d-bbdd25cf4c7d/data.json ']' ++ jq '.components | map(select(.repositories | map(select((has("tags")|not) or (.tags | IN([])))) | length > 0)) | length' /var/workdir/release/efa81480-7f08-44d4-ba4d-bbdd25cf4c7d/snapshot_spec.json + '[' 0 -ne 0 ']' + RESULTS_FILE=/var/workdir/release/efa81480-7f08-44d4-ba4d-bbdd25cf4c7d/results/push-snapshot-results.json ++ mktemp + RESULTS_JSON_FILE=/tmp/tmp.BoMd1NoGjr + echo '{"images":[]}' + RUNNING_JOBS='\j' + CONCURRENT_LIMIT=20 + REQUEST_COUNT=0 + SUCCESS=true ++ mktemp -d + TMP_RESULTS_DIR=/tmp/tmp.g1Z3NOTn8i ++ jq -r '.mapping.defaults.pushSourceContainer | if . == null then true else . end' /var/workdir/release/efa81480-7f08-44d4-ba4d-bbdd25cf4c7d/data.json + defaultPushSourceContainer=false + COPY_BUNDLE_MIGRATIONS=false ++ jq -r .application /var/workdir/release/efa81480-7f08-44d4-ba4d-bbdd25cf4c7d/snapshot_spec.json + application=tsf-app-wifh ++ jq '.components | length' /var/workdir/release/efa81480-7f08-44d4-ba4d-bbdd25cf4c7d/snapshot_spec.json + NUM_COMPONENTS=1 Beginning "managed-s5xwl-push-snapshot" for "tsf-app-wifh" + printf 'Beginning "%s" for "%s"\n\n' managed-s5xwl-push-snapshot tsf-app-wifh + (( i = 0 )) + (( i < NUM_COMPONENTS )) ++ jq -c --argjson i 0 '.components[$i]' /var/workdir/release/efa81480-7f08-44d4-ba4d-bbdd25cf4c7d/snapshot_spec.json + component='{"containerImage":"quay.io/rhtap_qe/default-tenant/tsf-comp-jtrs@sha256:aa4484405aaddf80437d2e85a7b363945b6a119efe34b325ff64ee4a9b55eadd","name":"tsf-comp-jtrs","source":{"git":{"revision":"9e1f0cc8162b66ae24a46928e1cea518b200e6e7","url":"https://github.com/rhads-tsf-qe/testrepo"}},"version":"","repository":"quay.io/rhtap_qe/default-tenant-managed/tsf-comp-jtrs","metadata":{"env_variables":["PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin","container=oci"],"labels":[{"name":"architecture","value":"x86_64"},{"name":"build-date","value":"2026-03-26T23:49:21Z"},{"name":"com.redhat.component","value":"ubi8-container"},{"name":"com.redhat.license_terms","value":"https://www.redhat.com/en/about/red-hat-end-user-license-agreements#UBI"},{"name":"cpe","value":"cpe:/a:redhat:enterprise_linux:8::appstream"},{"name":"description","value":"The Universal Base Image is designed and engineered to be the base layer for all of your containerized applications, middleware and utilities. This base image is freely redistributable, but Red Hat only supports Red Hat technologies through subscriptions for Red Hat products. This image is maintained by Red Hat and updated regularly."},{"name":"distribution-scope","value":"public"},{"name":"io.buildah.version","value":"1.42.2"},{"name":"io.k8s.description","value":"The Universal Base Image is designed and engineered to be the base layer for all of your containerized applications, middleware and utilities. This base image is freely redistributable, but Red Hat only supports Red Hat technologies through subscriptions for Red Hat products. This image is maintained by Red Hat and updated regularly."},{"name":"io.k8s.display-name","value":"Red Hat Universal Base Image 8"},{"name":"io.openshift.expose-services","value":""},{"name":"io.openshift.tags","value":"base rhel8"},{"name":"maintainer","value":"Red Hat, Inc."},{"name":"name","value":"ubi8/ubi"},{"name":"org.opencontainers.image.created","value":"2026-03-26T23:49:21Z"},{"name":"org.opencontainers.image.revision","value":"9e1f0cc8162b66ae24a46928e1cea518b200e6e7"},{"name":"org.opencontainers.image.source","value":"https://github.com/rhads-tsf-qe/testrepo"},{"name":"release","value":"1774368078"},{"name":"summary","value":"Provides the latest release of Red Hat Universal Base Image 8."},{"name":"url","value":"https://catalog.redhat.com/en/search?searchType=containers"},{"name":"vcs-ref","value":"9e1f0cc8162b66ae24a46928e1cea518b200e6e7"},{"name":"vcs-type","value":"git"},{"name":"vendor","value":"Red Hat, Inc."},{"name":"version","value":"8.10"}],"media_type":"application/vnd.docker.container.image.v1+json"},"tags":["latest","9e1f0cc8162b66ae24a46928e1cea518b200e6e7"],"repositories":[{"url":"quay.io/rhtap_qe/default-tenant-managed/tsf-comp-jtrs","tags":["latest","9e1f0cc8162b66ae24a46928e1cea518b200e6e7"]}]}' ++ jq -r .containerImage + containerImage=quay.io/rhtap_qe/default-tenant/tsf-comp-jtrs@sha256:aa4484405aaddf80437d2e85a7b363945b6a119efe34b325ff64ee4a9b55eadd ++ echo quay.io/rhtap_qe/default-tenant/tsf-comp-jtrs@sha256:aa4484405aaddf80437d2e85a7b363945b6a119efe34b325ff64ee4a9b55eadd ++ cut -d / -f 1 + registry=quay.io + source_repo=quay.io/rhtap_qe/default-tenant/tsf-comp-jtrs ++ mktemp + SOURCE_AUTH_FILE=/tmp/tmp.5N4L4hDHML + select-oci-auth quay.io/rhtap_qe/default-tenant/tsf-comp-jtrs@sha256:aa4484405aaddf80437d2e85a7b363945b6a119efe34b325ff64ee4a9b55eadd + jq -c '.auths."quay.io/rhtap_qe/default-tenant/tsf-comp-jtrs" = .auths."quay.io" | del(.auths."quay.io")' Token not found for quay.io/rhtap_qe/default-tenant/tsf-comp-jtrs@sha256:aa4484405aaddf80437d2e85a7b363945b6a119efe34b325ff64ee4a9b55eadd ++ get-image-architectures quay.io/rhtap_qe/default-tenant/tsf-comp-jtrs@sha256:aa4484405aaddf80437d2e85a7b363945b6a119efe34b325ff64ee4a9b55eadd + arch_json='{"platform":{"architecture":"amd64","os":"linux"},"digest":"sha256:aa4484405aaddf80437d2e85a7b363945b6a119efe34b325ff64ee4a9b55eadd","multiarch":false}' ++ jq -s 'map(.platform.architecture)' + arches='[ "amd64" ]' ++ jq -s 'map(.platform.os)' + oses='[ "linux" ]' ++ jq -r '.[0]' + os=linux ++ jq -r '.[0]' + arch=amd64 ++ jq -r .name + name=tsf-comp-jtrs ++ skopeo inspect --retry-times 3 --raw docker://quay.io/rhtap_qe/default-tenant/tsf-comp-jtrs@sha256:aa4484405aaddf80437d2e85a7b363945b6a119efe34b325ff64ee4a9b55eadd ++ jq -r .mediaType + media_type=application/vnd.docker.distribution.manifest.v2+json + oras_args=() + platform= + [[ application/vnd.docker.distribution.manifest.v2+json == \a\p\p\l\i\c\a\t\i\o\n\/\v\n\d\.\d\o\c\k\e\r\.\d\i\s\t\r\i\b\u\t\i\o\n\.\m\a\n\i\f\e\s\t\.\l\i\s\t\.\v\2\+\j\s\o\n ]] + [[ application/vnd.docker.distribution.manifest.v2+json == \a\p\p\l\i\c\a\t\i\o\n\/\v\n\d\.\o\c\i\.\i\m\a\g\e\.\i\n\d\e\x\.\v\1\+\j\s\o\n ]] ++ oras resolve --registry-config /tmp/tmp.5N4L4hDHML quay.io/rhtap_qe/default-tenant/tsf-comp-jtrs@sha256:aa4484405aaddf80437d2e85a7b363945b6a119efe34b325ff64ee4a9b55eadd + origin_digest=sha256:aa4484405aaddf80437d2e85a7b363945b6a119efe34b325ff64ee4a9b55eadd + jq --arg i 0 --argjson arches '[ "amd64" ]' --argjson oses '[ "linux" ]' --arg name tsf-comp-jtrs --arg sha sha256:aa4484405aaddf80437d2e85a7b363945b6a119efe34b325ff64ee4a9b55eadd '.images[$i|tonumber] += {"arches": $arches, "oses": $oses, "name": $name, "shasum": $sha, "urls": []}' /tmp/tmp.BoMd1NoGjr + mv /tmp/tmp.BoMd1NoGjr.tmp /tmp/tmp.BoMd1NoGjr ++ jq -r .pushSourceContainer + pushSourceContainer=null ++ jq 'has("pushSourceContainer")' + hasPushSourceContainer=false + [[ null == \t\r\u\e ]] + [[ false == \f\a\l\s\e ]] + [[ false == \t\r\u\e ]] + migration_digest= + migration_tag= + [[ false == \t\r\u\e ]] ++ jq -c '.repositories | length' + NUM_REPOS=1 + (( j = 0 )) + (( j < NUM_REPOS )) ++ jq -c --argjson j 0 '.repositories[$j]' + repository='{"url":"quay.io/rhtap_qe/default-tenant-managed/tsf-comp-jtrs","tags":["latest","9e1f0cc8162b66ae24a46928e1cea518b200e6e7"]}' ++ jq .tags + imageTags='[ "latest", "9e1f0cc8162b66ae24a46928e1cea518b200e6e7" ]' ++ jq -r .url + repository_url=quay.io/rhtap_qe/default-tenant-managed/tsf-comp-jtrs + '[' -n '' ']' ++ jq -r '.[]' + for tag in $(jq -r '.[]' <<< "$imageTags") + wait_for_slot + (( 0 >= 20 )) + (( ++REQUEST_COUNT )) + echo 'Request Count: 1' Request Count: 1 + '[' -n '' ']' + for tag in $(jq -r '.[]' <<< "$imageTags") + wait_for_slot + (( 1 >= 20 )) + push_image sha256:aa4484405aaddf80437d2e85a7b363945b6a119efe34b325ff64ee4a9b55eadd tsf-comp-jtrs quay.io/rhtap_qe/default-tenant/tsf-comp-jtrs@sha256:aa4484405aaddf80437d2e85a7b363945b6a119efe34b325ff64ee4a9b55eadd quay.io/rhtap_qe/default-tenant-managed/tsf-comp-jtrs latest '' + (( ++REQUEST_COUNT )) + echo 'Request Count: 2' Request Count: 2 + '[' -n '' ']' + [[ false == \t\r\u\e ]] + (( j++ )) + (( j < NUM_REPOS )) + (( i++ )) + (( i < NUM_COMPONENTS )) Waiting for all jobs to complete.... + echo 'Waiting for all jobs to complete....' + push_image sha256:aa4484405aaddf80437d2e85a7b363945b6a119efe34b325ff64ee4a9b55eadd tsf-comp-jtrs quay.io/rhtap_qe/default-tenant/tsf-comp-jtrs@sha256:aa4484405aaddf80437d2e85a7b363945b6a119efe34b325ff64ee4a9b55eadd quay.io/rhtap_qe/default-tenant-managed/tsf-comp-jtrs 9e1f0cc8162b66ae24a46928e1cea518b200e6e7 '' + (( 2 > 0 )) + wait -n + (( 1 > 0 )) + wait -n + (( 0 > 0 )) + echo 'Printing outputs for each push image' Printing outputs for each push image + for file in "$TMP_RESULTS_DIR"/*.out ++ basename /tmp/tmp.g1Z3NOTn8i/tsf-comp-jtrs-9e1f0cc8162b66ae24a46928e1cea518b200e6e7.out .out === tsf-comp-jtrs-9e1f0cc8162b66ae24a46928e1cea518b200e6e7 === + echo '=== tsf-comp-jtrs-9e1f0cc8162b66ae24a46928e1cea518b200e6e7 ===' + cat /tmp/tmp.g1Z3NOTn8i/tsf-comp-jtrs-9e1f0cc8162b66ae24a46928e1cea518b200e6e7.out ++ mktemp + DEST_AUTH_FILE=/tmp/tmp.rj4faTPZYB ++ echo quay.io/rhtap_qe/default-tenant-managed/tsf-comp-jtrs ++ cut -d / -f 1 + registry=quay.io + '[' quay.io = docker.io ']' + select-oci-auth quay.io/rhtap_qe/default-tenant-managed/tsf-comp-jtrs + jq -c '.auths."quay.io/rhtap_qe/default-tenant-managed/tsf-comp-jtrs" = .auths."quay.io" | del(.auths."quay.io")' Using token for quay.io/rhtap_qe/default-tenant-managed/tsf-comp-jtrs + oras_args=() + '[' -n '' ']' ++ oras resolve --registry-config /tmp/tmp.rj4faTPZYB quay.io/rhtap_qe/default-tenant-managed/tsf-comp-jtrs:9e1f0cc8162b66ae24a46928e1cea518b200e6e7 Error response from registry: failed to resolve digest: quay.io/rhtap_qe/default-tenant-managed/tsf-comp-jtrs:9e1f0cc8162b66ae24a46928e1cea518b200e6e7: not found ++ true + destination_digest= + [[ '' != \s\h\a\2\5\6\:\a\a\4\4\8\4\4\0\5\a\a\d\d\f\8\0\4\3\7\d\2\e\8\5\a\7\b\3\6\3\9\4\5\b\6\a\1\1\9\e\f\e\3\4\b\3\2\5\f\f\6\4\e\e\4\a\9\b\5\5\e\a\d\d ]] + printf '* Pushing component: %s to %s:%s\n' tsf-comp-jtrs quay.io/rhtap_qe/default-tenant-managed/tsf-comp-jtrs 9e1f0cc8162b66ae24a46928e1cea518b200e6e7 * Pushing component: tsf-comp-jtrs to quay.io/rhtap_qe/default-tenant-managed/tsf-comp-jtrs:9e1f0cc8162b66ae24a46928e1cea518b200e6e7 ++ mktemp -d + DOCKER_CONFIG=/tmp/tmp.kOZmoW9Vr7 + export DOCKER_CONFIG + jq -s 'reduce .[] as $item ({}; . * $item)' /tmp/tmp.5N4L4hDHML /tmp/tmp.rj4faTPZYB + [[ false == \t\r\u\e ]] + attempt=0 + '[' 0 -gt 3 ']' + [[ false == \t\r\u\e ]] + cosign copy -f quay.io/rhtap_qe/default-tenant/tsf-comp-jtrs@sha256:aa4484405aaddf80437d2e85a7b363945b6a119efe34b325ff64ee4a9b55eadd quay.io/rhtap_qe/default-tenant-managed/tsf-comp-jtrs:9e1f0cc8162b66ae24a46928e1cea518b200e6e7 Copying quay.io/rhtap_qe/default-tenant/tsf-comp-jtrs:sha256-aa4484405aaddf80437d2e85a7b363945b6a119efe34b325ff64ee4a9b55eadd.sig to quay.io/rhtap_qe/default-tenant-managed/tsf-comp-jtrs:sha256-aa4484405aaddf80437d2e85a7b363945b6a119efe34b325ff64ee4a9b55eadd.sig... Copying quay.io/rhtap_qe/default-tenant/tsf-comp-jtrs@sha256:aa4484405aaddf80437d2e85a7b363945b6a119efe34b325ff64ee4a9b55eadd to quay.io/rhtap_qe/default-tenant-managed/tsf-comp-jtrs:sha256-aa4484405aaddf80437d2e85a7b363945b6a119efe34b325ff64ee4a9b55eadd... Copying quay.io/rhtap_qe/default-tenant/tsf-comp-jtrs:sha256-aa4484405aaddf80437d2e85a7b363945b6a119efe34b325ff64ee4a9b55eadd.att to quay.io/rhtap_qe/default-tenant-managed/tsf-comp-jtrs:sha256-aa4484405aaddf80437d2e85a7b363945b6a119efe34b325ff64ee4a9b55eadd.att... Copying quay.io/rhtap_qe/default-tenant/tsf-comp-jtrs:sha256-aa4484405aaddf80437d2e85a7b363945b6a119efe34b325ff64ee4a9b55eadd.sbom to quay.io/rhtap_qe/default-tenant-managed/tsf-comp-jtrs:sha256-aa4484405aaddf80437d2e85a7b363945b6a119efe34b325ff64ee4a9b55eadd.sbom... Copying quay.io/rhtap_qe/default-tenant/tsf-comp-jtrs@sha256:aa4484405aaddf80437d2e85a7b363945b6a119efe34b325ff64ee4a9b55eadd to quay.io/rhtap_qe/default-tenant-managed/tsf-comp-jtrs:9e1f0cc8162b66ae24a46928e1cea518b200e6e7... + break + '[' 0 -gt 3 ']' + unset DOCKER_CONFIG + jq -n --arg name tsf-comp-jtrs --arg url quay.io/rhtap_qe/default-tenant-managed/tsf-comp-jtrs:9e1f0cc8162b66ae24a46928e1cea518b200e6e7 '{name: $name, url: $url}' + echo + for file in "$TMP_RESULTS_DIR"/*.out ++ basename /tmp/tmp.g1Z3NOTn8i/tsf-comp-jtrs-latest.out .out === tsf-comp-jtrs-latest === + echo '=== tsf-comp-jtrs-latest ===' + cat /tmp/tmp.g1Z3NOTn8i/tsf-comp-jtrs-latest.out ++ mktemp + DEST_AUTH_FILE=/tmp/tmp.zgPcjegDjE ++ echo quay.io/rhtap_qe/default-tenant-managed/tsf-comp-jtrs ++ cut -d / -f 1 + registry=quay.io + '[' quay.io = docker.io ']' + select-oci-auth quay.io/rhtap_qe/default-tenant-managed/tsf-comp-jtrs + jq -c '.auths."quay.io/rhtap_qe/default-tenant-managed/tsf-comp-jtrs" = .auths."quay.io" | del(.auths."quay.io")' Using token for quay.io/rhtap_qe/default-tenant-managed/tsf-comp-jtrs + oras_args=() + '[' -n '' ']' ++ oras resolve --registry-config /tmp/tmp.zgPcjegDjE quay.io/rhtap_qe/default-tenant-managed/tsf-comp-jtrs:latest Error response from registry: failed to resolve digest: quay.io/rhtap_qe/default-tenant-managed/tsf-comp-jtrs:latest: not found ++ true + destination_digest= + [[ '' != \s\h\a\2\5\6\:\a\a\4\4\8\4\4\0\5\a\a\d\d\f\8\0\4\3\7\d\2\e\8\5\a\7\b\3\6\3\9\4\5\b\6\a\1\1\9\e\f\e\3\4\b\3\2\5\f\f\6\4\e\e\4\a\9\b\5\5\e\a\d\d ]] + printf '* Pushing component: %s to %s:%s\n' tsf-comp-jtrs quay.io/rhtap_qe/default-tenant-managed/tsf-comp-jtrs latest * Pushing component: tsf-comp-jtrs to quay.io/rhtap_qe/default-tenant-managed/tsf-comp-jtrs:latest ++ mktemp -d + DOCKER_CONFIG=/tmp/tmp.GHIdo412b7 + export DOCKER_CONFIG + jq -s 'reduce .[] as $item ({}; . * $item)' /tmp/tmp.5N4L4hDHML /tmp/tmp.zgPcjegDjE + [[ false == \t\r\u\e ]] + attempt=0 + '[' 0 -gt 3 ']' + [[ false == \t\r\u\e ]] + cosign copy -f quay.io/rhtap_qe/default-tenant/tsf-comp-jtrs@sha256:aa4484405aaddf80437d2e85a7b363945b6a119efe34b325ff64ee4a9b55eadd quay.io/rhtap_qe/default-tenant-managed/tsf-comp-jtrs:latest Copying quay.io/rhtap_qe/default-tenant/tsf-comp-jtrs@sha256:aa4484405aaddf80437d2e85a7b363945b6a119efe34b325ff64ee4a9b55eadd to quay.io/rhtap_qe/default-tenant-managed/tsf-comp-jtrs:sha256-aa4484405aaddf80437d2e85a7b363945b6a119efe34b325ff64ee4a9b55eadd... Copying quay.io/rhtap_qe/default-tenant/tsf-comp-jtrs:sha256-aa4484405aaddf80437d2e85a7b363945b6a119efe34b325ff64ee4a9b55eadd.sig to quay.io/rhtap_qe/default-tenant-managed/tsf-comp-jtrs:sha256-aa4484405aaddf80437d2e85a7b363945b6a119efe34b325ff64ee4a9b55eadd.sig... Copying quay.io/rhtap_qe/default-tenant/tsf-comp-jtrs:sha256-aa4484405aaddf80437d2e85a7b363945b6a119efe34b325ff64ee4a9b55eadd.att to quay.io/rhtap_qe/default-tenant-managed/tsf-comp-jtrs:sha256-aa4484405aaddf80437d2e85a7b363945b6a119efe34b325ff64ee4a9b55eadd.att... Copying quay.io/rhtap_qe/default-tenant/tsf-comp-jtrs:sha256-aa4484405aaddf80437d2e85a7b363945b6a119efe34b325ff64ee4a9b55eadd.sbom to quay.io/rhtap_qe/default-tenant-managed/tsf-comp-jtrs:sha256-aa4484405aaddf80437d2e85a7b363945b6a119efe34b325ff64ee4a9b55eadd.sbom... Copying quay.io/rhtap_qe/default-tenant/tsf-comp-jtrs@sha256:aa4484405aaddf80437d2e85a7b363945b6a119efe34b325ff64ee4a9b55eadd to quay.io/rhtap_qe/default-tenant-managed/tsf-comp-jtrs:latest... + break + '[' 0 -gt 3 ']' + unset DOCKER_CONFIG + jq -n --arg name tsf-comp-jtrs --arg url quay.io/rhtap_qe/default-tenant-managed/tsf-comp-jtrs:latest '{name: $name, url: $url}' + echo + '[' true '!=' true ']' ++ mktemp + PUSHES_FILE=/tmp/tmp.WgvNPsRzE6 + jq -s . /tmp/tmp.g1Z3NOTn8i/tsf-comp-jtrs-9e1f0cc8162b66ae24a46928e1cea518b200e6e7.json /tmp/tmp.g1Z3NOTn8i/tsf-comp-jtrs-latest.json + jq --slurpfile PUSHES /tmp/tmp.WgvNPsRzE6 ' reduce $PUSHES[0][] as $p (.; (.images[] | select(.name == $p.name).urls) += [$p.url]) ' /tmp/tmp.BoMd1NoGjr + tee /var/workdir/release/efa81480-7f08-44d4-ba4d-bbdd25cf4c7d/results/push-snapshot-results.json { "images": [ { "arches": [ "amd64" ], "oses": [ "linux" ], "name": "tsf-comp-jtrs", "shasum": "sha256:aa4484405aaddf80437d2e85a7b363945b6a119efe34b325ff64ee4a9b55eadd", "urls": [ "quay.io/rhtap_qe/default-tenant-managed/tsf-comp-jtrs:9e1f0cc8162b66ae24a46928e1cea518b200e6e7", "quay.io/rhtap_qe/default-tenant-managed/tsf-comp-jtrs:latest" ] } ] } + rm -f /tmp/tmp.BoMd1NoGjr /tmp/tmp.BoMd1NoGjr.tmp /tmp/tmp.WgvNPsRzE6 + printf 'Completed "%s" for "%s"\n\n' managed-s5xwl-push-snapshot tsf-app-wifh Completed "managed-s5xwl-push-snapshot" for "tsf-app-wifh"