feat(alerting): removes pause per datasource
This commit is contained in:
+2
-44
@@ -287,20 +287,11 @@ func PauseAlert(c *middleware.Context, dto dtos.PauseAlertCommand) Response {
|
||||
}
|
||||
|
||||
//POST /api/alerts/pause
|
||||
func PauseAlerts(c *middleware.Context, dto dtos.PauseAlertsCommand) Response {
|
||||
updateCmd := models.PauseAlertCommand{
|
||||
OrgId: c.OrgId,
|
||||
func PauseAlerts(c *middleware.Context, dto dtos.PauseAllAlertsCommand) Response {
|
||||
updateCmd := models.PauseAllAlertCommand{
|
||||
Paused: dto.Paused,
|
||||
}
|
||||
|
||||
if len(dto.DataSourceIds) > 0 {
|
||||
alertIdsToUpdate, err := getAlertIdsToUpdate(dto)
|
||||
if err != nil {
|
||||
return ApiError(500, "Failed to pause alerts", err)
|
||||
}
|
||||
updateCmd.AlertIds = alertIdsToUpdate
|
||||
}
|
||||
|
||||
if err := bus.Dispatch(&updateCmd); err != nil {
|
||||
return ApiError(500, "Failed to pause alerts", err)
|
||||
}
|
||||
@@ -320,36 +311,3 @@ func PauseAlerts(c *middleware.Context, dto dtos.PauseAlertsCommand) Response {
|
||||
|
||||
return Json(200, result)
|
||||
}
|
||||
|
||||
func getAlertIdsToUpdate(pauseAlertCmd dtos.PauseAlertsCommand) ([]int64, error) {
|
||||
cmd := &models.GetAllAlertsQuery{}
|
||||
if err := bus.Dispatch(cmd); err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
var alertIdsToUpdate []int64
|
||||
for _, alert := range cmd.Result {
|
||||
alert, err := alerting.NewRuleFromDBAlert(alert)
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
|
||||
for _, condition := range alert.Conditions {
|
||||
id, exist := condition.GetDatasourceId()
|
||||
if exist && existInSlice(pauseAlertCmd.DataSourceIds, *id) {
|
||||
alertIdsToUpdate = append(alertIdsToUpdate, alert.Id)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
return alertIdsToUpdate, nil
|
||||
}
|
||||
|
||||
func existInSlice(slice []int64, value int64) bool {
|
||||
for _, v := range slice {
|
||||
if v == value {
|
||||
return true
|
||||
}
|
||||
}
|
||||
return false
|
||||
}
|
||||
|
||||
+1
-1
@@ -256,7 +256,6 @@ func Register(r *macaron.Macaron) {
|
||||
r.Group("/alerts", func() {
|
||||
r.Post("/test", bind(dtos.AlertTestCommand{}), wrap(AlertTest))
|
||||
r.Post("/:alertId/pause", bind(dtos.PauseAlertCommand{}), wrap(PauseAlert), reqEditorRole)
|
||||
r.Post("/pause", bind(dtos.PauseAlertsCommand{}), wrap(PauseAlerts), reqGrafanaAdmin)
|
||||
r.Get("/:alertId", ValidateOrgAlert, wrap(GetAlert))
|
||||
r.Get("/", wrap(GetAlerts))
|
||||
r.Get("/states-for-dashboard", wrap(GetAlertStatesForDashboard))
|
||||
@@ -290,6 +289,7 @@ func Register(r *macaron.Macaron) {
|
||||
r.Get("/users/:id/quotas", wrap(GetUserQuotas))
|
||||
r.Put("/users/:id/quotas/:target", bind(m.UpdateUserQuotaCmd{}), wrap(UpdateUserQuota))
|
||||
r.Get("/stats", AdminGetStats)
|
||||
r.Post("/pause-all-alerts", bind(dtos.PauseAllAlertsCommand{}), wrap(PauseAlerts))
|
||||
}, reqGrafanaAdmin)
|
||||
|
||||
// rendering
|
||||
|
||||
@@ -65,7 +65,6 @@ type PauseAlertCommand struct {
|
||||
Paused bool `json:"paused"`
|
||||
}
|
||||
|
||||
type PauseAlertsCommand struct {
|
||||
DataSourceIds []int64 `json:"datasourceId"`
|
||||
Paused bool `json:"paused"`
|
||||
type PauseAllAlertsCommand struct {
|
||||
Paused bool `json:"paused"`
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user