AzureMonitor: Improve errorsource (#93533)
* Improve errorsource * Fix imports
This commit is contained in:
@@ -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
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user