diff --git a/pkg/config/repo.go b/pkg/config/repo.go index 92c9d1b80..35415f2e9 100644 --- a/pkg/config/repo.go +++ b/pkg/config/repo.go @@ -60,7 +60,7 @@ func (c *RepoCheckout) Validate() error { return ErrMutuallyExclusiveCheckout{} } if c.RemoteRef != "" { - return fmt.Errorf("Repository checkout by RemoteRef is not yet implemented\n%w", errors.ErrNotImplemented{}) + return errors.ErrNotImplemented{What: "repository checkout by RemoteRef"} } return nil } @@ -163,7 +163,7 @@ func (repo *Repository) ToAuth() (transport.AuthMethod, error) { case HTTPBasic: return &http.BasicAuth{Username: repo.Auth.Username, Password: repo.Auth.HTTPPassword}, nil default: - return nil, fmt.Errorf("Error building auth opts, repo\n%s\n: %w", repo.String(), errors.ErrNotImplemented{}) + return nil, errors.ErrNotImplemented{What: fmt.Sprintf("authtype %s", repo.Auth.Type)} } } diff --git a/pkg/errors/common.go b/pkg/errors/common.go index da1087e14..dc823461e 100644 --- a/pkg/errors/common.go +++ b/pkg/errors/common.go @@ -14,23 +14,16 @@ package errors -// AirshipError is the base error type -// used to create extended error types -// in other airshipctl packages. -type AirshipError struct { - Message string -} +import "fmt" -// Error function implements the golang -// error interface -func (ae *AirshipError) Error() string { - return ae.Message -} - -// ErrNotImplemented returned for not implemented features +// ErrNotImplemented returned for features not yet implemented type ErrNotImplemented struct { + What string } func (e ErrNotImplemented) Error() string { - return "Not implemented" + if e.What != "" { + return fmt.Sprintf("not implemented: %s", e.What) + } + return "not implemented" } diff --git a/pkg/remote/errors.go b/pkg/remote/errors.go index de8021101..a69a5d32d 100644 --- a/pkg/remote/errors.go +++ b/pkg/remote/errors.go @@ -16,8 +16,6 @@ package remote import ( "fmt" - - aerror "opendev.org/airship/airshipctl/pkg/errors" ) // TODO: This need to be refactored to match the error format used elsewhere in airshipctl @@ -25,20 +23,21 @@ import ( // GenericError provides general feedback about an error that occurred in a remote operation type GenericError struct { - aerror.AirshipError + Message string } // NewRemoteDirectErrorf retruns formatted remote direct errors func NewRemoteDirectErrorf(format string, v ...interface{}) error { - e := &GenericError{} - e.Message = fmt.Sprintf(format, v...) - return e + return &GenericError{Message: fmt.Sprintf(format, v...)} +} + +func (e GenericError) Error() string { + return e.Message } // ErrUnknownManagementType is an error that indicates the remote type specified in the airshipctl management // configuration (e.g. redfish, redfish-dell) is not supported. type ErrUnknownManagementType struct { - aerror.AirshipError Type string } @@ -49,7 +48,6 @@ func (e ErrUnknownManagementType) Error() string { // ErrMissingBootstrapInfoOption is an error that indicates a bootstrap option is missing in the airshipctl // bootstrapInfo configuration. type ErrMissingBootstrapInfoOption struct { - aerror.AirshipError What string } diff --git a/pkg/remote/redfish/errors.go b/pkg/remote/redfish/errors.go index 183bc568f..54ca0a8de 100644 --- a/pkg/remote/redfish/errors.go +++ b/pkg/remote/redfish/errors.go @@ -16,13 +16,10 @@ package redfish import ( "fmt" - - aerror "opendev.org/airship/airshipctl/pkg/errors" ) // ErrRedfishClient describes an error encountered by the go-redfish client. type ErrRedfishClient struct { - aerror.AirshipError Message string } @@ -51,7 +48,6 @@ func (e ErrOperationRetriesExceeded) Error() string { // ErrUnrecognizedRedfishResponse is a debug error that describes unexpected formats in a Redfish error response. type ErrUnrecognizedRedfishResponse struct { - aerror.AirshipError Key string }