|
|
@@ -152,7 +152,14 @@ func DeleteAlertDefinition(dashboardId int64, sess *xorm.Session) error {
|
|
|
|
|
|
sqlog.Debug("Alert deleted (due to dashboard deletion)", "name", alert.Name, "id", alert.Id)
|
|
|
|
|
|
- if err := SaveAlertChange("DELETED", alert, sess); err != nil {
|
|
|
+ cmd := &m.CreateAlertChangeCommand{
|
|
|
+ Type: "DELETED",
|
|
|
+ UpdatedBy: 1,
|
|
|
+ AlertId: alert.Id,
|
|
|
+ OrgId: alert.OrgId,
|
|
|
+ NewAlertSettings: alert.Settings,
|
|
|
+ }
|
|
|
+ if err := SaveAlertChange(cmd, sess); err != nil {
|
|
|
return err
|
|
|
}
|
|
|
}
|
|
|
@@ -167,15 +174,15 @@ func SaveAlerts(cmd *m.SaveAlertsCommand) error {
|
|
|
return err
|
|
|
}
|
|
|
|
|
|
- upsertAlerts(alerts, cmd.Alerts, sess)
|
|
|
- deleteMissingAlerts(alerts, cmd.Alerts, sess)
|
|
|
+ upsertAlerts(alerts, cmd, sess)
|
|
|
+ deleteMissingAlerts(alerts, cmd, sess)
|
|
|
|
|
|
return nil
|
|
|
})
|
|
|
}
|
|
|
|
|
|
-func upsertAlerts(alerts []*m.Alert, posted []*m.Alert, sess *xorm.Session) error {
|
|
|
- for _, alert := range posted {
|
|
|
+func upsertAlerts(alerts []*m.Alert, cmd *m.SaveAlertsCommand, sess *xorm.Session) error {
|
|
|
+ for _, alert := range cmd.Alerts {
|
|
|
update := false
|
|
|
var alertToUpdate *m.Alert
|
|
|
|
|
|
@@ -198,7 +205,13 @@ func upsertAlerts(alerts []*m.Alert, posted []*m.Alert, sess *xorm.Session) erro
|
|
|
}
|
|
|
|
|
|
sqlog.Debug("Alert updated", "name", alert.Name, "id", alert.Id)
|
|
|
- SaveAlertChange("UPDATED", alert, sess)
|
|
|
+ SaveAlertChange(&m.CreateAlertChangeCommand{
|
|
|
+ OrgId: alert.OrgId,
|
|
|
+ AlertId: alert.Id,
|
|
|
+ NewAlertSettings: alert.Settings,
|
|
|
+ UpdatedBy: cmd.UserId,
|
|
|
+ Type: "UPDATED",
|
|
|
+ }, sess)
|
|
|
}
|
|
|
|
|
|
} else {
|
|
|
@@ -211,18 +224,24 @@ func upsertAlerts(alerts []*m.Alert, posted []*m.Alert, sess *xorm.Session) erro
|
|
|
}
|
|
|
|
|
|
sqlog.Debug("Alert inserted", "name", alert.Name, "id", alert.Id)
|
|
|
- SaveAlertChange("CREATED", alert, sess)
|
|
|
+ SaveAlertChange(&m.CreateAlertChangeCommand{
|
|
|
+ OrgId: alert.OrgId,
|
|
|
+ AlertId: alert.Id,
|
|
|
+ NewAlertSettings: alert.Settings,
|
|
|
+ UpdatedBy: cmd.UserId,
|
|
|
+ Type: "CREATED",
|
|
|
+ }, sess)
|
|
|
}
|
|
|
}
|
|
|
|
|
|
return nil
|
|
|
}
|
|
|
|
|
|
-func deleteMissingAlerts(alerts []*m.Alert, posted []*m.Alert, sess *xorm.Session) error {
|
|
|
+func deleteMissingAlerts(alerts []*m.Alert, cmd *m.SaveAlertsCommand, sess *xorm.Session) error {
|
|
|
for _, missingAlert := range alerts {
|
|
|
missing := true
|
|
|
|
|
|
- for _, k := range posted {
|
|
|
+ for _, k := range cmd.Alerts {
|
|
|
if missingAlert.PanelId == k.PanelId {
|
|
|
missing = false
|
|
|
break
|
|
|
@@ -237,7 +256,13 @@ func deleteMissingAlerts(alerts []*m.Alert, posted []*m.Alert, sess *xorm.Sessio
|
|
|
|
|
|
sqlog.Debug("Alert deleted", "name", missingAlert.Name, "id", missingAlert.Id)
|
|
|
|
|
|
- err = SaveAlertChange("DELETED", missingAlert, sess)
|
|
|
+ SaveAlertChange(&m.CreateAlertChangeCommand{
|
|
|
+ OrgId: missingAlert.OrgId,
|
|
|
+ AlertId: missingAlert.Id,
|
|
|
+ NewAlertSettings: missingAlert.Settings,
|
|
|
+ UpdatedBy: cmd.UserId,
|
|
|
+ Type: "DELETED",
|
|
|
+ }, sess)
|
|
|
if err != nil {
|
|
|
return err
|
|
|
}
|