From a23b7f137127f813f36ab916fa3c608f0f4f0759 Mon Sep 17 00:00:00 2001 From: bergquist Date: Wed, 14 Sep 2016 14:35:05 +0200 Subject: [PATCH] fix(alerting): add missing evaldata field to set state command --- pkg/models/alert.go | 10 ++++++---- pkg/services/alerting/result_handler.go | 9 +++++---- pkg/services/sqlstore/alert.go | 2 ++ 3 files changed, 13 insertions(+), 8 deletions(-) diff --git a/pkg/models/alert.go b/pkg/models/alert.go index 850ff22cec4..bf21b8e5ec6 100644 --- a/pkg/models/alert.go +++ b/pkg/models/alert.go @@ -102,10 +102,12 @@ type SaveAlertsCommand struct { } type SetAlertStateCommand struct { - AlertId int64 - OrgId int64 - State AlertStateType - Error string + AlertId int64 + OrgId int64 + State AlertStateType + Error string + EvalData *simplejson.Json + Timestamp time.Time } diff --git a/pkg/services/alerting/result_handler.go b/pkg/services/alerting/result_handler.go index 2f9572dcf80..bb9f46d6084 100644 --- a/pkg/services/alerting/result_handler.go +++ b/pkg/services/alerting/result_handler.go @@ -54,10 +54,11 @@ func (handler *DefaultResultHandler) Handle(ctx *EvalContext) { handler.log.Info("New state change", "alertId", ctx.Rule.Id, "newState", ctx.Rule.State, "oldState", oldState) cmd := &m.SetAlertStateCommand{ - AlertId: ctx.Rule.Id, - OrgId: ctx.Rule.OrgId, - State: ctx.Rule.State, - Error: exeuctionError, + AlertId: ctx.Rule.Id, + OrgId: ctx.Rule.OrgId, + State: ctx.Rule.State, + Error: exeuctionError, + EvalData: annotationData, } if err := bus.Dispatch(cmd); err != nil { diff --git a/pkg/services/sqlstore/alert.go b/pkg/services/sqlstore/alert.go index 30eb2172c69..db8ae666e3a 100644 --- a/pkg/services/sqlstore/alert.go +++ b/pkg/services/sqlstore/alert.go @@ -227,6 +227,8 @@ func SetAlertState(cmd *m.SetAlertStateCommand) error { alert.State = cmd.State alert.StateChanges += 1 alert.NewStateDate = time.Now() + alert.EvalData = cmd.EvalData + if cmd.Error == "" { alert.ExecutionError = " " //without this space, xorm skips updating this field } else {