From 5f3169aad9d6fb130b0d8efbaac13454dbc99d8b Mon Sep 17 00:00:00 2001 From: Rahul Gupta Date: Tue, 8 Nov 2022 19:21:40 +0530 Subject: [PATCH] fix: handle error when no instances found for plugins in Rest --- cmd/collectors/commonutils.go | 5 ++--- cmd/collectors/rest/plugins/certificate/certificate.go | 4 ++-- cmd/collectors/rest/plugins/qtree/qtree.go | 2 +- cmd/collectors/rest/plugins/volume/volume.go | 2 +- 4 files changed, 6 insertions(+), 7 deletions(-) diff --git a/cmd/collectors/commonutils.go b/cmd/collectors/commonutils.go index 4576d4340..788b603b2 100644 --- a/cmd/collectors/commonutils.go +++ b/cmd/collectors/commonutils.go @@ -3,7 +3,6 @@ package collectors import ( "github.com/netapp/harvest/v2/cmd/tools/rest" "github.com/netapp/harvest/v2/pkg/api/ontapi/zapi" - "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" @@ -12,7 +11,7 @@ import ( "time" ) -func InvokeRestCall(client *rest.Client, query string, href string, logger *logging.Logger) ([]gjson.Result, error) { +func InvokeRestCall(client *rest.Client, href string, logger *logging.Logger) ([]gjson.Result, error) { result, err := rest.Fetch(client, href) if err != nil { logger.Error().Err(err).Str("href", href).Msg("Failed to fetch data") @@ -20,7 +19,7 @@ func InvokeRestCall(client *rest.Client, query string, href string, logger *logg } if len(result) == 0 { - return []gjson.Result{}, errs.New(errs.ErrNoInstance, "no "+query+" instances on cluster") + return []gjson.Result{}, nil } return result, nil diff --git a/cmd/collectors/rest/plugins/certificate/certificate.go b/cmd/collectors/rest/plugins/certificate/certificate.go index 9199acbf2..3d19a16b0 100644 --- a/cmd/collectors/rest/plugins/certificate/certificate.go +++ b/cmd/collectors/rest/plugins/certificate/certificate.go @@ -220,7 +220,7 @@ func (my *Certificate) GetAdminVserver() (string, error) { query := "api/private/cli/vserver" href := rest.BuildHref("", "type", []string{"type=admin"}, "", "", "", "", query) - if result, err = collectors.InvokeRestCall(my.client, query, href, my.Logger); err != nil { + if result, err = collectors.InvokeRestCall(my.client, href, my.Logger); err != nil { return "", err } @@ -242,7 +242,7 @@ func (my *Certificate) GetSecuritySsl(adminSvm string) (string, error) { query := "api/private/cli/security/ssl" href := rest.BuildHref("", "serial", []string{"vserver=" + adminSvm}, "", "", "", "", query) - if result, err = collectors.InvokeRestCall(my.client, query, href, my.Logger); err != nil { + if result, err = collectors.InvokeRestCall(my.client, href, my.Logger); err != nil { return "", err } diff --git a/cmd/collectors/rest/plugins/qtree/qtree.go b/cmd/collectors/rest/plugins/qtree/qtree.go index d492b9c3b..6d6738aa8 100644 --- a/cmd/collectors/rest/plugins/qtree/qtree.go +++ b/cmd/collectors/rest/plugins/qtree/qtree.go @@ -122,7 +122,7 @@ func (my *Qtree) Run(data *matrix.Matrix) ([]*matrix.Matrix, error) { href := rest.BuildHref("", "*", filter, "", "", "", "", my.query) - if result, err = collectors.InvokeRestCall(my.client, my.query, href, my.Logger); err != nil { + if result, err = collectors.InvokeRestCall(my.client, href, my.Logger); err != nil { return nil, err } diff --git a/cmd/collectors/rest/plugins/volume/volume.go b/cmd/collectors/rest/plugins/volume/volume.go index dfcba03a6..f24aee502 100644 --- a/cmd/collectors/rest/plugins/volume/volume.go +++ b/cmd/collectors/rest/plugins/volume/volume.go @@ -108,7 +108,7 @@ func (my *Volume) getEncryptedDisks() ([]gjson.Result, error) { query := "api/storage/disks" href := rest.BuildHref("", strings.Join(diskFields, ","), []string{"protection_mode=!data|full"}, "", "", "", "", query) - if result, err = collectors.InvokeRestCall(my.client, query, href, my.Logger); err != nil { + if result, err = collectors.InvokeRestCall(my.client, href, my.Logger); err != nil { return nil, err } return result, nil