diff options
author | Bjørn Christian Seime <bjorncs@vespa.ai> | 2023-10-13 14:51:33 +0200 |
---|---|---|
committer | Bjørn Christian Seime <bjorncs@vespa.ai> | 2023-10-16 10:23:06 +0200 |
commit | 5f3176706e500621af05a2944e6f7a9114a09d20 (patch) | |
tree | 2c53ed200a1dcf9eaaa554c2c5cd96de4a051bd6 | |
parent | 90c59bfc313263a238c464b21221d1ede8bf997a (diff) |
Add additional overload taking email content
-rw-r--r-- | controller-server/src/main/java/com/yahoo/vespa/hosted/controller/notification/NotificationsDb.java | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/notification/NotificationsDb.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/notification/NotificationsDb.java index 287342f1290..e752e13eddd 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/notification/NotificationsDb.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/notification/NotificationsDb.java @@ -10,6 +10,7 @@ import com.yahoo.vespa.hosted.controller.Controller; import com.yahoo.vespa.hosted.controller.api.application.v4.model.ClusterMetrics; import com.yahoo.vespa.hosted.controller.api.identifiers.DeploymentId; import com.yahoo.vespa.hosted.controller.api.integration.configserver.ApplicationReindexing; +import com.yahoo.vespa.hosted.controller.notification.Notification.MailContent; import com.yahoo.vespa.hosted.controller.persistence.CuratorDb; import java.time.Clock; @@ -63,18 +64,24 @@ public class NotificationsDb { setNotification(source, type, level, List.of(message)); } + public void setNotification(NotificationSource source, Type type, Level level, List<String> messages) { + setNotification(source, type, level, messages, Optional.empty()); + } + /** * Add a notification with given source and type. If a notification with same source and type - * already exists, it'll be replaced by this one instead + * already exists, it'll be replaced by this one instead. + * Email content is not persisted here. The email dispatcher is responsible for reliable delivery. */ - public void setNotification(NotificationSource source, Type type, Level level, List<String> messages) { + public void setNotification(NotificationSource source, Type type, Level level, List<String> messages, + Optional<MailContent> mailContent) { Optional<Notification> changed = Optional.empty(); try (Mutex lock = curatorDb.lockNotifications(source.tenant())) { var existingNotifications = curatorDb.readNotifications(source.tenant()); List<Notification> notifications = existingNotifications.stream() .filter(notification -> !source.equals(notification.source()) || type != notification.type()) .collect(Collectors.toCollection(ArrayList::new)); - var notification = new Notification(clock.instant(), type, level, source, messages); + var notification = new Notification(clock.instant(), type, level, source, messages, mailContent); if (!notificationExists(notification, existingNotifications, false)) { changed = Optional.of(notification); } |