AzureMonitor: Improve errorsource (#93533)

* Improve errorsource

* Fix imports
This commit is contained in:
Andreas Christou
2024-09-24 12:45:44 -05:00
committed by GitHub
parent 76c8975b4f
commit 564ee32b04
4 changed files with 21 additions and 18 deletions
+12 -2
View File
@@ -3,10 +3,12 @@ package utils
import (
"context"
"encoding/json"
"errors"
"fmt"
"net/http"
"github.com/grafana/grafana-plugin-sdk-go/backend/log"
"github.com/grafana/grafana-plugin-sdk-go/experimental/errorsource"
"github.com/grafana/grafana/pkg/tsdb/azuremonitor/types"
)
@@ -25,7 +27,7 @@ func GetFirstSubscriptionOrDefault(ctx context.Context, dsInfo types.DatasourceI
res, err := dsInfo.Services["Azure Monitor"].HTTPClient.Do(request)
if err != nil {
return "", fmt.Errorf("failed to retrieve subscriptions: %v", err)
return "", errorsource.DownstreamError(fmt.Errorf("failed to retrieve subscriptions: %v", err), false)
}
defer func() {
if err := res.Body.Close(); err != nil {
@@ -39,7 +41,7 @@ func GetFirstSubscriptionOrDefault(ctx context.Context, dsInfo types.DatasourceI
}
if len(subscriptions) == 0 {
return "", fmt.Errorf("no subscriptions found: %v", err)
return "", errorsource.DownstreamError(fmt.Errorf("no subscriptions found: %v", err), false)
}
return subscriptions[0], nil
@@ -68,3 +70,11 @@ func ParseSubscriptions(res *http.Response, logger log.Logger) ([]string, error)
return result, nil
}
func ApplySourceFromError(errorMessage error, err error) error {
var sourceError errorsource.Error
if errors.As(err, &sourceError) {
return errorsource.SourceError(sourceError.Source(), errorMessage, false)
}
return errorMessage
}