summaryrefslogtreecommitdiff
path: root/distribution/errors.go
diff options
context:
space:
mode:
authorSebastiaan van Stijn <github@gone.nl>2018-08-03 15:41:05 +0200
committerSebastiaan van Stijn <github@gone.nl>2018-08-03 16:12:44 +0200
commit99fc4ca2bd5071d55cfbf4f63a1465c5aa0f146a (patch)
treebd529a1e86b845c1c7c07e23b0acd9e2e0a11ebb /distribution/errors.go
parent75fe41444009947d319f76e68b5e1f2124c79b4d (diff)
downloaddocker-99fc4ca2bd5071d55cfbf4f63a1465c5aa0f146a.tar.gz
Include original error when translating distribution errors
Before: curl -v -X POST --unix-socket /var/run/docker.sock "http://localhost/images/create?fromImage=library/busybox:lsfkjsdflkjsdf" {"message":"manifest for busybox:lsfkjsdflkjsdf not found"} curl -v -X POST --unix-socket /var/run/docker.sock "http://localhost/images/create?fromImage=library/nosuchimage:latest" {"message":"pull access denied for nosuchimage, repository does not exist or may require 'docker login'"} After: curl -v -X POST --unix-socket /var/run/docker.sock "http://localhost/images/create?fromImage=library/busybox:lsfkjsdflkjsdf" {"message":"manifest for busybox:lsfkjsdflkjsdf not found: manifest unknown: manifest unknown"} curl -v -X POST --unix-socket /var/run/docker.sock "http://localhost/images/create?fromImage=library/nosuchimage:latest" {"message":"pull access denied for nosuchimage, repository does not exist or may require 'docker login': denied: requested access to the resource is denied"} Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
Diffstat (limited to 'distribution/errors.go')
-rw-r--r--distribution/errors.go7
1 files changed, 4 insertions, 3 deletions
diff --git a/distribution/errors.go b/distribution/errors.go
index e2913d45d6..9dc5955f26 100644
--- a/distribution/errors.go
+++ b/distribution/errors.go
@@ -14,6 +14,7 @@ import (
"github.com/docker/distribution/registry/client/auth"
"github.com/docker/docker/distribution/xfer"
"github.com/docker/docker/errdefs"
+ "github.com/pkg/errors"
"github.com/sirupsen/logrus"
)
@@ -70,11 +71,11 @@ func (e notFoundError) Error() string {
switch e.cause.Code {
case errcode.ErrorCodeDenied:
// ErrorCodeDenied is used when access to the repository was denied
- return fmt.Sprintf("pull access denied for %s, repository does not exist or may require 'docker login'", reference.FamiliarName(e.ref))
+ return errors.Wrapf(e.cause, "pull access denied for %s, repository does not exist or may require 'docker login'", reference.FamiliarName(e.ref)).Error()
case v2.ErrorCodeManifestUnknown:
- return fmt.Sprintf("manifest for %s not found", reference.FamiliarString(e.ref))
+ return errors.Wrapf(e.cause, "manifest for %s not found", reference.FamiliarString(e.ref)).Error()
case v2.ErrorCodeNameUnknown:
- return fmt.Sprintf("repository %s not found", reference.FamiliarName(e.ref))
+ return errors.Wrapf(e.cause, "repository %s not found", reference.FamiliarName(e.ref)).Error()
}
// Shouldn't get here, but this is better than returning an empty string
return e.cause.Message