Files
grafana/pkg/services/ngalert/validator.go

34 lines
831 B
Go
Raw Normal View History

package ngalert
import (
"fmt"
"github.com/grafana/grafana/pkg/expr"
"github.com/grafana/grafana/pkg/models"
)
// validateAlertDefinition validates that the alert definition contains at least one alert query
// and that alert queries refer to existing datasources.
func (ng *AlertNG) validateAlertDefinition(alertDefinition *AlertDefinition, signedInUser *models.SignedInUser, skipCache bool) error {
if len(alertDefinition.Data) == 0 {
return fmt.Errorf("no queries or expressions are found")
}
for _, query := range alertDefinition.Data {
datasourceID, err := query.GetDatasource()
if err != nil {
return err
}
if datasourceID == expr.DatasourceID {
return nil
}
_, err = ng.DatasourceCache.GetDatasource(datasourceID, signedInUser, skipCache)
if err != nil {
return err
}
}
return nil
}