# -*- sh -*- # # Tests for more image-related endpoints # red='\e[31m' nc='\e[0m' podman pull -q $IMAGE t GET libpod/images/json 200 \ .[0].Id~[0-9a-f]\\{64\\} iid=$(jq -r '.[0].Id' <<<"$output") # Retrieve the image tree t GET libpod/images/$IMAGE/tree 200 \ .Tree~^Image # Tag nonesuch image t POST "libpod/images/nonesuch/tag?repo=myrepo&tag=mytag" 404 # Tag the image t POST "libpod/images/$IMAGE/tag?repo=localhost:5000/myrepo&tag=mytag" 201 t GET libpod/images/$IMAGE/json 200 \ .RepoTags[1]=localhost:5000/myrepo:mytag # Run registry container podman run -d --name registry -p 5000:5000 quay.io/libpod/registry:2.6 /entrypoint.sh /etc/docker/registry/config.yml wait_for_port localhost 5000 # Push to local registry and check output while read -r LINE do if echo "${LINE}" | jq --exit-status 'select( .status != null) | select ( .status | contains("digest: sha256:"))' &>/dev/null; then GOT_DIGEST="1" fi done < <(curl -sL "http://$HOST:$PORT/images/localhost:5000/myrepo/push?tlsVerify=false&tag=mytag" -XPOST) if [ -z "${GOT_DIGEST}" ] ; then echo -e "${red}not ok: did not found digest in output${nc}" 1>&2; fi # Push to local registry t POST "images/localhost:5000/myrepo/push?tlsVerify=false&tag=mytag" 200 # Untag the image t POST "libpod/images/$iid/untag?repo=localhost:5000/myrepo&tag=mytag" 201 # Try to push non-existing image t POST "images/localhost:5000/idonotexist/push?tlsVerify=false" 404 t GET libpod/images/$IMAGE/json 200 \ .RepoTags[-1]=$IMAGE # Remove the registry container t DELETE libpod/containers/registry?force=true 204 # Remove images t DELETE libpod/images/$IMAGE 200 \ .ExitCode=0 t DELETE libpod/images/quay.io/libpod/registry:2.6 200 \ .ExitCode=0 if [ -z "${GOT_DIGEST}" ] ; then exit 1; fi