diff --git a/client/client.go b/client/client.go index f303512d..6495da96 100644 --- a/client/client.go +++ b/client/client.go @@ -154,7 +154,7 @@ func (r *clientImpl) PutImageManifest(name, tag string, manifest *manifest.Signe // TODO(bbland): handle other status codes, like 5xx errors switch { - case response.StatusCode == http.StatusOK: + case response.StatusCode == http.StatusOK || response.StatusCode == http.StatusAccepted: return nil case response.StatusCode >= 400 && response.StatusCode < 500: var errors v2.Errors diff --git a/registry/api_test.go b/registry/api_test.go index 5f9e6c38..aa70e504 100644 --- a/registry/api_test.go +++ b/registry/api_test.go @@ -336,8 +336,7 @@ func TestManifestAPI(t *testing.T) { } resp = putManifest(t, "putting signed manifest", manifestURL, signedManifest) - - checkResponse(t, "putting signed manifest", resp, http.StatusOK) + checkResponse(t, "putting signed manifest", resp, http.StatusAccepted) resp, err = http.Get(manifestURL) if err != nil { diff --git a/registry/images.go b/registry/images.go index 3d6feeed..db6bd705 100644 --- a/registry/images.go +++ b/registry/images.go @@ -92,6 +92,8 @@ func (imh *imageManifestHandler) PutImageManifest(w http.ResponseWriter, r *http w.WriteHeader(http.StatusBadRequest) return } + + w.WriteHeader(http.StatusAccepted) } // DeleteImageManifest removes the image with the given tag from the registry.