diff options
author | Jon Marius Venstad <jvenstad@yahoo-inc.com> | 2019-01-04 11:54:34 +0100 |
---|---|---|
committer | Jon Marius Venstad <jvenstad@yahoo-inc.com> | 2019-01-04 11:54:34 +0100 |
commit | eba2eb41fa3cc8ee07f7790bbc7978ea1a2b30d1 (patch) | |
tree | 49e91a3764378a7c0b7d2f12a8b82a038bb9ccfb /controller-server | |
parent | 0f4f90afc161206436679675ecf8d04b8ad896e6 (diff) |
Better API?
Diffstat (limited to 'controller-server')
-rw-r--r-- | controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunner.java | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunner.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunner.java index 52c9b4fee7a..45165a3a2ff 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunner.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunner.java @@ -7,6 +7,7 @@ import com.google.common.collect.ImmutableSet; import com.yahoo.component.Version; import com.yahoo.config.application.api.DeploymentSpec; import com.yahoo.config.application.api.Notifications; +import com.yahoo.config.application.api.Notifications.When; import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.AthenzDomain; import com.yahoo.config.provision.AthenzService; @@ -46,6 +47,7 @@ import java.time.Duration; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; +import java.util.HashSet; import java.util.List; import java.util.Map; import java.util.Optional; @@ -56,6 +58,9 @@ import java.util.logging.Logger; import java.util.stream.Collectors; import java.util.stream.Stream; +import static com.yahoo.config.application.api.Notifications.Role.author; +import static com.yahoo.config.application.api.Notifications.When.failing; +import static com.yahoo.config.application.api.Notifications.When.failingCommit; import static com.yahoo.log.LogLevel.DEBUG; import static com.yahoo.vespa.hosted.controller.api.integration.configserver.ConfigServerException.ErrorCode.ACTIVATION_CONFLICT; import static com.yahoo.vespa.hosted.controller.api.integration.configserver.ConfigServerException.ErrorCode.APPLICATION_LOCK_FAILURE; @@ -453,26 +458,23 @@ public class InternalStepRunner implements StepRunner { boolean newCommit = application.change().application() .map(run.versions().targetApplication()::equals) .orElse(false); + When when = newCommit ? failingCommit : failing; - Map<String, Notifications.When> recipients = new HashMap<>(notifications.staticEmails()); - if (notifications.roleEmails().containsKey(Notifications.Role.author)) - run.versions().targetApplication().authorEmail() - .ifPresent(address -> recipients.put(address, notifications.roleEmails().get(Notifications.Role.author))); - - if ( ! newCommit) - recipients.values().removeIf(Notifications.When.failingCommit::equals); + List<String> recipients = new ArrayList<>(notifications.emailAddressesFor(when)); + if (notifications.emailRolesFor(when).contains(author)) + run.versions().targetApplication().authorEmail().ifPresent(recipients::add); try { if (run.status() == outOfCapacity && run.id().type().isProduction()) - controller.mailer().send(mails.outOfCapacity(run.id(), recipients.keySet())); + controller.mailer().send(mails.outOfCapacity(run.id(), recipients)); if (run.status() == deploymentFailed) - controller.mailer().send(mails.deploymentFailure(run.id(), recipients.keySet())); + controller.mailer().send(mails.deploymentFailure(run.id(), recipients)); if (run.status() == installationFailed) - controller.mailer().send(mails.installationFailure(run.id(), recipients.keySet())); + controller.mailer().send(mails.installationFailure(run.id(), recipients)); if (run.status() == testFailure) - controller.mailer().send(mails.testFailure(run.id(), recipients.keySet())); + controller.mailer().send(mails.testFailure(run.id(), recipients)); if (run.status() == error) - controller.mailer().send(mails.systemError(run.id(), recipients.keySet())); + controller.mailer().send(mails.systemError(run.id(), recipients)); } catch (RuntimeException e) { logger.log(INFO, "Exception trying to send mail for " + run.id(), e); |