From 0fa9199f781ecd27469ca192496ce7b8e24980b1 Mon Sep 17 00:00:00 2001 From: Michael Crosby Date: Mon, 3 Feb 2014 11:38:34 -0800 Subject: [PATCH] Fix login prompt on push and pull because of error message Docker-DCO-1.1-Signed-off-by: Michael Crosby (github: crosbymichael) --- commands.go | 4 ++-- registry/registry.go | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/commands.go b/commands.go index e6a9a7387c..15d4507030 100644 --- a/commands.go +++ b/commands.go @@ -1047,7 +1047,7 @@ func (cli *DockerCli) CmdPush(args ...string) error { } if err := push(authConfig); err != nil { - if err.Error() == registry.ErrLoginRequired.Error() { + if strings.Contains(err.Error(), "Status 401") { fmt.Fprintln(cli.out, "\nPlease login prior to push:") if err := cli.CmdLogin(endpoint); err != nil { return err @@ -1106,7 +1106,7 @@ func (cli *DockerCli) CmdPull(args ...string) error { } if err := pull(authConfig); err != nil { - if err.Error() == registry.ErrLoginRequired.Error() { + if strings.Contains(err.Error(), "Status 401") { fmt.Fprintln(cli.out, "\nPlease login prior to pull:") if err := cli.CmdLogin(endpoint); err != nil { return err diff --git a/registry/registry.go b/registry/registry.go index c0d8414de0..df94302305 100644 --- a/registry/registry.go +++ b/registry/registry.go @@ -22,7 +22,7 @@ import ( var ( ErrAlreadyExists = errors.New("Image already exists") ErrInvalidRepositoryName = errors.New("Invalid repository name (ex: \"registry.domain.tld/myrepos\")") - ErrLoginRequired = errors.New("Authentication is required.") + errLoginRequired = errors.New("Authentication is required.") ) func pingRegistryEndpoint(endpoint string) (bool, error) { @@ -186,7 +186,7 @@ func (r *Registry) GetRemoteHistory(imgID, registry string, token []string) ([]s defer res.Body.Close() if res.StatusCode != 200 { if res.StatusCode == 401 { - return nil, ErrLoginRequired + return nil, errLoginRequired } return nil, utils.NewHTTPRequestError(fmt.Sprintf("Server error: %d trying to fetch remote history for %s", res.StatusCode, imgID), res) } @@ -332,7 +332,7 @@ func (r *Registry) GetRepositoryData(remote string) (*RepositoryData, error) { } defer res.Body.Close() if res.StatusCode == 401 { - return nil, ErrLoginRequired + return nil, errLoginRequired } // TODO: Right now we're ignoring checksums in the response body. // In the future, we need to use them to check image validity.