summaryrefslogtreecommitdiff
path: root/test/apiv2
diff options
context:
space:
mode:
authorCharlie Doern <cdoern@redhat.com>2022-07-12 15:23:45 -0400
committerCharlie Doern <cdoern@redhat.com>2022-08-04 13:59:58 -0400
commit842c6c7c6748f8705698d25a29945f8437f1bed2 (patch)
tree944a6f4e50f76a9f5a2d5e1eae0f698a69f39fd4 /test/apiv2
parent1cf6afb788a681fc379d58d7f1cb69eb1690dba9 (diff)
downloadpodman-842c6c7c6748f8705698d25a29945f8437f1bed2.tar.gz
podman-842c6c7c6748f8705698d25a29945f8437f1bed2.tar.bz2
podman-842c6c7c6748f8705698d25a29945f8437f1bed2.zip
podman generate spec
implement a new command `podman generate spec` which can formulate a json specgen to be consumed by both the pod and container creation API. supported flags are --verbose (default true) print output to the terminal --compact print the json output in a single line format to be piped to the API --filename put the output in a file --clone rename the pod/ctr in the spec so it won't conflict w/ an existing entity Signed-off-by: Charlie Doern <cdoern@redhat.com>
Diffstat (limited to 'test/apiv2')
-rw-r--r--test/apiv2/20-containers.at21
-rw-r--r--test/apiv2/40-pods.at20
2 files changed, 41 insertions, 0 deletions
diff --git a/test/apiv2/20-containers.at b/test/apiv2/20-containers.at
index a8d9baef3..ac3626cf1 100644
--- a/test/apiv2/20-containers.at
+++ b/test/apiv2/20-containers.at
@@ -527,3 +527,24 @@ t GET containers/status-test/json 200 .State.Status="stopping"
sleep 3
t GET containers/status-test/json 200 .State.Status="exited"
+
+# test podman generate spec as input for the api
+podman create --name=specgen alpine_labels
+
+TMPD=$(mktemp -d podman-apiv2-test.build.XXXXXXXX)
+
+podman generate spec -f ${TMPD}/input.txt -c specgen
+
+curl -XPOST -o ${TMPD}/response.txt --dump-header ${TMPD}/headers.txt -H content-type:application/json http://$HOST:$PORT/v4.0.0/libpod/containers/create -d "@${TMPD}/input.txt"
+
+if ! grep -q '201 Created' "${TMPD}/headers.txt"; then
+ cat "${TMPD}/headers.txt"
+ cat "${TMPD}/response.txt"
+ echo -e "${red}NOK: container create failed"
+ rm -rf $TMPD
+ exit 1
+fi
+
+rm -rf $TMPD
+
+podman container rm -fa
diff --git a/test/apiv2/40-pods.at b/test/apiv2/40-pods.at
index 80724a8d9..d21b3d1a9 100644
--- a/test/apiv2/40-pods.at
+++ b/test/apiv2/40-pods.at
@@ -136,4 +136,24 @@ t DELETE "libpod/pods/foo (pod has already been deleted)" 404
t_timeout 5 GET "libpod/pods/stats?stream=true&delay=1" 200
+podman pod create --name=specgen
+
+TMPD=$(mktemp -d podman-apiv2-test.build.XXXXXXXX)
+
+podman generate spec -f ${TMPD}/input.txt -c specgen
+
+curl -XPOST -o ${TMPD}/response.txt --dump-header ${TMPD}/headers.txt -H content-type:application/json http://$HOST:$PORT/v4.0.0/libpod/pods/create -d "@${TMPD}/input.txt"
+
+if ! grep -q '201 Created' "${TMPD}/headers.txt"; then
+ cat "${TMPD}/headers.txt"
+ cat "${TMPD}/response.txt"
+ echo -e "${red}NOK: pod create failed"
+ rm -rf $TMPD
+ exit 1
+fi
+
+rm -rf $TMPD
+
+podman pod rm -fa
+
# vim: filetype=sh