summaryrefslogtreecommitdiff
path: root/test/apiv2/10-images.at
blob: 30090d806453055215e9c992c2faabf1c3f8f6f0 (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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
# -*- sh -*-
#
# Tests for image-related endpoints
#

# FIXME: API doesn't support pull yet, so use podman
podman pull -q $IMAGE

t GET libpod/images/json 200 \
  .[0].Id~[0-9a-f]\\{64\\}
iid=$(jq -r '.[0].Id' <<<"$output")

t GET libpod/images/$iid/exists                     204
t GET libpod/images/$PODMAN_TEST_IMAGE_NAME/exists  204
t GET libpod/images/${iid}abcdef/exists  404 \
  .cause="failed to find image ${iid}abcdef"

# FIXME: compare to actual podman info
t GET libpod/images/json 200  \
  .[0].Id=${iid}

t GET libpod/images/$iid/json 200 \
  .Id=$iid \
  .RepoTags[0]=$IMAGE

# Same thing, but with abbreviated image id
t GET libpod/images/${iid:0:12}/json 200 \
  .Id=$iid \
  .RepoTags[0]=$IMAGE

# Docker API V1.24 filter parameter compatibility
t GET images/json?filter=$IMAGE 200 \
  length=1 \
  .[0].Names[0]=$IMAGE

# Negative test case
t GET images/json?filter=nonesuch 200 length=0

# FIXME: docker API incompatibility: libpod returns 'id', docker 'sha256:id'
t GET images/$iid/json 200 \
  .Id=sha256:$iid \
  .RepoTags[0]=$IMAGE

t POST "images/create?fromImage=alpine" '' 200

t POST "images/create?fromImage=alpine&tag=latest" '' 200

# Make sure that new images are pulled
old_iid=$(podman image inspect --format "{{.ID}}" docker.io/library/alpine:latest)
podman rmi -f docker.io/library/alpine:latest
podman tag $IMAGE docker.io/library/alpine:latest
t POST "images/create?fromImage=alpine" '' 200 .error=null .status~".*$old_iid.*"
podman untag $IMAGE docker.io/library/alpine:latest

t POST "images/create?fromImage=quay.io/libpod/alpine&tag=sha256:fa93b01658e3a5a1686dc3ae55f170d8de487006fb53a28efcd12ab0710a2e5f" '' 200

# Display the image history
t GET libpod/images/nonesuch/history 404

for i in $iid ${iid:0:12} $PODMAN_TEST_IMAGE_NAME; do
  t GET libpod/images/$i/history 200 \
    .[0].Id=$iid \
    .[0].Created~[0-9]\\{10\\} \
    .[0].Tags=null \
    .[0].Size=0 \
    .[0].Comment=
done

# Export an image on the local
t GET libpod/images/nonesuch/get 404
t GET libpod/images/$iid/get?format=foo 500
t GET libpod/images/$PODMAN_TEST_IMAGE_NAME/get?compress=bar 400

for i in $iid ${iid:0:12} $PODMAN_TEST_IMAGE_NAME; do
  t GET "libpod/images/$i/get"                200 '[POSIX tar archive]'
  t GET "libpod/images/$i/get?compress=true"  200 '[POSIX tar archive]'
  t GET "libpod/images/$i/get?compress=false" 200 '[POSIX tar archive]'
done

# Export more than one image
# FIXME FIXME FIXME, this doesn't work:
#   not ok 64 [10-images] GET images/get?names=alpine,busybox : status
#    expected: 200
#      actual: 500
#    expected: 200
#  not ok 65 [10-images] GET images/get?names=alpine,busybox : output
  #  expected: [POSIX tar archive]
#      actual: {"cause":"no such image","message":"unable to find a name and tag match for busybox in repotags: no such image","response":500}
#
#t GET images/get?names=alpine,busybox 200 '[POSIX tar archive]'

# vim: filetype=sh