mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
80 lines
1.9 KiB
Go
80 lines
1.9 KiB
Go
package query
|
|
|
|
import (
|
|
"errors"
|
|
"fmt"
|
|
|
|
"github.com/grafana/grafana/pkg/apimachinery/errutil"
|
|
)
|
|
|
|
var QueryError = errutil.BadRequest("query.error").MustTemplate(
|
|
"failed to execute query [{{ .Public.refId }}]: {{ .Error }}",
|
|
errutil.WithPublic(
|
|
"failed to execute query [{{ .Public.refId }}]: {{ .Public.error }}",
|
|
))
|
|
|
|
func MakeQueryError(refID, err error) error {
|
|
var pErr error
|
|
var utilErr errutil.Error
|
|
// See if this is grafana error, if so, grab public message
|
|
if errors.As(err, &utilErr) {
|
|
pErr = utilErr.Public()
|
|
} else {
|
|
pErr = err
|
|
}
|
|
|
|
data := errutil.TemplateData{
|
|
Public: map[string]any{
|
|
"refId": refID,
|
|
"error": pErr.Error(),
|
|
},
|
|
Error: err,
|
|
}
|
|
|
|
return QueryError.Build(data)
|
|
}
|
|
|
|
func MakePublicQueryError(refID, err string) error {
|
|
data := errutil.TemplateData{
|
|
Public: map[string]any{
|
|
"refId": refID,
|
|
"error": err,
|
|
},
|
|
}
|
|
return QueryError.Build(data)
|
|
}
|
|
|
|
var depErrStr = "did not execute expression [{{ .Public.refId }}] due to a failure to of the dependent expression or query [{{.Public.depRefId}}]"
|
|
|
|
var dependencyError = errutil.BadRequest("sse.dependencyError").MustTemplate(
|
|
depErrStr,
|
|
errutil.WithPublic(depErrStr))
|
|
|
|
func makeDependencyError(refID, depRefID string) error {
|
|
data := errutil.TemplateData{
|
|
Public: map[string]interface{}{
|
|
"refId": refID,
|
|
"depRefId": depRefID,
|
|
},
|
|
Error: fmt.Errorf("did not execute expression %v due to a failure to of the dependent expression or query %v", refID, depRefID),
|
|
}
|
|
|
|
return dependencyError.Build(data)
|
|
}
|
|
|
|
var cyclicErrStr = "cyclic reference in expression [{{ .Public.refId }}]"
|
|
|
|
var cyclicErr = errutil.BadRequest("sse.cyclic").MustTemplate(
|
|
cyclicErrStr,
|
|
errutil.WithPublic(cyclicErrStr))
|
|
|
|
func makeCyclicError(refID string) error {
|
|
data := errutil.TemplateData{
|
|
Public: map[string]interface{}{
|
|
"refId": refID,
|
|
},
|
|
Error: fmt.Errorf("cyclic reference in %s", refID),
|
|
}
|
|
return cyclicErr.Build(data)
|
|
}
|