瀏覽代碼

Using func InitNotifier for verifying notification settings

Pavel Bakulev 7 年之前
父節點
當前提交
d0370ea7ad

+ 0 - 1
pkg/services/provisioning/alert_notifications/alert_notifications.go

@@ -10,7 +10,6 @@ import (
 
 var (
 	ErrInvalidConfigTooManyDefault = errors.New("Alert notification provisioning config is invalid. Only one alert notification can be marked as default")
-	ErrInvalidNotifierType         = errors.New("Unknown notifier type")
 )
 
 func Provision(configDirectory string) error {

+ 7 - 19
pkg/services/provisioning/alert_notifications/config_reader.go

@@ -136,7 +136,6 @@ func validateRequiredField(notifications []*notificationsAsConfig) error {
 }
 
 func validateNotifications(notifications []*notificationsAsConfig) error {
-	notifierTypes := alerting.GetNotifiers()
 
 	for i := range notifications {
 		if notifications[i].Notifications == nil {
@@ -144,24 +143,13 @@ func validateNotifications(notifications []*notificationsAsConfig) error {
 		}
 
 		for _, notification := range notifications[i].Notifications {
-			foundNotifier := false
-
-			for _, notifier := range notifierTypes {
-				if notifier.Type == notification.Type {
-					foundNotifier = true
-					_, notifierError := notifier.Factory(&m.AlertNotification{
-						Name:     notification.Name,
-						Settings: notification.SettingsToJson(),
-						Type:     notification.Type,
-					})
-					if notifierError != nil {
-						return notifierError
-					}
-					break
-				}
-			}
-			if !foundNotifier {
-				return ErrInvalidNotifierType
+			_, err := alerting.InitNotifier(&m.AlertNotification{
+				Name:     notification.Name,
+				Settings: notification.SettingsToJson(),
+				Type:     notification.Type,
+			})
+			if err != nil {
+				return err
 			}
 		}
 	}

+ 2 - 1
pkg/services/provisioning/alert_notifications/config_reader_test.go

@@ -293,7 +293,8 @@ func TestNotificationAsConfig(t *testing.T) {
 		Convey("Unknown notifier should return error", func() {
 			cfgProvifer := &configReader{log: log.New("test logger")}
 			_, err := cfgProvifer.readConfig(unknownNotifier)
-			So(err, ShouldEqual, ErrInvalidNotifierType)
+			So(err, ShouldNotBeNil)
+			So(err.Error(), ShouldEqual, "Unsupported notification type")
 		})
 
 		Convey("Read incorrect properties", func() {