diff --git a/cmd/collectors/commonutils.go b/cmd/collectors/commonutils.go index f4249401b..930a6ba69 100644 --- a/cmd/collectors/commonutils.go +++ b/cmd/collectors/commonutils.go @@ -265,3 +265,10 @@ func SplitVscanName(ontapName string) (string, string, string, bool) { } return ontapName[:firstColon], ontapName[firstColon+1 : lastColon], ontapName[lastColon+1:], true } + +func RunPlugin(runPluginIfNoData bool, mat map[string]*matrix.Matrix, err error) (map[string]*matrix.Matrix, error) { + if runPluginIfNoData { + return mat, nil + } + return nil, err +} diff --git a/cmd/collectors/commonutils_test.go b/cmd/collectors/commonutils_test.go index 3a6ea7ec4..2449b638a 100644 --- a/cmd/collectors/commonutils_test.go +++ b/cmd/collectors/commonutils_test.go @@ -1,6 +1,8 @@ package collectors import ( + "errors" + "github.com/netapp/harvest/v2/pkg/errs" "github.com/netapp/harvest/v2/pkg/logging" "github.com/netapp/harvest/v2/pkg/matrix" "github.com/netapp/harvest/v2/pkg/tree/node" @@ -396,3 +398,35 @@ func Test_SplitVscanName(t *testing.T) { }) } } + +func TestRunPlugin(t *testing.T) { + type test struct { + name string + runPluginIfNoData bool + mat map[string]*matrix.Matrix + err error + wantMatrix bool + wantErr error + } + + testMat := make(map[string]*matrix.Matrix) + err := errs.New(errs.ErrConfig, "test Error") + + tests := []test{ + {"runPluginIfNoData_false", false, testMat, err, false, err}, + {"runPluginIfNoData_true", true, testMat, err, true, nil}, + } + + for _, tt := range tests { + t.Run(tt.name, func(t *testing.T) { + got, err := RunPlugin(tt.runPluginIfNoData, tt.mat, tt.err) + if !errors.Is(err, tt.wantErr) { + t.Errorf("RunPlugin() error = %v, wantErr %v", err, tt.wantErr) + return + } + if (got != nil) != tt.wantMatrix { + t.Errorf("RunPlugin() got = %v, wantMatrix %v", got, tt.wantMatrix) + } + }) + } +}