+ SNAPSHOT_SPEC_FILE=/var/workdir/release/87cb583c-fc24-46e9-a748-0d62ebcd85e2/snapshot_spec.json + '[' '!' -f /var/workdir/release/87cb583c-fc24-46e9-a748-0d62ebcd85e2/snapshot_spec.json ']' + DATA_FILE=/var/workdir/release/87cb583c-fc24-46e9-a748-0d62ebcd85e2/data.json + '[' '!' -f /var/workdir/release/87cb583c-fc24-46e9-a748-0d62ebcd85e2/data.json ']' ++ jq '.components | map(select(.repositories | map(select((has("tags")|not) or (.tags | IN([])))) | length > 0)) | length' /var/workdir/release/87cb583c-fc24-46e9-a748-0d62ebcd85e2/snapshot_spec.json + '[' 0 -ne 0 ']' + RESULTS_FILE=/var/workdir/release/87cb583c-fc24-46e9-a748-0d62ebcd85e2/results/push-snapshot-results.json ++ mktemp + RESULTS_JSON_FILE=/tmp/tmp.Q4HEHZiVAU + echo '{"images":[]}' + RUNNING_JOBS='\j' + CONCURRENT_LIMIT=20 + REQUEST_COUNT=0 + SUCCESS=true ++ mktemp -d + TMP_RESULTS_DIR=/tmp/tmp.UNhttRQFeo ++ jq -r '.mapping.defaults.pushSourceContainer | if . == null then true else . end' /var/workdir/release/87cb583c-fc24-46e9-a748-0d62ebcd85e2/data.json + defaultPushSourceContainer=false + COPY_BUNDLE_MIGRATIONS=false ++ jq -r .application /var/workdir/release/87cb583c-fc24-46e9-a748-0d62ebcd85e2/snapshot_spec.json + application=tsf-app-qumn ++ jq '.components | length' /var/workdir/release/87cb583c-fc24-46e9-a748-0d62ebcd85e2/snapshot_spec.json + NUM_COMPONENTS=1 + printf 'Beginning "%s" for "%s"\n\n' managed-f7ftt-push-snapshot tsf-app-qumn Beginning "managed-f7ftt-push-snapshot" for "tsf-app-qumn" + (( i = 0 )) + (( i < NUM_COMPONENTS )) ++ jq -c --argjson i 0 '.components[$i]' /var/workdir/release/87cb583c-fc24-46e9-a748-0d62ebcd85e2/snapshot_spec.json + component='{"containerImage":"quay.io/rhtap_qe/default-tenant/tsf-comp-hwcq@sha256:f1bf6fd8790f5f3091459b3a49d0adebb0746435863fc5527da668fd3cca702f","name":"tsf-comp-hwcq","source":{"git":{"revision":"6c85dc4911f883442cb3df0c56ebe9c7c9c1f8a3","url":"https://github.com/rhads-tsf-qe/testrepo"}},"version":"","repository":"quay.io/rhtap_qe/default-tenant-managed/tsf-comp-hwcq","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-31T04:29:24Z"},{"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-31T04:29:24Z"},{"name":"org.opencontainers.image.revision","value":"6c85dc4911f883442cb3df0c56ebe9c7c9c1f8a3"},{"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":"6c85dc4911f883442cb3df0c56ebe9c7c9c1f8a3"},{"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","6c85dc4911f883442cb3df0c56ebe9c7c9c1f8a3"],"repositories":[{"url":"quay.io/rhtap_qe/default-tenant-managed/tsf-comp-hwcq","tags":["latest","6c85dc4911f883442cb3df0c56ebe9c7c9c1f8a3"]}]}' ++ jq -r .containerImage + containerImage=quay.io/rhtap_qe/default-tenant/tsf-comp-hwcq@sha256:f1bf6fd8790f5f3091459b3a49d0adebb0746435863fc5527da668fd3cca702f ++ echo quay.io/rhtap_qe/default-tenant/tsf-comp-hwcq@sha256:f1bf6fd8790f5f3091459b3a49d0adebb0746435863fc5527da668fd3cca702f ++ cut -d / -f 1 + registry=quay.io + source_repo=quay.io/rhtap_qe/default-tenant/tsf-comp-hwcq ++ mktemp + SOURCE_AUTH_FILE=/tmp/tmp.DezVCk7Okc + select-oci-auth quay.io/rhtap_qe/default-tenant/tsf-comp-hwcq@sha256:f1bf6fd8790f5f3091459b3a49d0adebb0746435863fc5527da668fd3cca702f + jq -c '.auths."quay.io/rhtap_qe/default-tenant/tsf-comp-hwcq" = .auths."quay.io" | del(.auths."quay.io")' Token not found for quay.io/rhtap_qe/default-tenant/tsf-comp-hwcq@sha256:f1bf6fd8790f5f3091459b3a49d0adebb0746435863fc5527da668fd3cca702f ++ get-image-architectures quay.io/rhtap_qe/default-tenant/tsf-comp-hwcq@sha256:f1bf6fd8790f5f3091459b3a49d0adebb0746435863fc5527da668fd3cca702f + arch_json='{"platform":{"architecture":"amd64","os":"linux"},"digest":"sha256:f1bf6fd8790f5f3091459b3a49d0adebb0746435863fc5527da668fd3cca702f","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-hwcq ++ skopeo inspect --retry-times 3 --raw docker://quay.io/rhtap_qe/default-tenant/tsf-comp-hwcq@sha256:f1bf6fd8790f5f3091459b3a49d0adebb0746435863fc5527da668fd3cca702f ++ 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.DezVCk7Okc quay.io/rhtap_qe/default-tenant/tsf-comp-hwcq@sha256:f1bf6fd8790f5f3091459b3a49d0adebb0746435863fc5527da668fd3cca702f + origin_digest=sha256:f1bf6fd8790f5f3091459b3a49d0adebb0746435863fc5527da668fd3cca702f + jq --arg i 0 --argjson arches '[ "amd64" ]' --argjson oses '[ "linux" ]' --arg name tsf-comp-hwcq --arg sha sha256:f1bf6fd8790f5f3091459b3a49d0adebb0746435863fc5527da668fd3cca702f '.images[$i|tonumber] += {"arches": $arches, "oses": $oses, "name": $name, "shasum": $sha, "urls": []}' /tmp/tmp.Q4HEHZiVAU + mv /tmp/tmp.Q4HEHZiVAU.tmp /tmp/tmp.Q4HEHZiVAU ++ 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-hwcq","tags":["latest","6c85dc4911f883442cb3df0c56ebe9c7c9c1f8a3"]}' ++ jq .tags + imageTags='[ "latest", "6c85dc4911f883442cb3df0c56ebe9c7c9c1f8a3" ]' ++ jq -r .url + repository_url=quay.io/rhtap_qe/default-tenant-managed/tsf-comp-hwcq + '[' -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:f1bf6fd8790f5f3091459b3a49d0adebb0746435863fc5527da668fd3cca702f tsf-comp-hwcq quay.io/rhtap_qe/default-tenant/tsf-comp-hwcq@sha256:f1bf6fd8790f5f3091459b3a49d0adebb0746435863fc5527da668fd3cca702f quay.io/rhtap_qe/default-tenant-managed/tsf-comp-hwcq latest '' + (( ++REQUEST_COUNT )) + echo 'Request Count: 2' Request Count: 2 + '[' -n '' ']' + [[ false == \t\r\u\e ]] + (( j++ )) + (( j < NUM_REPOS )) + (( i++ )) + (( i < NUM_COMPONENTS )) + push_image sha256:f1bf6fd8790f5f3091459b3a49d0adebb0746435863fc5527da668fd3cca702f tsf-comp-hwcq quay.io/rhtap_qe/default-tenant/tsf-comp-hwcq@sha256:f1bf6fd8790f5f3091459b3a49d0adebb0746435863fc5527da668fd3cca702f quay.io/rhtap_qe/default-tenant-managed/tsf-comp-hwcq 6c85dc4911f883442cb3df0c56ebe9c7c9c1f8a3 '' + echo 'Waiting for all jobs to complete....' Waiting for all jobs to complete.... + (( 2 > 0 )) + wait -n + (( 1 > 0 )) + wait -n + (( 0 > 0 )) Printing outputs for each push image + echo 'Printing outputs for each push image' + for file in "$TMP_RESULTS_DIR"/*.out ++ basename /tmp/tmp.UNhttRQFeo/tsf-comp-hwcq-6c85dc4911f883442cb3df0c56ebe9c7c9c1f8a3.out .out === tsf-comp-hwcq-6c85dc4911f883442cb3df0c56ebe9c7c9c1f8a3 === + echo '=== tsf-comp-hwcq-6c85dc4911f883442cb3df0c56ebe9c7c9c1f8a3 ===' + cat /tmp/tmp.UNhttRQFeo/tsf-comp-hwcq-6c85dc4911f883442cb3df0c56ebe9c7c9c1f8a3.out ++ mktemp + DEST_AUTH_FILE=/tmp/tmp.Hd2LOvH280 ++ echo quay.io/rhtap_qe/default-tenant-managed/tsf-comp-hwcq ++ cut -d / -f 1 + registry=quay.io + '[' quay.io = docker.io ']' + select-oci-auth quay.io/rhtap_qe/default-tenant-managed/tsf-comp-hwcq + jq -c '.auths."quay.io/rhtap_qe/default-tenant-managed/tsf-comp-hwcq" = .auths."quay.io" | del(.auths."quay.io")' Using token for quay.io/rhtap_qe/default-tenant-managed/tsf-comp-hwcq + oras_args=() + '[' -n '' ']' ++ oras resolve --registry-config /tmp/tmp.Hd2LOvH280 quay.io/rhtap_qe/default-tenant-managed/tsf-comp-hwcq:6c85dc4911f883442cb3df0c56ebe9c7c9c1f8a3 Error response from registry: failed to resolve digest: quay.io/rhtap_qe/default-tenant-managed/tsf-comp-hwcq:6c85dc4911f883442cb3df0c56ebe9c7c9c1f8a3: not found ++ true + destination_digest= + [[ '' != \s\h\a\2\5\6\:\f\1\b\f\6\f\d\8\7\9\0\f\5\f\3\0\9\1\4\5\9\b\3\a\4\9\d\0\a\d\e\b\b\0\7\4\6\4\3\5\8\6\3\f\c\5\5\2\7\d\a\6\6\8\f\d\3\c\c\a\7\0\2\f ]] + printf '* Pushing component: %s to %s:%s\n' tsf-comp-hwcq quay.io/rhtap_qe/default-tenant-managed/tsf-comp-hwcq 6c85dc4911f883442cb3df0c56ebe9c7c9c1f8a3 * Pushing component: tsf-comp-hwcq to quay.io/rhtap_qe/default-tenant-managed/tsf-comp-hwcq:6c85dc4911f883442cb3df0c56ebe9c7c9c1f8a3 ++ mktemp -d + DOCKER_CONFIG=/tmp/tmp.0tsbs3ZDov + export DOCKER_CONFIG + jq -s 'reduce .[] as $item ({}; . * $item)' /tmp/tmp.DezVCk7Okc /tmp/tmp.Hd2LOvH280 + [[ 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-hwcq@sha256:f1bf6fd8790f5f3091459b3a49d0adebb0746435863fc5527da668fd3cca702f quay.io/rhtap_qe/default-tenant-managed/tsf-comp-hwcq:6c85dc4911f883442cb3df0c56ebe9c7c9c1f8a3 Copying quay.io/rhtap_qe/default-tenant/tsf-comp-hwcq:sha256-f1bf6fd8790f5f3091459b3a49d0adebb0746435863fc5527da668fd3cca702f.sig to quay.io/rhtap_qe/default-tenant-managed/tsf-comp-hwcq:sha256-f1bf6fd8790f5f3091459b3a49d0adebb0746435863fc5527da668fd3cca702f.sig... Copying quay.io/rhtap_qe/default-tenant/tsf-comp-hwcq:sha256-f1bf6fd8790f5f3091459b3a49d0adebb0746435863fc5527da668fd3cca702f.sbom to quay.io/rhtap_qe/default-tenant-managed/tsf-comp-hwcq:sha256-f1bf6fd8790f5f3091459b3a49d0adebb0746435863fc5527da668fd3cca702f.sbom... Copying quay.io/rhtap_qe/default-tenant/tsf-comp-hwcq@sha256:f1bf6fd8790f5f3091459b3a49d0adebb0746435863fc5527da668fd3cca702f to quay.io/rhtap_qe/default-tenant-managed/tsf-comp-hwcq:sha256-f1bf6fd8790f5f3091459b3a49d0adebb0746435863fc5527da668fd3cca702f... Copying quay.io/rhtap_qe/default-tenant/tsf-comp-hwcq:sha256-f1bf6fd8790f5f3091459b3a49d0adebb0746435863fc5527da668fd3cca702f.att to quay.io/rhtap_qe/default-tenant-managed/tsf-comp-hwcq:sha256-f1bf6fd8790f5f3091459b3a49d0adebb0746435863fc5527da668fd3cca702f.att... Copying quay.io/rhtap_qe/default-tenant/tsf-comp-hwcq@sha256:f1bf6fd8790f5f3091459b3a49d0adebb0746435863fc5527da668fd3cca702f to quay.io/rhtap_qe/default-tenant-managed/tsf-comp-hwcq:6c85dc4911f883442cb3df0c56ebe9c7c9c1f8a3... + break + '[' 0 -gt 3 ']' + unset DOCKER_CONFIG + jq -n --arg name tsf-comp-hwcq --arg url quay.io/rhtap_qe/default-tenant-managed/tsf-comp-hwcq:6c85dc4911f883442cb3df0c56ebe9c7c9c1f8a3 '{name: $name, url: $url}' + echo + for file in "$TMP_RESULTS_DIR"/*.out ++ basename /tmp/tmp.UNhttRQFeo/tsf-comp-hwcq-latest.out .out === tsf-comp-hwcq-latest === + echo '=== tsf-comp-hwcq-latest ===' + cat /tmp/tmp.UNhttRQFeo/tsf-comp-hwcq-latest.out ++ mktemp + DEST_AUTH_FILE=/tmp/tmp.1ykbFnfL8n ++ echo quay.io/rhtap_qe/default-tenant-managed/tsf-comp-hwcq ++ cut -d / -f 1 + registry=quay.io + '[' quay.io = docker.io ']' + select-oci-auth quay.io/rhtap_qe/default-tenant-managed/tsf-comp-hwcq + jq -c '.auths."quay.io/rhtap_qe/default-tenant-managed/tsf-comp-hwcq" = .auths."quay.io" | del(.auths."quay.io")' Using token for quay.io/rhtap_qe/default-tenant-managed/tsf-comp-hwcq + oras_args=() + '[' -n '' ']' ++ oras resolve --registry-config /tmp/tmp.1ykbFnfL8n quay.io/rhtap_qe/default-tenant-managed/tsf-comp-hwcq:latest Error response from registry: failed to resolve digest: quay.io/rhtap_qe/default-tenant-managed/tsf-comp-hwcq:latest: not found ++ true + destination_digest= + [[ '' != \s\h\a\2\5\6\:\f\1\b\f\6\f\d\8\7\9\0\f\5\f\3\0\9\1\4\5\9\b\3\a\4\9\d\0\a\d\e\b\b\0\7\4\6\4\3\5\8\6\3\f\c\5\5\2\7\d\a\6\6\8\f\d\3\c\c\a\7\0\2\f ]] + printf '* Pushing component: %s to %s:%s\n' tsf-comp-hwcq quay.io/rhtap_qe/default-tenant-managed/tsf-comp-hwcq latest * Pushing component: tsf-comp-hwcq to quay.io/rhtap_qe/default-tenant-managed/tsf-comp-hwcq:latest ++ mktemp -d + DOCKER_CONFIG=/tmp/tmp.cm1yaSOoGP + export DOCKER_CONFIG + jq -s 'reduce .[] as $item ({}; . * $item)' /tmp/tmp.DezVCk7Okc /tmp/tmp.1ykbFnfL8n + [[ 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-hwcq@sha256:f1bf6fd8790f5f3091459b3a49d0adebb0746435863fc5527da668fd3cca702f quay.io/rhtap_qe/default-tenant-managed/tsf-comp-hwcq:latest Copying quay.io/rhtap_qe/default-tenant/tsf-comp-hwcq:sha256-f1bf6fd8790f5f3091459b3a49d0adebb0746435863fc5527da668fd3cca702f.sig to quay.io/rhtap_qe/default-tenant-managed/tsf-comp-hwcq:sha256-f1bf6fd8790f5f3091459b3a49d0adebb0746435863fc5527da668fd3cca702f.sig... Copying quay.io/rhtap_qe/default-tenant/tsf-comp-hwcq:sha256-f1bf6fd8790f5f3091459b3a49d0adebb0746435863fc5527da668fd3cca702f.att to quay.io/rhtap_qe/default-tenant-managed/tsf-comp-hwcq:sha256-f1bf6fd8790f5f3091459b3a49d0adebb0746435863fc5527da668fd3cca702f.att... Copying quay.io/rhtap_qe/default-tenant/tsf-comp-hwcq@sha256:f1bf6fd8790f5f3091459b3a49d0adebb0746435863fc5527da668fd3cca702f to quay.io/rhtap_qe/default-tenant-managed/tsf-comp-hwcq:sha256-f1bf6fd8790f5f3091459b3a49d0adebb0746435863fc5527da668fd3cca702f... Copying quay.io/rhtap_qe/default-tenant/tsf-comp-hwcq:sha256-f1bf6fd8790f5f3091459b3a49d0adebb0746435863fc5527da668fd3cca702f.sbom to quay.io/rhtap_qe/default-tenant-managed/tsf-comp-hwcq:sha256-f1bf6fd8790f5f3091459b3a49d0adebb0746435863fc5527da668fd3cca702f.sbom... Copying quay.io/rhtap_qe/default-tenant/tsf-comp-hwcq@sha256:f1bf6fd8790f5f3091459b3a49d0adebb0746435863fc5527da668fd3cca702f to quay.io/rhtap_qe/default-tenant-managed/tsf-comp-hwcq:latest... + break + '[' 0 -gt 3 ']' + unset DOCKER_CONFIG + jq -n --arg name tsf-comp-hwcq --arg url quay.io/rhtap_qe/default-tenant-managed/tsf-comp-hwcq:latest '{name: $name, url: $url}' + echo + '[' true '!=' true ']' ++ mktemp + PUSHES_FILE=/tmp/tmp.gzge5vuFhU + jq -s . /tmp/tmp.UNhttRQFeo/tsf-comp-hwcq-6c85dc4911f883442cb3df0c56ebe9c7c9c1f8a3.json /tmp/tmp.UNhttRQFeo/tsf-comp-hwcq-latest.json + jq --slurpfile PUSHES /tmp/tmp.gzge5vuFhU ' reduce $PUSHES[0][] as $p (.; (.images[] | select(.name == $p.name).urls) += [$p.url]) ' /tmp/tmp.Q4HEHZiVAU + tee /var/workdir/release/87cb583c-fc24-46e9-a748-0d62ebcd85e2/results/push-snapshot-results.json { "images": [ { "arches": [ "amd64" ], "oses": [ "linux" ], "name": "tsf-comp-hwcq", "shasum": "sha256:f1bf6fd8790f5f3091459b3a49d0adebb0746435863fc5527da668fd3cca702f", "urls": [ "quay.io/rhtap_qe/default-tenant-managed/tsf-comp-hwcq:6c85dc4911f883442cb3df0c56ebe9c7c9c1f8a3", "quay.io/rhtap_qe/default-tenant-managed/tsf-comp-hwcq:latest" ] } ] } + rm -f /tmp/tmp.Q4HEHZiVAU /tmp/tmp.Q4HEHZiVAU.tmp /tmp/tmp.gzge5vuFhU + printf 'Completed "%s" for "%s"\n\n' managed-f7ftt-push-snapshot tsf-app-qumn Completed "managed-f7ftt-push-snapshot" for "tsf-app-qumn"