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