summaryrefslogtreecommitdiff
path: root/test/apiv2/12-imagesMore.at
blob: 98f396a17534aa7fe5cd1a80d7861552405032b2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
# -*- sh -*-
#
# Tests for more image-related endpoints
#

red='\e[31m'
nc='\e[0m'

start_registry

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:$REGISTRY_PORT/myrepo&tag=mytag" 201

t GET libpod/images/$IMAGE/json 200 \
  .RepoTags[1]=localhost:$REGISTRY_PORT/myrepo:mytag

# 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:$REGISTRY_PORT/myrepo/push?tlsVerify=false&tag=mytag" -XPOST -H "X-Registry-Config: $REGISTRY_CONFIG_HEADER")
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:$REGISTRY_PORT/myrepo/push?tlsVerify=false&tag=mytag" 200

# Untag the image
t POST "libpod/images/$iid/untag?repo=localhost:$REGISTRY_PORT/myrepo&tag=mytag" 201

# Try to push non-existing image
t POST "images/localhost:$REGISTRY_PORT/idonotexist/push?tlsVerify=false" 404

t GET libpod/images/$IMAGE/json 200 \
  .RepoTags[-1]=$IMAGE

# Remove image
t DELETE libpod/images/$IMAGE 200 \
  .ExitCode=0