mirror of
https://github.com/containers/podman.git
synced 2025-06-27 21:50:18 +08:00
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>
This commit is contained in:
@ -265,12 +265,12 @@ func CreateImageFromImage(w http.ResponseWriter, r *http.Request) {
|
|||||||
// Success
|
// Success
|
||||||
utils.WriteResponse(w, http.StatusOK, struct {
|
utils.WriteResponse(w, http.StatusOK, struct {
|
||||||
Status string `json:"status"`
|
Status string `json:"status"`
|
||||||
Error string `json:"error"`
|
Error string `json:"error,omitempty"`
|
||||||
Progress string `json:"progress"`
|
Progress string `json:"progress"`
|
||||||
ProgressDetail map[string]string `json:"progressDetail"`
|
ProgressDetail map[string]string `json:"progressDetail"`
|
||||||
Id string `json:"id"` // nolint
|
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{},
|
ProgressDetail: map[string]string{},
|
||||||
Id: img.ID(),
|
Id: img.ID(),
|
||||||
})
|
})
|
||||||
|
@ -41,7 +41,7 @@ t GET images/$iid/json 200 \
|
|||||||
.Id=sha256:$iid \
|
.Id=sha256:$iid \
|
||||||
.RepoTags[0]=$IMAGE
|
.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
|
t POST "images/create?fromImage=alpine&tag=latest" '' 200
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user