summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorIgor Korolev <missterr@gmail.com>2021-02-10 23:15:48 +0400
committerMatthew Heon <mheon@redhat.com>2021-02-18 11:03:34 -0500
commitb4678177828bf1a5fddffa06a8ebce8fec077f47 (patch)
treedac41c6e1f3707f7c122035c03c136e7326c703a
parent0e3a3efee50aea4d811b3bacf5ffa9569f950f68 (diff)
downloadpodman-b4678177828bf1a5fddffa06a8ebce8fec077f47.tar.gz
podman-b4678177828bf1a5fddffa06a8ebce8fec077f47.tar.bz2
podman-b4678177828bf1a5fddffa06a8ebce8fec077f47.zip
apiv2: handle docker-java clients pulling
When docker-java calls images/create?fromImage=x, it expects two things for a successful response: that both "error" and "errorDetail" are not set, and that the "progress" message contains one of five hard-coded strings ("Download complete" being one of them). Signed-off-by: Igor Korolev <missterr@gmail.com>
-rw-r--r--pkg/api/handlers/compat/images.go4
-rw-r--r--test/apiv2/10-images.at2
2 files changed, 3 insertions, 3 deletions
diff --git a/pkg/api/handlers/compat/images.go b/pkg/api/handlers/compat/images.go
index 05d4e2f65..ab2b1f471 100644
--- a/pkg/api/handlers/compat/images.go
+++ b/pkg/api/handlers/compat/images.go
@@ -255,12 +255,12 @@ func CreateImageFromImage(w http.ResponseWriter, r *http.Request) {
// Success
utils.WriteResponse(w, http.StatusOK, struct {
Status string `json:"status"`
- Error string `json:"error"`
+ Error string `json:"error,omitempty"`
Progress string `json:"progress"`
ProgressDetail map[string]string `json:"progressDetail"`
Id string `json:"id"` // nolint
}{
- Status: fmt.Sprintf("pulling image (%s) from %s", img.Tag, strings.Join(img.Names(), ", ")),
+ Status: fmt.Sprintf("pulling image (%s) from %s (Download complete)", img.Tag, strings.Join(img.Names(), ", ")),
ProgressDetail: map[string]string{},
Id: img.ID(),
})
diff --git a/test/apiv2/10-images.at b/test/apiv2/10-images.at
index 30090d806..a650cf958 100644
--- a/test/apiv2/10-images.at
+++ b/test/apiv2/10-images.at
@@ -41,7 +41,7 @@ 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" '' 200 .error=null .status~".*Download complete.*"
t POST "images/create?fromImage=alpine&tag=latest" '' 200