mirror of
https://github.com/grafana/grafana.git
synced 2025-02-25 18:55:37 -06:00
fix(alerting): pause dto can only pause one
This commit is contained in:
parent
a2257ec3d0
commit
b2c5a6a037
@ -259,11 +259,10 @@ func NotificationTest(c *middleware.Context, dto dtos.NotificationTestCommand) R
|
|||||||
|
|
||||||
//POST /api/alerts/:alertId/pause
|
//POST /api/alerts/:alertId/pause
|
||||||
func PauseAlert(c *middleware.Context, dto dtos.PauseAlertCommand) Response {
|
func PauseAlert(c *middleware.Context, dto dtos.PauseAlertCommand) Response {
|
||||||
alertId := c.ParamsInt64("alertId")
|
|
||||||
cmd := models.PauseAlertCommand{
|
cmd := models.PauseAlertCommand{
|
||||||
OrgId: c.OrgId,
|
OrgId: c.OrgId,
|
||||||
AlertIds: []int64{alertId},
|
AlertId: c.ParamsInt64("alertId"),
|
||||||
Paused: dto.Paused,
|
Paused: dto.Paused,
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := bus.Dispatch(&cmd); err != nil {
|
if err := bus.Dispatch(&cmd); err != nil {
|
||||||
@ -278,7 +277,7 @@ func PauseAlert(c *middleware.Context, dto dtos.PauseAlertCommand) Response {
|
|||||||
}
|
}
|
||||||
|
|
||||||
result := map[string]interface{}{
|
result := map[string]interface{}{
|
||||||
"alertId": alertId,
|
"alertId": c.ParamsInt64("alertId"),
|
||||||
"state": response,
|
"state": response,
|
||||||
"message": "alert " + pausedState,
|
"message": "alert " + pausedState,
|
||||||
}
|
}
|
||||||
|
@ -138,10 +138,9 @@ type SaveAlertsCommand struct {
|
|||||||
}
|
}
|
||||||
|
|
||||||
type PauseAlertCommand struct {
|
type PauseAlertCommand struct {
|
||||||
OrgId int64
|
OrgId int64
|
||||||
AlertIds []int64
|
AlertId int64
|
||||||
ResultCount int64
|
Paused bool
|
||||||
Paused bool
|
|
||||||
}
|
}
|
||||||
|
|
||||||
type PauseAllAlertCommand struct {
|
type PauseAllAlertCommand struct {
|
||||||
|
@ -3,7 +3,6 @@ package sqlstore
|
|||||||
import (
|
import (
|
||||||
"bytes"
|
"bytes"
|
||||||
"fmt"
|
"fmt"
|
||||||
"strings"
|
|
||||||
"time"
|
"time"
|
||||||
|
|
||||||
"github.com/go-xorm/xorm"
|
"github.com/go-xorm/xorm"
|
||||||
@ -252,31 +251,18 @@ func SetAlertState(cmd *m.SetAlertStateCommand) error {
|
|||||||
|
|
||||||
func PauseAlert(cmd *m.PauseAlertCommand) error {
|
func PauseAlert(cmd *m.PauseAlertCommand) error {
|
||||||
return inTransaction(func(sess *xorm.Session) error {
|
return inTransaction(func(sess *xorm.Session) error {
|
||||||
if len(cmd.AlertIds) == 0 {
|
|
||||||
return fmt.Errorf("command contains no alertids")
|
|
||||||
}
|
|
||||||
|
|
||||||
var buffer bytes.Buffer
|
|
||||||
params := make([]interface{}, 0)
|
params := make([]interface{}, 0)
|
||||||
|
|
||||||
buffer.WriteString(`UPDATE alert SET state = ?`)
|
sql := `UPDATE alert SET state = ? WHERE id = ?`
|
||||||
if cmd.Paused {
|
if cmd.Paused {
|
||||||
params = append(params, string(m.AlertStatePaused))
|
params = append(params, string(m.AlertStatePaused))
|
||||||
} else {
|
} else {
|
||||||
params = append(params, string(m.AlertStatePending))
|
params = append(params, string(m.AlertStatePending))
|
||||||
}
|
}
|
||||||
|
params = append(params, cmd.AlertId)
|
||||||
|
|
||||||
buffer.WriteString(` WHERE id IN (?` + strings.Repeat(",?", len(cmd.AlertIds)-1) + `)`)
|
_, err := sess.Exec(sql, params...)
|
||||||
for _, v := range cmd.AlertIds {
|
return err
|
||||||
params = append(params, v)
|
|
||||||
}
|
|
||||||
|
|
||||||
res, err := sess.Exec(buffer.String(), params...)
|
|
||||||
if err != nil {
|
|
||||||
return err
|
|
||||||
}
|
|
||||||
cmd.ResultCount, _ = res.RowsAffected()
|
|
||||||
return nil
|
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user