mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
Change alertValidator return type
This commit is contained in:
parent
f728ece2db
commit
ad933863e3
@ -10,6 +10,6 @@ const (
|
||||
)
|
||||
|
||||
type alertValidator struct {
|
||||
aFunc func(*models.Alert) (bool, string)
|
||||
aFunc func(*models.Alert) error
|
||||
aSeverity validatorSeverity
|
||||
}
|
||||
|
@ -197,8 +197,8 @@ func (e *DashAlertExtractor) getAlertFromPanels(jsonWithPanels *simplejson.Json,
|
||||
validationErrors := strings.Builder{}
|
||||
validationWarnings := strings.Builder{}
|
||||
for _, validator := range validators {
|
||||
ok, reason := validator.aFunc(alert)
|
||||
if ok {
|
||||
err := validator.aFunc(alert)
|
||||
if err == nil {
|
||||
continue
|
||||
}
|
||||
|
||||
@ -207,12 +207,12 @@ func (e *DashAlertExtractor) getAlertFromPanels(jsonWithPanels *simplejson.Json,
|
||||
if validationErrors.Len() > 0 {
|
||||
validationErrors.WriteString("\n")
|
||||
}
|
||||
validationErrors.WriteString(reason)
|
||||
validationErrors.WriteString(err.Error())
|
||||
case alertWarning:
|
||||
if validationWarnings.Len() > 0 {
|
||||
validationErrors.WriteString("\n")
|
||||
}
|
||||
validationWarnings.WriteString(reason)
|
||||
validationWarnings.WriteString(err.Error())
|
||||
}
|
||||
}
|
||||
if validationErrors.String() != "" {
|
||||
@ -228,15 +228,14 @@ func (e *DashAlertExtractor) getAlertFromPanels(jsonWithPanels *simplejson.Json,
|
||||
return alerts, nil
|
||||
}
|
||||
|
||||
func validateAlertRule(alert *models.Alert) (ok bool, reason string) {
|
||||
ok = alert.ValidToSave()
|
||||
if !ok {
|
||||
reason = fmt.Sprintf("Dashboard ID, Org ID or Panel ID is not correct, alertName=%v, panelId=%v, orgId=%v, dashboardId=%v", alert.Name, alert.PanelId, alert.OrgId, alert.DashboardId)
|
||||
func validateAlertRule(alert *models.Alert) (err error) {
|
||||
if !alert.ValidToSave() {
|
||||
err = fmt.Errorf("Dashboard ID, Org ID or Panel ID is not correct, alertName=%v, panelId=%v, orgId=%v, dashboardId=%v", alert.Name, alert.PanelId, alert.OrgId, alert.DashboardId)
|
||||
}
|
||||
return ok, reason
|
||||
return err
|
||||
}
|
||||
|
||||
func validAlertJSON(alert *models.Alert) (ok bool, reason string) {
|
||||
func validAlertJSON(alert *models.Alert) (err error) {
|
||||
warnings := strings.Builder{}
|
||||
for _, v := range alert.Settings.Get("notifications").MustArray() {
|
||||
jsonModel := simplejson.NewFromAny(v)
|
||||
@ -249,14 +248,16 @@ func validAlertJSON(alert *models.Alert) (ok bool, reason string) {
|
||||
continue
|
||||
}
|
||||
|
||||
ok = false
|
||||
if warnings.Len() > 0 {
|
||||
warnings.WriteString("\n")
|
||||
}
|
||||
warnings.WriteString(fmt.Sprintf("Alert contains notification identified by incorrect ID, alertName=%v, panelId=%v, notificationId=%v", alert.Name, alert.PanelId, id))
|
||||
}
|
||||
reason = warnings.String()
|
||||
return ok, reason
|
||||
reason := warnings.String()
|
||||
if reason != "" {
|
||||
err = fmt.Errorf(reason)
|
||||
}
|
||||
return err
|
||||
}
|
||||
|
||||
// GetAlerts extracts alerts from the dashboard json and does full validation on the alert json data.
|
||||
@ -312,12 +313,12 @@ func (e *DashAlertExtractor) extractAlerts(validators ...alertValidator) ([]*mod
|
||||
// in the first validation pass.
|
||||
func (e *DashAlertExtractor) ValidateAlerts() error {
|
||||
_, err := e.extractAlerts(alertValidator{
|
||||
aFunc: func(alert *models.Alert) (ok bool, reason string) {
|
||||
ok = alert.OrgId != 0 && alert.PanelId != 0
|
||||
aFunc: func(alert *models.Alert) (err error) {
|
||||
ok := alert.OrgId != 0 && alert.PanelId != 0
|
||||
if !ok {
|
||||
reason = fmt.Sprintf("Org ID or Panel ID is not correct, alertName=%v, panelId=%v, orgId=%v", alert.Name, alert.PanelId, alert.OrgId)
|
||||
err = fmt.Errorf("Org ID or Panel ID is not correct, alertName=%v, panelId=%v, orgId=%v", alert.Name, alert.PanelId, alert.OrgId)
|
||||
}
|
||||
return ok, reason
|
||||
return err
|
||||
},
|
||||
aSeverity: alertError,
|
||||
})
|
||||
|
Loading…
Reference in New Issue
Block a user