blob: f3272c41e4365c1a308c77f7baa467a8c4dd9678 (
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
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
|
# -*- sh -*-
#
# test pod-related endpoints
#
t GET "libpod/pods/json (clean slate at start)" 200 '[]'
t POST libpod/pods/create name=foo 201 .Id~[0-9a-f]\\{64\\}
pod_id=$(jq -r .Id <<<"$output")
t GET libpod/pods/foo/exists 204
t GET libpod/pods/$pod_id/exists 204
t GET libpod/pods/notfoo/exists 404
t GET libpod/pods/foo/json 200 \
.Name=foo \
.Id=$pod_id \
.Containers\|length=1
t GET libpod/pods/json 200 \
.[0].Name=foo \
.[0].Id=$pod_id \
.[0].Containers\|length=1
# Cannot create a dup pod with the same name
t POST "libpod/pods/create (dup pod)" name=foo 409 \
.cause="pod already exists"
#t POST libpod/pods/create a=b 400 .cause='bad parameter' # FIXME: unimplemented
t POST libpod/pods/foo/start 200 \
.Errs=null \
.Id=$pod_id
t POST libpod/pods/foo/start 304 \
t POST libpod/pods/fakename/start 404 \
.cause="no such pod" \
.message="no pod with name or ID fakename found: no such pod"
if root || have_cgroupsv2; then
t POST libpod/pods/foo/pause 200
else
# Rootless cgroupsv1 : unsupported
t POST "libpod/pods/foo/pause (rootless cgroups v1)" 500 \
.cause="this container does not have a cgroup" \
.message~".*pause pods containing rootless containers with cgroup V1"
fi
t POST libpod/pods/foo/unpause 200
t POST "libpod/pods/foo/unpause (2nd unpause in a row)" 200
t POST "libpod/pods/fakename/unpause" 404\
.cause="no such pod" \
.message="no pod with name or ID fakename found: no such pod"
t POST libpod/pods/foo/stop 200 \
.Errs=null \
.Id=$pod_id
t POST "libpod/pods/foo/stop (pod is already stopped)" 304
t POST "libpod/pods/fakename/stop" 404\
.cause="no such pod" \
.message="no pod with name or ID fakename found: no such pod"
t POST libpod/pods/foo/restart 200 \
.Errs=null \
.Id=$pod_id
t POST "libpod/pods/bar/restart (restart on nonexistent pod)" 404
t POST libpod/pods/create name=bar 201 .Id~[0-9a-f]\\{64\\}
pod_bar_id=$(jq -r .Id <<<"$output")
t POST libpod/pods/bar/restart 200 \
.Errs=null \
.Id=$pod_bar_id
t GET libpod/pods/bar/json 200 \
.State=Running
t POST libpod/pods/bar/restart 200 \
.Errs=null \
.Id=$pod_bar_id
t POST "libpod/pods/bar/stop?t=invalid" 400 \
.cause="schema: error converting value for \"t\"" \
.message~"failed to parse parameters for"
podman run -d --pod bar busybox sleep 999
t POST libpod/pods/bar/stop?t=1 200 \
.Errs=null \
.Id=$pod_bar_id
t POST libpod/pods/bar/start 200
t GET libpod/pods/stats?all=true 200
is $(jq '. | length' <<<"$output") 3 "stats?all=true: number of records found"
t GET libpod/pods/stats?namesOrIDs=foo 200
is $(jq '. | length' <<<"$output") 1 "stats?namesOrIDs=foo: number of records found"
t GET libpod/pods/stats?namesOrIDs=fakename 404 \
.cause="no such pod" \
.message="unable to get list of pods: no pod with name or ID fakename found: no such pod"
t DELETE libpod/pods/bar?force=true 200
# test the fake name
t GET libpod/pods/fakename/top 404 \
.cause="no such pod"
t GET libpod/pods/foo/top 200 \
.Processes[0][-1]="/pause " \
.Titles[-1]="COMMAND"
t GET libpod/pods/foo/top?ps_args=args,pid 200 \
.Processes[0][0]="/pause " \
.Processes[0][1]="1" \
.Titles[0]="COMMAND" \
.Titles[1]="PID" \
# FIXME: I'm not sure what 'prune' is supposed to do; as of 20200224 it
# just returns 200 (ok) with empty result list.
#t POST libpod/pods/prune 200 # FIXME: 2020-02-24 returns 200 {}
#t POST libpod/pods/prune 'a=b' 400 # FIXME: 2020-02-24 returns 200
# Clean up; and try twice, making sure that the second time fails
t DELETE libpod/pods/foo 200
t DELETE "libpod/pods/foo (pod has already been deleted)" 404
# vim: filetype=sh
|