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.