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