Exemple #1
0
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
	})
}
Exemple #2
0
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
	})
}
Exemple #3
0
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
	})
}