From 377f556464608d99712d9921fcec02bd60060016 Mon Sep 17 00:00:00 2001 From: David Calavera Date: Tue, 26 Jan 2016 13:30:58 -0500 Subject: [PATCH] Respond with 401 when there is an unauthorized error from the registry. Signed-off-by: David Calavera --- docs/registry.go | 1 - docs/session.go | 7 ++++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/docs/registry.go b/docs/registry.go index f135cc1b..6214d41a 100644 --- a/docs/registry.go +++ b/docs/registry.go @@ -28,7 +28,6 @@ var ( // ErrAlreadyExists is an error returned if an image being pushed // already exists on the remote side ErrAlreadyExists = errors.New("Image already exists") - errLoginRequired = errors.New("Authentication is required.") ) func init() { diff --git a/docs/session.go b/docs/session.go index 57acbc0c..4b18d0d1 100644 --- a/docs/session.go +++ b/docs/session.go @@ -19,6 +19,7 @@ import ( "strings" "github.com/Sirupsen/logrus" + "github.com/docker/distribution/registry/api/errcode" "github.com/docker/docker/pkg/httputils" "github.com/docker/docker/pkg/ioutils" "github.com/docker/docker/pkg/stringid" @@ -213,7 +214,7 @@ func (r *Session) GetRemoteHistory(imgID, registry string) ([]string, error) { defer res.Body.Close() if res.StatusCode != 200 { if res.StatusCode == 401 { - return nil, errLoginRequired + return nil, errcode.ErrorCodeUnauthorized.WithArgs() } return nil, httputils.NewHTTPRequestError(fmt.Sprintf("Server error: %d trying to fetch remote history for %s", res.StatusCode, imgID), res) } @@ -427,7 +428,7 @@ func (r *Session) GetRepositoryData(name reference.Named) (*RepositoryData, erro } defer res.Body.Close() if res.StatusCode == 401 { - return nil, errLoginRequired + return nil, errcode.ErrorCodeUnauthorized.WithArgs() } // TODO: Right now we're ignoring checksums in the response body. // In the future, we need to use them to check image validity. @@ -661,7 +662,7 @@ func (r *Session) PushImageJSONIndex(remote reference.Named, imgList []*ImgData, defer res.Body.Close() if res.StatusCode == 401 { - return nil, errLoginRequired + return nil, errcode.ErrorCodeUnauthorized.WithArgs() } var tokens, endpoints []string