# -*- sh -*- # # Tests for manifest list endpoints start_registry # Creates the manifest list t POST /v3.4.0/libpod/manifests/create?name=abc 200 \ .Id~[0-9a-f]\\{64\\} id_abc=$(jq -r '.Id' <<<"$output") t POST /v4.0.0/libpod/manifests/xyz 201 \ .Id~[0-9a-f]\\{64\\} id_xyz=$(jq -r '.Id' <<<"$output") t GET /v3.4.0/libpod/manifests/$id_abc/exists 204 t GET /v4.0.0/libpod/manifests/$id_xyz/exists 204 id_abc_image=$($PODMAN_BIN --root $WORKDIR/server_root image build -q --format=docker -<file1 EOF ) id_xyz_image=$($PODMAN_BIN --root $WORKDIR/server_root image build -q --format=docker -<file2 EOF ) # manifest add --anotation tests t POST /v3.4.0/libpod/manifests/$id_abc/add images="[\"containers-storage:$id_abc_image\"]" 200 t PUT /v4.0.0/libpod/manifests/$id_xyz operation='update' images="[\"containers-storage:$id_xyz_image\"]" annotations="{\"foo\":\"bar\"}" annotation="[\"hoge=fuga\"]" 400 \ .cause='can not set both Annotation and Annotations' t PUT /v4.0.0/libpod/manifests/$id_xyz operation='update' images="[\"containers-storage:$id_xyz_image\"]" annotations="{\"foo\":\"bar\"}" 200 t GET /v4.0.0/libpod/manifests/$id_xyz/json 200 \ .manifests[0].annotations.foo="bar" t PUT /v4.0.0/libpod/manifests/$id_xyz operation='update' images="[\"containers-storage:$id_xyz_image\"]" annotation="[\"hoge=fuga\"]" 200 t GET /v4.0.0/libpod/manifests/$id_xyz/json 200 \ .manifests[0].annotations.hoge="fuga" # manifest annotate tests t GET /v4.0.0/libpod/manifests/$id_xyz/json 200 xyz_digest=$(jq -r '.manifests[0].digest' <<<"$output") t PUT /v4.0.0/libpod/manifests/$id_xyz operation='annotate' images="[\"containers-storage:$id_xyz_image\"]" annotations="{\"foo2\":\"bar2\"}" annotation="[\"hoge2=fuga2\"]" 400 \ .cause='can not set both Annotation and Annotations' t PUT /v4.0.0/libpod/manifests/$id_xyz operation='annotate' images="[\"$xyz_digest\"]" annotations="{\"foo2\":\"bar2\"}" 200 t GET /v4.0.0/libpod/manifests/$id_xyz/json 200 \ .manifests[0].annotations.foo2="bar2" t PUT /v4.0.0/libpod/manifests/$id_xyz operation='annotate' images="[\"$xyz_digest\"]" annotation="[\"hoge2=fuga2\"]" 200 t GET /v4.0.0/libpod/manifests/$id_xyz/json 200 \ .manifests[0].annotations.hoge2="fuga2" # registry-related tests t POST "/v3.4.0/libpod/manifests/abc:latest/push?destination=localhost:$REGISTRY_PORT%2Fabc:latest&tlsVerify=false&all=true" 200 t POST "/v4.0.0/libpod/manifests/xyz:latest/registry/localhost:$REGISTRY_PORT%2Fxyz:latest?all=true" 400 \ .cause='x509: certificate signed by unknown authority' t POST "/v4.0.0/libpod/manifests/xyz:latest/registry/localhost:$REGISTRY_PORT%2Fxyz:latest?tlsVerify=false&all=true" 200 # /v3.x cannot delete a manifest list t DELETE /v4.0.0/libpod/manifests/$id_abc 200 t DELETE /v4.0.0/libpod/manifests/$id_xyz 200 podman rmi -a stop_registry