Make the registry client more tolerant about HTTP status codes

Generally, all 2xx and 3xx codes should be treated as success.

Signed-off-by: Aaron Lehmann <aaron.lehmann@docker.com>
This commit is contained in:
Aaron Lehmann 2015-07-24 16:14:04 -07:00
parent a6ef6c0dc3
commit 6b4573225c
5 changed files with 40 additions and 52 deletions

View file

@ -44,7 +44,7 @@ func (hbu *httpBlobUpload) ReadFrom(r io.Reader) (n int64, err error) {
return 0, err
}
if resp.StatusCode != http.StatusAccepted {
if !SuccessStatus(resp.StatusCode) {
return 0, hbu.handleErrorResponse(resp)
}
@ -79,7 +79,7 @@ func (hbu *httpBlobUpload) Write(p []byte) (n int, err error) {
return 0, err
}
if resp.StatusCode != http.StatusAccepted {
if !SuccessStatus(resp.StatusCode) {
return 0, hbu.handleErrorResponse(resp)
}
@ -142,7 +142,7 @@ func (hbu *httpBlobUpload) Commit(ctx context.Context, desc distribution.Descrip
}
defer resp.Body.Close()
if resp.StatusCode != http.StatusCreated {
if !SuccessStatus(resp.StatusCode) {
return distribution.Descriptor{}, hbu.handleErrorResponse(resp)
}
@ -160,12 +160,10 @@ func (hbu *httpBlobUpload) Cancel(ctx context.Context) error {
}
defer resp.Body.Close()
switch resp.StatusCode {
case http.StatusNoContent, http.StatusNotFound:
if resp.StatusCode == http.StatusNotFound || SuccessStatus(resp.StatusCode) {
return nil
default:
return hbu.handleErrorResponse(resp)
}
return hbu.handleErrorResponse(resp)
}
func (hbu *httpBlobUpload) Close() error {