From 7bfdea075ecffe7f80f3a2ae995333ffd5ae0750 Mon Sep 17 00:00:00 2001 From: Alexander Hughes Date: Tue, 11 Feb 2020 11:54:18 -0500 Subject: [PATCH] [#12] Implement RedfishConfigError interface Implement RedfishConfigError Rename RedfishConfigError to follow airship norms IE ErrRedfish... Update unit tests Change-Id: I49051315460b5d261186f32bae6101a752740eae --- pkg/remote/redfish/errors.go | 10 ++++------ pkg/remote/redfish/redfish.go | 18 ++++++++++++++---- pkg/remote/remote_direct_test.go | 4 ++-- 3 files changed, 20 insertions(+), 12 deletions(-) diff --git a/pkg/remote/redfish/errors.go b/pkg/remote/redfish/errors.go index 1a87d6a2c..67ed07981 100644 --- a/pkg/remote/redfish/errors.go +++ b/pkg/remote/redfish/errors.go @@ -17,14 +17,12 @@ func NewRedfishClientErrorf(format string, v ...interface{}) error { return e } -type RedfishConfigError struct { - aerror.AirshipError +type ErrRedfishMissingConfig struct { + What string } -func NewRedfishConfigErrorf(format string, v ...interface{}) error { - e := &RedfishConfigError{} - e.Message = fmt.Sprintf(format, v...) - return e +func (e ErrRedfishMissingConfig) Error() string { + return "missing configuration: " + e.What } // Redfish client return error if response has no body. diff --git a/pkg/remote/redfish/redfish.go b/pkg/remote/redfish/redfish.go index 31357a979..4305db3f7 100644 --- a/pkg/remote/redfish/redfish.go +++ b/pkg/remote/redfish/redfish.go @@ -2,6 +2,7 @@ package redfish import ( "context" + "fmt" "net/url" redfishApi "opendev.org/airship/go-redfish/api" @@ -84,17 +85,23 @@ func NewRedfishRemoteDirectClient(ctx context.Context, ) (RedfishRemoteDirect, error) { if remoteURL == "" { return RedfishRemoteDirect{}, - NewRedfishConfigErrorf("redfish remote url empty") + ErrRedfishMissingConfig{ + What: "redfish remote url empty", + } } if ephNodeID == "" { return RedfishRemoteDirect{}, - NewRedfishConfigErrorf("redfish ephemeral node id empty") + ErrRedfishMissingConfig{ + What: "redfish ephemeral node id empty", + } } if isoPath == "" { return RedfishRemoteDirect{}, - NewRedfishConfigErrorf("redfish ephemeral node iso Path empty") + ErrRedfishMissingConfig{ + What: "redfish ephemeral node iso Path empty", + } } cfg := &redfishClient.Configuration{ @@ -107,7 +114,10 @@ func NewRedfishRemoteDirectClient(ctx context.Context, parsedUrl, err := url.Parse(remoteURL) if err != nil { - return RedfishRemoteDirect{}, NewRedfishConfigErrorf("Invalid URL format: %v", err) + return RedfishRemoteDirect{}, + ErrRedfishMissingConfig{ + What: fmt.Sprintf("invalid url format: %v", err), + } } client := RedfishRemoteDirect{ diff --git a/pkg/remote/remote_direct_test.go b/pkg/remote/remote_direct_test.go index f820c0138..ea349f6dd 100644 --- a/pkg/remote/remote_direct_test.go +++ b/pkg/remote/remote_direct_test.go @@ -52,7 +52,7 @@ func TestRedfishRemoteDirectWithEmptyURL(t *testing.T) { err := DoRemoteDirect(s) - _, ok := err.(*redfish.RedfishConfigError) + _, ok := err.(redfish.ErrRedfishMissingConfig) assert.True(t, ok) } @@ -68,6 +68,6 @@ func TestRedfishRemoteDirectWithEmptyIsoPath(t *testing.T) { err := DoRemoteDirect(s) - _, ok := err.(*redfish.RedfishConfigError) + _, ok := err.(redfish.ErrRedfishMissingConfig) assert.True(t, ok) }