func SetAlertState(cmd *m.SetAlertStateCommand) error { return inTransaction(func(sess *xorm.Session) error { alert := m.Alert{} if has, err := sess.Id(cmd.AlertId).Get(&alert); err != nil { return err } else if !has { return fmt.Errorf("Could not find alert") } 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 { alert.ExecutionError = cmd.Error } sess.Id(alert.Id).Update(&alert) return nil }) }
func PauseAlertRule(cmd *m.PauseAlertCommand) error { return inTransaction(func(sess *xorm.Session) error { alert := m.Alert{} if has, err := sess.Id(cmd.AlertId).Get(&alert); err != nil { return err } else if !has { return fmt.Errorf("Could not find alert") } var newState m.AlertStateType if cmd.Paused { newState = m.AlertStatePaused } else { newState = m.AlertStateNoData } alert.State = newState sess.Id(alert.Id).Update(&alert) return nil }) }
func PauseAlertRule(cmd *m.PauseAlertCommand) error { return inTransaction(func(sess *xorm.Session) error { alert := m.Alert{} has, err := x.Where("id = ? AND org_id=?", cmd.AlertId, cmd.OrgId).Get(&alert) if err != nil { return err } else if !has { return fmt.Errorf("Could not find alert") } var newState m.AlertStateType if cmd.Paused { newState = m.AlertStatePaused } else { newState = m.AlertStatePending } alert.State = newState sess.Id(alert.Id).Update(&alert) return nil }) }