mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Chore: Replace go-multierror with errors package (#66432)
* code refactor and type assertions added to tests * no-lint rule added for specific line
This commit is contained in:
@@ -2,6 +2,7 @@ package state
|
||||
|
||||
import (
|
||||
"context"
|
||||
"errors"
|
||||
"math"
|
||||
"net/url"
|
||||
"strings"
|
||||
@@ -9,7 +10,6 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/grafana/grafana-plugin-sdk-go/data"
|
||||
"github.com/hashicorp/go-multierror"
|
||||
|
||||
"github.com/grafana/grafana/pkg/infra/log"
|
||||
"github.com/grafana/grafana/pkg/services/ngalert/eval"
|
||||
@@ -161,21 +161,21 @@ func calculateState(ctx context.Context, log log.Logger, alertRule *ngModels.Ale
|
||||
// template.ExpandError errors.
|
||||
func expand(ctx context.Context, log log.Logger, name string, original map[string]string, data template.Data, externalURL *url.URL, evaluatedAt time.Time) (map[string]string, error) {
|
||||
var (
|
||||
errs *multierror.Error
|
||||
errs error
|
||||
expanded = make(map[string]string, len(original))
|
||||
)
|
||||
for k, v := range original {
|
||||
result, err := template.Expand(ctx, name, v, data, externalURL, evaluatedAt)
|
||||
if err != nil {
|
||||
log.Error("Error in expanding template", "error", err)
|
||||
errs = multierror.Append(errs, err)
|
||||
errs = errors.Join(errs, err)
|
||||
// keep the original template on error
|
||||
expanded[k] = v
|
||||
} else {
|
||||
expanded[k] = result
|
||||
}
|
||||
}
|
||||
return expanded, errs.ErrorOrNil()
|
||||
return expanded, errs
|
||||
}
|
||||
|
||||
func (rs *ruleStates) deleteStates(predicate func(s *State) bool) []*State {
|
||||
|
||||
@@ -9,7 +9,6 @@ import (
|
||||
"time"
|
||||
|
||||
"github.com/grafana/grafana-plugin-sdk-go/data"
|
||||
"github.com/hashicorp/go-multierror"
|
||||
"github.com/stretchr/testify/assert"
|
||||
"github.com/stretchr/testify/require"
|
||||
|
||||
@@ -67,14 +66,15 @@ func Test_expand(t *testing.T) {
|
||||
require.NotNil(t, err)
|
||||
require.Equal(t, original, results)
|
||||
|
||||
// TODO: Please update this test in issue https://github.com/grafana/grafana/issues/63686
|
||||
var multierr *multierror.Error
|
||||
require.True(t, errors.As(err, &multierr))
|
||||
require.Equal(t, multierr.Len(), 2)
|
||||
//nolint:errorlint
|
||||
multierr, is := err.(interface{ Unwrap() []error })
|
||||
require.True(t, is)
|
||||
unwrappedErrors := multierr.Unwrap()
|
||||
require.Equal(t, len(unwrappedErrors), 2)
|
||||
|
||||
errsStr := []string{
|
||||
multierr.Errors[0].Error(),
|
||||
multierr.Errors[1].Error(),
|
||||
unwrappedErrors[0].Error(),
|
||||
unwrappedErrors[1].Error(),
|
||||
}
|
||||
|
||||
firstErrStr := "failed to expand template '{{- $labels := .Labels -}}{{- $values := .Values -}}{{- $value := .Value -}}Instance {{ $labels. }} has been down for more than 5 minutes': error parsing template __alert_test: template: __alert_test:1: unexpected <.> in operand"
|
||||
@@ -83,7 +83,7 @@ func Test_expand(t *testing.T) {
|
||||
require.Contains(t, errsStr, firstErrStr)
|
||||
require.Contains(t, errsStr, secondErrStr)
|
||||
|
||||
for _, err := range multierr.Errors {
|
||||
for _, err := range unwrappedErrors {
|
||||
var expandErr template.ExpandError
|
||||
require.True(t, errors.As(err, &expandErr))
|
||||
}
|
||||
@@ -103,10 +103,11 @@ func Test_expand(t *testing.T) {
|
||||
require.NotNil(t, err)
|
||||
require.Equal(t, expected, results)
|
||||
|
||||
// TODO: Please update this test in issue https://github.com/grafana/grafana/issues/63686
|
||||
var multierr *multierror.Error
|
||||
require.True(t, errors.As(err, &multierr))
|
||||
require.Equal(t, multierr.Len(), 1)
|
||||
//nolint:errorlint
|
||||
multierr, is := err.(interface{ Unwrap() []error })
|
||||
require.True(t, is)
|
||||
unwrappedErrors := multierr.Unwrap()
|
||||
require.Equal(t, len(unwrappedErrors), 1)
|
||||
|
||||
// assert each error matches the expected error
|
||||
var expandErr template.ExpandError
|
||||
|
||||
Reference in New Issue
Block a user