Skip to content

Commit 4977273

Browse files
authored
Merge pull request #292 from thaJeztah/errors_improvements
credentials: improve errors and error-handling
2 parents bd83e02 + a228f55 commit 4977273

File tree

1 file changed

+25
-6
lines changed

1 file changed

+25
-6
lines changed

credentials/error.go

Lines changed: 25 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,7 @@
11
package credentials
22

3+
import "errors"
4+
35
const (
46
// ErrCredentialsNotFound standardizes the not found error, so every helper returns
57
// the same message and docker can handle it properly.
@@ -21,6 +23,11 @@ func (errCredentialsNotFound) Error() string {
2123
return errCredentialsNotFoundMessage
2224
}
2325

26+
// NotFound implements the [ErrNotFound][errdefs.ErrNotFound] interface.
27+
//
28+
// [errdefs.ErrNotFound]: https://pkg.go.dev/github.com/docker/[email protected]+incompatible/errdefs#ErrNotFound
29+
func (errCredentialsNotFound) NotFound() {}
30+
2431
// NewErrCredentialsNotFound creates a new error
2532
// for when the credentials are not in the store.
2633
func NewErrCredentialsNotFound() error {
@@ -30,8 +37,8 @@ func NewErrCredentialsNotFound() error {
3037
// IsErrCredentialsNotFound returns true if the error
3138
// was caused by not having a set of credentials in a store.
3239
func IsErrCredentialsNotFound(err error) bool {
33-
_, ok := err.(errCredentialsNotFound)
34-
return ok
40+
var target errCredentialsNotFound
41+
return errors.As(err, &target)
3542
}
3643

3744
// IsErrCredentialsNotFoundMessage returns true if the error
@@ -53,6 +60,12 @@ func (errCredentialsMissingServerURL) Error() string {
5360
return errCredentialsMissingServerURLMessage
5461
}
5562

63+
// InvalidParameter implements the [ErrInvalidParameter][errdefs.ErrInvalidParameter]
64+
// interface.
65+
//
66+
// [errdefs.ErrInvalidParameter]: https://pkg.go.dev/github.com/docker/[email protected]+incompatible/errdefs#ErrInvalidParameter
67+
func (errCredentialsMissingServerURL) InvalidParameter() {}
68+
5669
// errCredentialsMissingUsername represents an error raised
5770
// when the credentials object has no username or when no
5871
// username is provided to a credentials operation requiring
@@ -63,6 +76,12 @@ func (errCredentialsMissingUsername) Error() string {
6376
return errCredentialsMissingUsernameMessage
6477
}
6578

79+
// InvalidParameter implements the [ErrInvalidParameter][errdefs.ErrInvalidParameter]
80+
// interface.
81+
//
82+
// [errdefs.ErrInvalidParameter]: https://pkg.go.dev/github.com/docker/[email protected]+incompatible/errdefs#ErrInvalidParameter
83+
func (errCredentialsMissingUsername) InvalidParameter() {}
84+
6685
// NewErrCredentialsMissingServerURL creates a new error for
6786
// errCredentialsMissingServerURL.
6887
func NewErrCredentialsMissingServerURL() error {
@@ -78,8 +97,8 @@ func NewErrCredentialsMissingUsername() error {
7897
// IsCredentialsMissingServerURL returns true if the error
7998
// was an errCredentialsMissingServerURL.
8099
func IsCredentialsMissingServerURL(err error) bool {
81-
_, ok := err.(errCredentialsMissingServerURL)
82-
return ok
100+
var target errCredentialsMissingServerURL
101+
return errors.As(err, &target)
83102
}
84103

85104
// IsCredentialsMissingServerURLMessage checks for an
@@ -91,8 +110,8 @@ func IsCredentialsMissingServerURLMessage(err string) bool {
91110
// IsCredentialsMissingUsername returns true if the error
92111
// was an errCredentialsMissingUsername.
93112
func IsCredentialsMissingUsername(err error) bool {
94-
_, ok := err.(errCredentialsMissingUsername)
95-
return ok
113+
var target errCredentialsMissingUsername
114+
return errors.As(err, &target)
96115
}
97116

98117
// IsCredentialsMissingUsernameMessage checks for an

0 commit comments

Comments
 (0)