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>
| ... | ... |
@@ -14,6 +14,7 @@ import ( |
| 14 | 14 |
"github.com/docker/distribution/registry/client/auth" |
| 15 | 15 |
"github.com/docker/docker/distribution/xfer" |
| 16 | 16 |
"github.com/docker/docker/errdefs" |
| 17 |
+ "github.com/pkg/errors" |
|
| 17 | 18 |
"github.com/sirupsen/logrus" |
| 18 | 19 |
) |
| 19 | 20 |
|
| ... | ... |
@@ -70,11 +71,11 @@ func (e notFoundError) Error() string {
|
| 70 | 70 |
switch e.cause.Code {
|
| 71 | 71 |
case errcode.ErrorCodeDenied: |
| 72 | 72 |
// ErrorCodeDenied is used when access to the repository was denied |
| 73 |
- return fmt.Sprintf("pull access denied for %s, repository does not exist or may require 'docker login'", reference.FamiliarName(e.ref))
|
|
| 73 |
+ return errors.Wrapf(e.cause, "pull access denied for %s, repository does not exist or may require 'docker login'", reference.FamiliarName(e.ref)).Error() |
|
| 74 | 74 |
case v2.ErrorCodeManifestUnknown: |
| 75 |
- return fmt.Sprintf("manifest for %s not found", reference.FamiliarString(e.ref))
|
|
| 75 |
+ return errors.Wrapf(e.cause, "manifest for %s not found", reference.FamiliarString(e.ref)).Error() |
|
| 76 | 76 |
case v2.ErrorCodeNameUnknown: |
| 77 |
- return fmt.Sprintf("repository %s not found", reference.FamiliarName(e.ref))
|
|
| 77 |
+ return errors.Wrapf(e.cause, "repository %s not found", reference.FamiliarName(e.ref)).Error() |
|
| 78 | 78 |
} |
| 79 | 79 |
// Shouldn't get here, but this is better than returning an empty string |
| 80 | 80 |
return e.cause.Message |