diff --git a/pkg/api/dtos/alerting.go b/pkg/api/dtos/alerting.go
index 33f10c805ab..c037831f341 100644
--- a/pkg/api/dtos/alerting.go
+++ b/pkg/api/dtos/alerting.go
@@ -49,30 +49,30 @@ func formatShort(interval time.Duration) string {
func NewAlertNotification(notification *models.AlertNotification) *AlertNotification {
return &AlertNotification{
- Id: notification.Id,
- Name: notification.Name,
- Type: notification.Type,
- IsDefault: notification.IsDefault,
- Created: notification.Created,
- Updated: notification.Updated,
- Frequency: formatShort(notification.Frequency),
- SendReminder: notification.SendReminder,
- DisableResolvedMessage: notification.DisableResolvedMessage,
- Settings: notification.Settings,
+ Id: notification.Id,
+ Name: notification.Name,
+ Type: notification.Type,
+ IsDefault: notification.IsDefault,
+ Created: notification.Created,
+ Updated: notification.Updated,
+ Frequency: formatShort(notification.Frequency),
+ SendReminder: notification.SendReminder,
+ DisableResolveMessage: notification.DisableResolveMessage,
+ Settings: notification.Settings,
}
}
type AlertNotification struct {
- Id int64 `json:"id"`
- Name string `json:"name"`
- Type string `json:"type"`
- IsDefault bool `json:"isDefault"`
- SendReminder bool `json:"sendReminder"`
- DisableResolvedMessage bool `json:"disableResolvedMessage"`
- Frequency string `json:"frequency"`
- Created time.Time `json:"created"`
- Updated time.Time `json:"updated"`
- Settings *simplejson.Json `json:"settings"`
+ Id int64 `json:"id"`
+ Name string `json:"name"`
+ Type string `json:"type"`
+ IsDefault bool `json:"isDefault"`
+ SendReminder bool `json:"sendReminder"`
+ DisableResolveMessage bool `json:"disableResolveMessage"`
+ Frequency string `json:"frequency"`
+ Created time.Time `json:"created"`
+ Updated time.Time `json:"updated"`
+ Settings *simplejson.Json `json:"settings"`
}
type AlertTestCommand struct {
@@ -102,12 +102,12 @@ type EvalMatch struct {
}
type NotificationTestCommand struct {
- Name string `json:"name"`
- Type string `json:"type"`
- SendReminder bool `json:"sendReminder"`
- DisableResolvedMessage bool `json:"disableResolvedMessage"`
- Frequency string `json:"frequency"`
- Settings *simplejson.Json `json:"settings"`
+ Name string `json:"name"`
+ Type string `json:"type"`
+ SendReminder bool `json:"sendReminder"`
+ DisableResolveMessage bool `json:"disableResolveMessage"`
+ Frequency string `json:"frequency"`
+ Settings *simplejson.Json `json:"settings"`
}
type PauseAlertCommand struct {
diff --git a/pkg/models/alert_notifications.go b/pkg/models/alert_notifications.go
index f9327a4d4bc..e0fd12937ed 100644
--- a/pkg/models/alert_notifications.go
+++ b/pkg/models/alert_notifications.go
@@ -23,41 +23,41 @@ var (
)
type AlertNotification struct {
- Id int64 `json:"id"`
- OrgId int64 `json:"-"`
- Name string `json:"name"`
- Type string `json:"type"`
- SendReminder bool `json:"sendReminder"`
- DisableResolvedMessage bool `json:"disableResolvedMessage"`
- Frequency time.Duration `json:"frequency"`
- IsDefault bool `json:"isDefault"`
- Settings *simplejson.Json `json:"settings"`
- Created time.Time `json:"created"`
- Updated time.Time `json:"updated"`
+ Id int64 `json:"id"`
+ OrgId int64 `json:"-"`
+ Name string `json:"name"`
+ Type string `json:"type"`
+ SendReminder bool `json:"sendReminder"`
+ DisableResolveMessage bool `json:"disableResolveMessage"`
+ Frequency time.Duration `json:"frequency"`
+ IsDefault bool `json:"isDefault"`
+ Settings *simplejson.Json `json:"settings"`
+ Created time.Time `json:"created"`
+ Updated time.Time `json:"updated"`
}
type CreateAlertNotificationCommand struct {
- Name string `json:"name" binding:"Required"`
- Type string `json:"type" binding:"Required"`
- SendReminder bool `json:"sendReminder"`
- DisableResolvedMessage bool `json:"disableResolvedMessage"`
- Frequency string `json:"frequency"`
- IsDefault bool `json:"isDefault"`
- Settings *simplejson.Json `json:"settings"`
+ Name string `json:"name" binding:"Required"`
+ Type string `json:"type" binding:"Required"`
+ SendReminder bool `json:"sendReminder"`
+ DisableResolveMessage bool `json:"disableResolveMessage"`
+ Frequency string `json:"frequency"`
+ IsDefault bool `json:"isDefault"`
+ Settings *simplejson.Json `json:"settings"`
OrgId int64 `json:"-"`
Result *AlertNotification
}
type UpdateAlertNotificationCommand struct {
- Id int64 `json:"id" binding:"Required"`
- Name string `json:"name" binding:"Required"`
- Type string `json:"type" binding:"Required"`
- SendReminder bool `json:"sendReminder"`
- DisableResolvedMessage bool `json:"disableResolvedMessage"`
- Frequency string `json:"frequency"`
- IsDefault bool `json:"isDefault"`
- Settings *simplejson.Json `json:"settings" binding:"Required"`
+ Id int64 `json:"id" binding:"Required"`
+ Name string `json:"name" binding:"Required"`
+ Type string `json:"type" binding:"Required"`
+ SendReminder bool `json:"sendReminder"`
+ DisableResolveMessage bool `json:"disableResolveMessage"`
+ Frequency string `json:"frequency"`
+ IsDefault bool `json:"isDefault"`
+ Settings *simplejson.Json `json:"settings" binding:"Required"`
OrgId int64 `json:"-"`
Result *AlertNotification
diff --git a/pkg/services/alerting/interfaces.go b/pkg/services/alerting/interfaces.go
index 7cd0e6ffca8..040d0991861 100644
--- a/pkg/services/alerting/interfaces.go
+++ b/pkg/services/alerting/interfaces.go
@@ -27,7 +27,7 @@ type Notifier interface {
GetNotifierId() int64
GetIsDefault() bool
GetSendReminder() bool
- GetDisableResolvedMessage() bool
+ GetDisableResolveMessage() bool
GetFrequency() time.Duration
}
diff --git a/pkg/services/alerting/notifiers/base.go b/pkg/services/alerting/notifiers/base.go
index 1b14059b1e6..d141d6cd257 100644
--- a/pkg/services/alerting/notifiers/base.go
+++ b/pkg/services/alerting/notifiers/base.go
@@ -14,14 +14,14 @@ const (
)
type NotifierBase struct {
- Name string
- Type string
- Id int64
- IsDeault bool
- UploadImage bool
- SendReminder bool
- DisableResolvedMessage bool
- Frequency time.Duration
+ Name string
+ Type string
+ Id int64
+ IsDeault bool
+ UploadImage bool
+ SendReminder bool
+ DisableResolveMessage bool
+ Frequency time.Duration
log log.Logger
}
@@ -34,15 +34,15 @@ func NewNotifierBase(model *models.AlertNotification) NotifierBase {
}
return NotifierBase{
- Id: model.Id,
- Name: model.Name,
- IsDeault: model.IsDefault,
- Type: model.Type,
- UploadImage: uploadImage,
- SendReminder: model.SendReminder,
- DisableResolvedMessage: model.DisableResolvedMessage,
- Frequency: model.Frequency,
- log: log.New("alerting.notifier." + model.Name),
+ Id: model.Id,
+ Name: model.Name,
+ IsDeault: model.IsDefault,
+ Type: model.Type,
+ UploadImage: uploadImage,
+ SendReminder: model.SendReminder,
+ DisableResolveMessage: model.DisableResolveMessage,
+ Frequency: model.Frequency,
+ log: log.New("alerting.notifier." + model.Name),
}
}
@@ -84,8 +84,8 @@ func (n *NotifierBase) ShouldNotify(ctx context.Context, context *alerting.EvalC
}
}
- // Do not notify when state is OK if DisableResolvedMessage is set to true
- if context.Rule.State == models.AlertStateOK && n.DisableResolvedMessage {
+ // Do not notify when state is OK if DisableResolveMessage is set to true
+ if context.Rule.State == models.AlertStateOK && n.DisableResolveMessage {
return false
}
@@ -112,8 +112,8 @@ func (n *NotifierBase) GetSendReminder() bool {
return n.SendReminder
}
-func (n *NotifierBase) GetDisableResolvedMessage() bool {
- return n.DisableResolvedMessage
+func (n *NotifierBase) GetDisableResolveMessage() bool {
+ return n.DisableResolveMessage
}
func (n *NotifierBase) GetFrequency() time.Duration {
diff --git a/pkg/services/alerting/notifiers/base_test.go b/pkg/services/alerting/notifiers/base_test.go
index 281d0bfb238..5062828cb4f 100644
--- a/pkg/services/alerting/notifiers/base_test.go
+++ b/pkg/services/alerting/notifiers/base_test.go
@@ -182,7 +182,7 @@ func TestBaseNotifier(t *testing.T) {
Convey("default value should be false for backwards compatibility", func() {
base := NewNotifierBase(model)
- So(base.DisableResolvedMessage, ShouldBeFalse)
+ So(base.DisableResolveMessage, ShouldBeFalse)
})
})
}
diff --git a/pkg/services/sqlstore/alert_notification.go b/pkg/services/sqlstore/alert_notification.go
index d82d5814869..afe6269510f 100644
--- a/pkg/services/sqlstore/alert_notification.go
+++ b/pkg/services/sqlstore/alert_notification.go
@@ -66,7 +66,7 @@ func GetAlertNotificationsToSend(query *m.GetAlertNotificationsToSendQuery) erro
alert_notification.updated,
alert_notification.settings,
alert_notification.is_default,
- alert_notification.disable_resolved_message,
+ alert_notification.disable_resolve_message,
alert_notification.send_reminder,
alert_notification.frequency
FROM alert_notification
@@ -107,7 +107,7 @@ func getAlertNotificationInternal(query *m.GetAlertNotificationsQuery, sess *DBS
alert_notification.updated,
alert_notification.settings,
alert_notification.is_default,
- alert_notification.disable_resolved_message,
+ alert_notification.disable_resolve_message,
alert_notification.send_reminder,
alert_notification.frequency
FROM alert_notification
@@ -168,16 +168,16 @@ func CreateAlertNotificationCommand(cmd *m.CreateAlertNotificationCommand) error
}
alertNotification := &m.AlertNotification{
- OrgId: cmd.OrgId,
- Name: cmd.Name,
- Type: cmd.Type,
- Settings: cmd.Settings,
- SendReminder: cmd.SendReminder,
- DisableResolvedMessage: cmd.DisableResolvedMessage,
- Frequency: frequency,
- Created: time.Now(),
- Updated: time.Now(),
- IsDefault: cmd.IsDefault,
+ OrgId: cmd.OrgId,
+ Name: cmd.Name,
+ Type: cmd.Type,
+ Settings: cmd.Settings,
+ SendReminder: cmd.SendReminder,
+ DisableResolveMessage: cmd.DisableResolveMessage,
+ Frequency: frequency,
+ Created: time.Now(),
+ Updated: time.Now(),
+ IsDefault: cmd.IsDefault,
}
if _, err = sess.MustCols("send_reminder").Insert(alertNotification); err != nil {
@@ -213,7 +213,7 @@ func UpdateAlertNotification(cmd *m.UpdateAlertNotificationCommand) error {
current.Type = cmd.Type
current.IsDefault = cmd.IsDefault
current.SendReminder = cmd.SendReminder
- current.DisableResolvedMessage = cmd.DisableResolvedMessage
+ current.DisableResolveMessage = cmd.DisableResolveMessage
if current.SendReminder {
if cmd.Frequency == "" {
@@ -228,7 +228,7 @@ func UpdateAlertNotification(cmd *m.UpdateAlertNotificationCommand) error {
current.Frequency = frequency
}
- sess.UseBool("is_default", "send_reminder")
+ sess.UseBool("is_default", "send_reminder", "disable_resolve_message")
if affected, err := sess.ID(cmd.Id).Update(current); err != nil {
return err
diff --git a/pkg/services/sqlstore/alert_notification_test.go b/pkg/services/sqlstore/alert_notification_test.go
index 680685a6d22..629a6292eb5 100644
--- a/pkg/services/sqlstore/alert_notification_test.go
+++ b/pkg/services/sqlstore/alert_notification_test.go
@@ -219,7 +219,7 @@ func TestAlertNotificationSQLAccess(t *testing.T) {
So(cmd.Result.OrgId, ShouldNotEqual, 0)
So(cmd.Result.Type, ShouldEqual, "email")
So(cmd.Result.Frequency, ShouldEqual, 10*time.Second)
- So(cmd.Result.DisableResolvedMessage, ShouldBeFalse)
+ So(cmd.Result.DisableResolveMessage, ShouldBeFalse)
Convey("Cannot save Alert Notification with the same name", func() {
err = CreateAlertNotificationCommand(cmd)
@@ -228,20 +228,20 @@ func TestAlertNotificationSQLAccess(t *testing.T) {
Convey("Can update alert notification", func() {
newCmd := &models.UpdateAlertNotificationCommand{
- Name: "NewName",
- Type: "webhook",
- OrgId: cmd.Result.OrgId,
- SendReminder: true,
- DisableResolvedMessage: true,
- Frequency: "60s",
- Settings: simplejson.New(),
- Id: cmd.Result.Id,
+ Name: "NewName",
+ Type: "webhook",
+ OrgId: cmd.Result.OrgId,
+ SendReminder: true,
+ DisableResolveMessage: true,
+ Frequency: "60s",
+ Settings: simplejson.New(),
+ Id: cmd.Result.Id,
}
err := UpdateAlertNotification(newCmd)
So(err, ShouldBeNil)
So(newCmd.Result.Name, ShouldEqual, "NewName")
So(newCmd.Result.Frequency, ShouldEqual, 60*time.Second)
- So(newCmd.Result.DisableResolvedMessage, ShouldBeTrue)
+ So(newCmd.Result.DisableResolveMessage, ShouldBeTrue)
})
Convey("Can update alert notification to disable sending of reminders", func() {
diff --git a/pkg/services/sqlstore/migrations/alert_mig.go b/pkg/services/sqlstore/migrations/alert_mig.go
index 7add7ee3e86..198a47b50ff 100644
--- a/pkg/services/sqlstore/migrations/alert_mig.go
+++ b/pkg/services/sqlstore/migrations/alert_mig.go
@@ -71,8 +71,8 @@ func addAlertMigrations(mg *Migrator) {
mg.AddMigration("Add column send_reminder", NewAddColumnMigration(alert_notification, &Column{
Name: "send_reminder", Type: DB_Bool, Nullable: true, Default: "0",
}))
- mg.AddMigration("Add column disable_resolved_message", NewAddColumnMigration(alert_notification, &Column{
- Name: "disable_resolved_message", Type: DB_Bool, Nullable: false, Default: "0",
+ mg.AddMigration("Add column disable_resolve_message", NewAddColumnMigration(alert_notification, &Column{
+ Name: "disable_resolve_message", Type: DB_Bool, Nullable: false, Default: "0",
}))
mg.AddMigration("add index alert_notification org_id & name", NewAddIndexMigration(alert_notification, alert_notification.Indices[0]))
diff --git a/public/app/features/alerting/NotificationsEditCtrl.ts b/public/app/features/alerting/NotificationsEditCtrl.ts
index 92392559480..2607121bb0e 100644
--- a/public/app/features/alerting/NotificationsEditCtrl.ts
+++ b/public/app/features/alerting/NotificationsEditCtrl.ts
@@ -12,7 +12,7 @@ export class AlertNotificationEditCtrl {
defaults: any = {
type: 'email',
sendReminder: false,
- disableResolvedMessage: false,
+ disableResolveMessage: false,
frequency: '15m',
settings: {
httpMethod: 'POST',
diff --git a/public/app/features/alerting/partials/notification_edit.html b/public/app/features/alerting/partials/notification_edit.html
index 1ecab3c3e3c..b2cd2f21e4d 100644
--- a/public/app/features/alerting/partials/notification_edit.html
+++ b/public/app/features/alerting/partials/notification_edit.html
@@ -21,28 +21,28 @@
+ label="Disable Resolve Message"
+ label-class="width-14"
+ checked="ctrl.model.disableResolveMessage"
+ tooltip="Disable the resolve message [OK] that is sent when alerting state returns to false">