+ SNAPSHOT_SPEC_FILE=/var/workdir/release/eee3de0c-e909-4c7f-83d2-52ed809a75dc/snapshot_spec.json + '[' '!' -f /var/workdir/release/eee3de0c-e909-4c7f-83d2-52ed809a75dc/snapshot_spec.json ']' + DATA_FILE=/var/workdir/release/eee3de0c-e909-4c7f-83d2-52ed809a75dc/data.json + '[' '!' -f /var/workdir/release/eee3de0c-e909-4c7f-83d2-52ed809a75dc/data.json ']' ++ jq '.components | map(select(.repositories | map(select((has("tags")|not) or (.tags | IN([])))) | length > 0)) | length' /var/workdir/release/eee3de0c-e909-4c7f-83d2-52ed809a75dc/snapshot_spec.json + '[' 0 -ne 0 ']' + RESULTS_FILE=/var/workdir/release/eee3de0c-e909-4c7f-83d2-52ed809a75dc/results/push-snapshot-results.json ++ mktemp + RESULTS_JSON_FILE=/tmp/tmp.Pd8Puxo4h2 + echo '{"images":[]}' + RUNNING_JOBS='\j' + CONCURRENT_LIMIT=20 + REQUEST_COUNT=0 + SUCCESS=true ++ mktemp -d + TMP_RESULTS_DIR=/tmp/tmp.lBYE3hy57h ++ jq -r '.mapping.defaults.pushSourceContainer | if . == null then true else . end' /var/workdir/release/eee3de0c-e909-4c7f-83d2-52ed809a75dc/data.json + defaultPushSourceContainer=false + COPY_BUNDLE_MIGRATIONS=false ++ jq -r .application /var/workdir/release/eee3de0c-e909-4c7f-83d2-52ed809a75dc/snapshot_spec.json + application=tsf-app-mzgv ++ jq '.components | length' /var/workdir/release/eee3de0c-e909-4c7f-83d2-52ed809a75dc/snapshot_spec.json + NUM_COMPONENTS=1 + printf 'Beginning "%s" for "%s"\n\n' managed-8nxm4-push-snapshot tsf-app-mzgv Beginning "managed-8nxm4-push-snapshot" for "tsf-app-mzgv" + (( i = 0 )) + (( i < NUM_COMPONENTS )) ++ jq -c --argjson i 0 '.components[$i]' /var/workdir/release/eee3de0c-e909-4c7f-83d2-52ed809a75dc/snapshot_spec.json + component='{"containerImage":"quay.io/rhtap_qe/default-tenant/tsf-comp-ihzc@sha256:0c5f9e8eb130de4d864cabe74a120cec23d48a999cde2719e68172582cfa0610","name":"tsf-comp-ihzc","source":{"git":{"revision":"0fb393db5033b1f8b2321e255d2b8944245310a7","url":"https://github.com/rhads-tsf-qe/testrepo"}},"version":"","repository":"quay.io/rhtap_qe/default-tenant-managed/tsf-comp-ihzc","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:32Z"},{"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:32Z"},{"name":"org.opencontainers.image.revision","value":"0fb393db5033b1f8b2321e255d2b8944245310a7"},{"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":"0fb393db5033b1f8b2321e255d2b8944245310a7"},{"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","0fb393db5033b1f8b2321e255d2b8944245310a7"],"repositories":[{"url":"quay.io/rhtap_qe/default-tenant-managed/tsf-comp-ihzc","tags":["latest","0fb393db5033b1f8b2321e255d2b8944245310a7"]}]}' ++ jq -r .containerImage + containerImage=quay.io/rhtap_qe/default-tenant/tsf-comp-ihzc@sha256:0c5f9e8eb130de4d864cabe74a120cec23d48a999cde2719e68172582cfa0610 ++ echo quay.io/rhtap_qe/default-tenant/tsf-comp-ihzc@sha256:0c5f9e8eb130de4d864cabe74a120cec23d48a999cde2719e68172582cfa0610 ++ cut -d / -f 1 + registry=quay.io + source_repo=quay.io/rhtap_qe/default-tenant/tsf-comp-ihzc ++ mktemp + SOURCE_AUTH_FILE=/tmp/tmp.0qJLARgtnY + select-oci-auth quay.io/rhtap_qe/default-tenant/tsf-comp-ihzc@sha256:0c5f9e8eb130de4d864cabe74a120cec23d48a999cde2719e68172582cfa0610 + jq -c '.auths."quay.io/rhtap_qe/default-tenant/tsf-comp-ihzc" = .auths."quay.io" | del(.auths."quay.io")' Token not found for quay.io/rhtap_qe/default-tenant/tsf-comp-ihzc@sha256:0c5f9e8eb130de4d864cabe74a120cec23d48a999cde2719e68172582cfa0610 ++ get-image-architectures quay.io/rhtap_qe/default-tenant/tsf-comp-ihzc@sha256:0c5f9e8eb130de4d864cabe74a120cec23d48a999cde2719e68172582cfa0610 + arch_json='{"platform":{"architecture":"amd64","os":"linux"},"digest":"sha256:0c5f9e8eb130de4d864cabe74a120cec23d48a999cde2719e68172582cfa0610","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-ihzc ++ skopeo inspect --retry-times 3 --raw docker://quay.io/rhtap_qe/default-tenant/tsf-comp-ihzc@sha256:0c5f9e8eb130de4d864cabe74a120cec23d48a999cde2719e68172582cfa0610 ++ 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.0qJLARgtnY quay.io/rhtap_qe/default-tenant/tsf-comp-ihzc@sha256:0c5f9e8eb130de4d864cabe74a120cec23d48a999cde2719e68172582cfa0610 + origin_digest=sha256:0c5f9e8eb130de4d864cabe74a120cec23d48a999cde2719e68172582cfa0610 + jq --arg i 0 --argjson arches '[ "amd64" ]' --argjson oses '[ "linux" ]' --arg name tsf-comp-ihzc --arg sha sha256:0c5f9e8eb130de4d864cabe74a120cec23d48a999cde2719e68172582cfa0610 '.images[$i|tonumber] += {"arches": $arches, "oses": $oses, "name": $name, "shasum": $sha, "urls": []}' /tmp/tmp.Pd8Puxo4h2 + mv /tmp/tmp.Pd8Puxo4h2.tmp /tmp/tmp.Pd8Puxo4h2 ++ 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-ihzc","tags":["latest","0fb393db5033b1f8b2321e255d2b8944245310a7"]}' ++ jq .tags + imageTags='[ "latest", "0fb393db5033b1f8b2321e255d2b8944245310a7" ]' ++ jq -r .url + repository_url=quay.io/rhtap_qe/default-tenant-managed/tsf-comp-ihzc + '[' -n '' ']' ++ jq -r '.[]' + for tag in $(jq -r '.[]' <<< "$imageTags") + wait_for_slot + (( 0 >= 20 )) + (( ++REQUEST_COUNT )) Request Count: 1 + echo 'Request Count: 1' + '[' -n '' ']' + for tag in $(jq -r '.[]' <<< "$imageTags") + wait_for_slot + (( 1 >= 20 )) + push_image sha256:0c5f9e8eb130de4d864cabe74a120cec23d48a999cde2719e68172582cfa0610 tsf-comp-ihzc quay.io/rhtap_qe/default-tenant/tsf-comp-ihzc@sha256:0c5f9e8eb130de4d864cabe74a120cec23d48a999cde2719e68172582cfa0610 quay.io/rhtap_qe/default-tenant-managed/tsf-comp-ihzc latest '' + (( ++REQUEST_COUNT )) Request Count: 2 + echo '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:0c5f9e8eb130de4d864cabe74a120cec23d48a999cde2719e68172582cfa0610 tsf-comp-ihzc quay.io/rhtap_qe/default-tenant/tsf-comp-ihzc@sha256:0c5f9e8eb130de4d864cabe74a120cec23d48a999cde2719e68172582cfa0610 quay.io/rhtap_qe/default-tenant-managed/tsf-comp-ihzc 0fb393db5033b1f8b2321e255d2b8944245310a7 '' + (( 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.lBYE3hy57h/tsf-comp-ihzc-0fb393db5033b1f8b2321e255d2b8944245310a7.out .out + echo '=== tsf-comp-ihzc-0fb393db5033b1f8b2321e255d2b8944245310a7 ===' === tsf-comp-ihzc-0fb393db5033b1f8b2321e255d2b8944245310a7 === + cat /tmp/tmp.lBYE3hy57h/tsf-comp-ihzc-0fb393db5033b1f8b2321e255d2b8944245310a7.out ++ mktemp + DEST_AUTH_FILE=/tmp/tmp.oWOxZjMM42 ++ echo quay.io/rhtap_qe/default-tenant-managed/tsf-comp-ihzc ++ cut -d / -f 1 + registry=quay.io + '[' quay.io = docker.io ']' + select-oci-auth quay.io/rhtap_qe/default-tenant-managed/tsf-comp-ihzc + jq -c '.auths."quay.io/rhtap_qe/default-tenant-managed/tsf-comp-ihzc" = .auths."quay.io" | del(.auths."quay.io")' Using token for quay.io/rhtap_qe/default-tenant-managed/tsf-comp-ihzc + oras_args=() + '[' -n '' ']' ++ oras resolve --registry-config /tmp/tmp.oWOxZjMM42 quay.io/rhtap_qe/default-tenant-managed/tsf-comp-ihzc:0fb393db5033b1f8b2321e255d2b8944245310a7 Error response from registry: failed to resolve digest: quay.io/rhtap_qe/default-tenant-managed/tsf-comp-ihzc:0fb393db5033b1f8b2321e255d2b8944245310a7: not found ++ true + destination_digest= + [[ '' != \s\h\a\2\5\6\:\0\c\5\f\9\e\8\e\b\1\3\0\d\e\4\d\8\6\4\c\a\b\e\7\4\a\1\2\0\c\e\c\2\3\d\4\8\a\9\9\9\c\d\e\2\7\1\9\e\6\8\1\7\2\5\8\2\c\f\a\0\6\1\0 ]] + printf '* Pushing component: %s to %s:%s\n' tsf-comp-ihzc quay.io/rhtap_qe/default-tenant-managed/tsf-comp-ihzc 0fb393db5033b1f8b2321e255d2b8944245310a7 * Pushing component: tsf-comp-ihzc to quay.io/rhtap_qe/default-tenant-managed/tsf-comp-ihzc:0fb393db5033b1f8b2321e255d2b8944245310a7 ++ mktemp -d + DOCKER_CONFIG=/tmp/tmp.Vmum8zzyZa + export DOCKER_CONFIG + jq -s 'reduce .[] as $item ({}; . * $item)' /tmp/tmp.0qJLARgtnY /tmp/tmp.oWOxZjMM42 + [[ 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-ihzc@sha256:0c5f9e8eb130de4d864cabe74a120cec23d48a999cde2719e68172582cfa0610 quay.io/rhtap_qe/default-tenant-managed/tsf-comp-ihzc:0fb393db5033b1f8b2321e255d2b8944245310a7 Copying quay.io/rhtap_qe/default-tenant/tsf-comp-ihzc:sha256-0c5f9e8eb130de4d864cabe74a120cec23d48a999cde2719e68172582cfa0610.att to quay.io/rhtap_qe/default-tenant-managed/tsf-comp-ihzc:sha256-0c5f9e8eb130de4d864cabe74a120cec23d48a999cde2719e68172582cfa0610.att... Copying quay.io/rhtap_qe/default-tenant/tsf-comp-ihzc@sha256:0c5f9e8eb130de4d864cabe74a120cec23d48a999cde2719e68172582cfa0610 to quay.io/rhtap_qe/default-tenant-managed/tsf-comp-ihzc:sha256-0c5f9e8eb130de4d864cabe74a120cec23d48a999cde2719e68172582cfa0610... Copying quay.io/rhtap_qe/default-tenant/tsf-comp-ihzc:sha256-0c5f9e8eb130de4d864cabe74a120cec23d48a999cde2719e68172582cfa0610.sbom to quay.io/rhtap_qe/default-tenant-managed/tsf-comp-ihzc:sha256-0c5f9e8eb130de4d864cabe74a120cec23d48a999cde2719e68172582cfa0610.sbom... Copying quay.io/rhtap_qe/default-tenant/tsf-comp-ihzc:sha256-0c5f9e8eb130de4d864cabe74a120cec23d48a999cde2719e68172582cfa0610.sig to quay.io/rhtap_qe/default-tenant-managed/tsf-comp-ihzc:sha256-0c5f9e8eb130de4d864cabe74a120cec23d48a999cde2719e68172582cfa0610.sig... Copying quay.io/rhtap_qe/default-tenant/tsf-comp-ihzc@sha256:0c5f9e8eb130de4d864cabe74a120cec23d48a999cde2719e68172582cfa0610 to quay.io/rhtap_qe/default-tenant-managed/tsf-comp-ihzc:0fb393db5033b1f8b2321e255d2b8944245310a7... + break + '[' 0 -gt 3 ']' + unset DOCKER_CONFIG + jq -n --arg name tsf-comp-ihzc --arg url quay.io/rhtap_qe/default-tenant-managed/tsf-comp-ihzc:0fb393db5033b1f8b2321e255d2b8944245310a7 '{name: $name, url: $url}' + echo + for file in "$TMP_RESULTS_DIR"/*.out ++ basename /tmp/tmp.lBYE3hy57h/tsf-comp-ihzc-latest.out .out === tsf-comp-ihzc-latest === + echo '=== tsf-comp-ihzc-latest ===' + cat /tmp/tmp.lBYE3hy57h/tsf-comp-ihzc-latest.out ++ mktemp + DEST_AUTH_FILE=/tmp/tmp.oYa3TUgK0D ++ echo quay.io/rhtap_qe/default-tenant-managed/tsf-comp-ihzc ++ cut -d / -f 1 + registry=quay.io + '[' quay.io = docker.io ']' + select-oci-auth quay.io/rhtap_qe/default-tenant-managed/tsf-comp-ihzc + jq -c '.auths."quay.io/rhtap_qe/default-tenant-managed/tsf-comp-ihzc" = .auths."quay.io" | del(.auths."quay.io")' Using token for quay.io/rhtap_qe/default-tenant-managed/tsf-comp-ihzc + oras_args=() + '[' -n '' ']' ++ oras resolve --registry-config /tmp/tmp.oYa3TUgK0D quay.io/rhtap_qe/default-tenant-managed/tsf-comp-ihzc:latest Error response from registry: failed to resolve digest: quay.io/rhtap_qe/default-tenant-managed/tsf-comp-ihzc:latest: not found ++ true + destination_digest= + [[ '' != \s\h\a\2\5\6\:\0\c\5\f\9\e\8\e\b\1\3\0\d\e\4\d\8\6\4\c\a\b\e\7\4\a\1\2\0\c\e\c\2\3\d\4\8\a\9\9\9\c\d\e\2\7\1\9\e\6\8\1\7\2\5\8\2\c\f\a\0\6\1\0 ]] + printf '* Pushing component: %s to %s:%s\n' tsf-comp-ihzc quay.io/rhtap_qe/default-tenant-managed/tsf-comp-ihzc latest * Pushing component: tsf-comp-ihzc to quay.io/rhtap_qe/default-tenant-managed/tsf-comp-ihzc:latest ++ mktemp -d + DOCKER_CONFIG=/tmp/tmp.hEV3kytay9 + export DOCKER_CONFIG + jq -s 'reduce .[] as $item ({}; . * $item)' /tmp/tmp.0qJLARgtnY /tmp/tmp.oYa3TUgK0D + [[ 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-ihzc@sha256:0c5f9e8eb130de4d864cabe74a120cec23d48a999cde2719e68172582cfa0610 quay.io/rhtap_qe/default-tenant-managed/tsf-comp-ihzc:latest Copying quay.io/rhtap_qe/default-tenant/tsf-comp-ihzc:sha256-0c5f9e8eb130de4d864cabe74a120cec23d48a999cde2719e68172582cfa0610.att to quay.io/rhtap_qe/default-tenant-managed/tsf-comp-ihzc:sha256-0c5f9e8eb130de4d864cabe74a120cec23d48a999cde2719e68172582cfa0610.att... Copying quay.io/rhtap_qe/default-tenant/tsf-comp-ihzc@sha256:0c5f9e8eb130de4d864cabe74a120cec23d48a999cde2719e68172582cfa0610 to quay.io/rhtap_qe/default-tenant-managed/tsf-comp-ihzc:sha256-0c5f9e8eb130de4d864cabe74a120cec23d48a999cde2719e68172582cfa0610... Copying quay.io/rhtap_qe/default-tenant/tsf-comp-ihzc:sha256-0c5f9e8eb130de4d864cabe74a120cec23d48a999cde2719e68172582cfa0610.sbom to quay.io/rhtap_qe/default-tenant-managed/tsf-comp-ihzc:sha256-0c5f9e8eb130de4d864cabe74a120cec23d48a999cde2719e68172582cfa0610.sbom... Copying quay.io/rhtap_qe/default-tenant/tsf-comp-ihzc:sha256-0c5f9e8eb130de4d864cabe74a120cec23d48a999cde2719e68172582cfa0610.sig to quay.io/rhtap_qe/default-tenant-managed/tsf-comp-ihzc:sha256-0c5f9e8eb130de4d864cabe74a120cec23d48a999cde2719e68172582cfa0610.sig... Copying quay.io/rhtap_qe/default-tenant/tsf-comp-ihzc@sha256:0c5f9e8eb130de4d864cabe74a120cec23d48a999cde2719e68172582cfa0610 to quay.io/rhtap_qe/default-tenant-managed/tsf-comp-ihzc:latest... + break + '[' 0 -gt 3 ']' + unset DOCKER_CONFIG + jq -n --arg name tsf-comp-ihzc --arg url quay.io/rhtap_qe/default-tenant-managed/tsf-comp-ihzc:latest '{name: $name, url: $url}' + echo + '[' true '!=' true ']' ++ mktemp + PUSHES_FILE=/tmp/tmp.aZpN4mhzXX + jq -s . /tmp/tmp.lBYE3hy57h/tsf-comp-ihzc-0fb393db5033b1f8b2321e255d2b8944245310a7.json /tmp/tmp.lBYE3hy57h/tsf-comp-ihzc-latest.json + jq --slurpfile PUSHES /tmp/tmp.aZpN4mhzXX ' reduce $PUSHES[0][] as $p (.; (.images[] | select(.name == $p.name).urls) += [$p.url]) ' /tmp/tmp.Pd8Puxo4h2 + tee /var/workdir/release/eee3de0c-e909-4c7f-83d2-52ed809a75dc/results/push-snapshot-results.json { "images": [ { "arches": [ "amd64" ], "oses": [ "linux" ], "name": "tsf-comp-ihzc", "shasum": "sha256:0c5f9e8eb130de4d864cabe74a120cec23d48a999cde2719e68172582cfa0610", "urls": [ "quay.io/rhtap_qe/default-tenant-managed/tsf-comp-ihzc:0fb393db5033b1f8b2321e255d2b8944245310a7", "quay.io/rhtap_qe/default-tenant-managed/tsf-comp-ihzc:latest" ] } ] } + rm -f /tmp/tmp.Pd8Puxo4h2 /tmp/tmp.Pd8Puxo4h2.tmp /tmp/tmp.aZpN4mhzXX Completed "managed-8nxm4-push-snapshot" for "tsf-app-mzgv" + printf 'Completed "%s" for "%s"\n\n' managed-8nxm4-push-snapshot tsf-app-mzgv