diff options
author | OpenShift Merge Robot <openshift-merge-robot@users.noreply.github.com> | 2021-12-02 16:12:47 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2021-12-02 16:12:47 +0100 |
commit | ee39281c35e3ceca98c0c51c9cc5d792c56ba533 (patch) | |
tree | 0cbbc1d7e0222118bb32bbc90adf443602d40985 | |
parent | b41026aec77fc7b74a45560f242be66c25af59a6 (diff) | |
parent | 2683ecbbcda750b9339713ced9b974b9dd61b9aa (diff) | |
download | podman-ee39281c35e3ceca98c0c51c9cc5d792c56ba533.tar.gz podman-ee39281c35e3ceca98c0c51c9cc5d792c56ba533.tar.bz2 podman-ee39281c35e3ceca98c0c51c9cc5d792c56ba533.zip |
Merge pull request #12480 from vrothberg/fix-12453
compat: images/json
-rw-r--r-- | pkg/api/handlers/compat/images.go | 12 | ||||
-rw-r--r-- | test/apiv2/10-images.at | 7 |
2 files changed, 16 insertions, 3 deletions
diff --git a/pkg/api/handlers/compat/images.go b/pkg/api/handlers/compat/images.go index af8b6b63d..4533fddeb 100644 --- a/pkg/api/handlers/compat/images.go +++ b/pkg/api/handlers/compat/images.go @@ -409,14 +409,20 @@ func GetImages(w http.ResponseWriter, r *http.Request) { utils.Error(w, "Something went wrong.", http.StatusInternalServerError, errors.Wrap(err, "Failed get images")) return } - var summaries = make([]*entities.ImageSummary, len(images)) - for j, img := range images { + + summaries := make([]*entities.ImageSummary, 0, len(images)) + for _, img := range images { + // If the image is a manifest list, extract as much as we can. + if isML, _ := img.IsManifestList(r.Context()); isML { + continue + } + is, err := handlers.ImageToImageSummary(img) if err != nil { utils.Error(w, "Something went wrong.", http.StatusInternalServerError, errors.Wrap(err, "Failed transform image summaries")) return } - summaries[j] = is + summaries = append(summaries, is) } utils.WriteResponse(w, http.StatusOK, summaries) } diff --git a/test/apiv2/10-images.at b/test/apiv2/10-images.at index b7bcaf81d..e67f559f3 100644 --- a/test/apiv2/10-images.at +++ b/test/apiv2/10-images.at @@ -10,6 +10,13 @@ t GET libpod/images/json 200 \ .[0].Id~[0-9a-f]\\{64\\} iid=$(jq -r '.[0].Id' <<<"$output") +# Create an empty manifest and make sure it is not listed +# in the compat endpoint. +t GET images/json 200 length=1 +podman manifest create foo +t GET images/json 200 length=1 +t GET libpod/images/json 200 length=2 + 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 \ |