aboutsummaryrefslogtreecommitdiff
path: root/test/apiv2
diff options
context:
space:
mode:
authorJhon Honce <jhonce@redhat.com>2021-12-06 16:45:58 -0700
committerJhon Honce <jhonce@redhat.com>2022-01-14 16:13:35 -0700
commit8a7e70919f4bab0757523ae97c170396cb13c83d (patch)
tree0ec2b5aa4e3c1e6574e606a0e7db3638fdeda578 /test/apiv2
parentec2b213ab611cb197e86c45d03fb10af667ad95c (diff)
downloadpodman-8a7e70919f4bab0757523ae97c170396cb13c83d.tar.gz
podman-8a7e70919f4bab0757523ae97c170396cb13c83d.tar.bz2
podman-8a7e70919f4bab0757523ae97c170396cb13c83d.zip
Refactor manifest list operations
* Update method/function signatures use the manifest list name and images associated with the operation explicitly, in general func f(ctx context.Context, manifestListName string, ImageNames []string, options *fOptions) * Leverage gorilla/mux Subrouters to support API v3.x and v4.x for manifests * Make manifest API endpoints more RESTful * Add PUT /manifest/{id} to update existing manifests * Add manifests.Annotate to go bindings, uncommented unit test * Add DELETE /manifest/{Id} to remove existing manifest list, use PUT /manifest/{id} to remove images from a list * Deprecated POST /manifest/{id}/add and /manifest/{id}/remove, use PUT /manifest/{id} instead * Corrected swagger godoc and updated to cover API changes * Update podman manifest commands to use registry.Context() * Expose utils.GetVar() to obtain query parameters by name * Unexpose server.registerSwaggerHandlers, not sure why this was ever exposed. * Refactored code to use http.Header instead of map[string]string when operating on HTTP headers. * Add API-Version header support in bindings to allow calling explicate versions of the API. Header is _NOT_ forwarded to the API service. Signed-off-by: Jhon Honce <jhonce@redhat.com>
Diffstat (limited to 'test/apiv2')
-rw-r--r--test/apiv2/15-manifest.at19
-rwxr-xr-xtest/apiv2/test-apiv26
2 files changed, 23 insertions, 2 deletions
diff --git a/test/apiv2/15-manifest.at b/test/apiv2/15-manifest.at
new file mode 100644
index 000000000..0dd7026fa
--- /dev/null
+++ b/test/apiv2/15-manifest.at
@@ -0,0 +1,19 @@
+# -*- sh -*-
+#
+# Tests for manifest list endpoints
+
+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\\}
+echo xyz $output
+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
+
+# /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
diff --git a/test/apiv2/test-apiv2 b/test/apiv2/test-apiv2
index 391095539..19e8c12d0 100755
--- a/test/apiv2/test-apiv2
+++ b/test/apiv2/test-apiv2
@@ -364,7 +364,9 @@ function start_service() {
echo $WORKDIR
# Some tests use shortnames; force registry override to work around
# docker.io throttling.
- env CONTAINERS_REGISTRIES_CONF=$TESTS_DIR/../registries.conf $PODMAN_BIN \
+# FIXME esm revisit pulling expected images re: shortnames caused tests to fail
+# env CONTAINERS_REGISTRIES_CONF=$TESTS_DIR/../registries.conf
+ $PODMAN_BIN \
--root $WORKDIR/server_root --syslog=true \
system service \
--time 15 \
@@ -497,7 +499,7 @@ function wait_for_port() {
############
function podman() {
echo "\$ $PODMAN_BIN $*" >>$WORKDIR/output.log
- env CONTAINERS_REGISTRIES_CONF=$TESTS_DIR/../registries.conf \
+# env CONTAINERS_REGISTRIES_CONF=$TESTS_DIR/../registries.conf \
$PODMAN_BIN --root $WORKDIR/server_root "$@" >>$WORKDIR/output.log 2>&1
}