diff options
author | Harald Musum <musum@yahooinc.com> | 2023-08-30 12:24:07 +0200 |
---|---|---|
committer | Harald Musum <musum@yahooinc.com> | 2023-08-30 12:24:07 +0200 |
commit | 5445d9f3b1b91b073dac2d609037b534e526c477 (patch) | |
tree | c187ff43b0ed1da976a1960ac5a93da8e4bea674 /node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/PeriodicApplicationMaintainer.java | |
parent | 306dce28ed3cfa0d2f4679fd2519db3d1ac780c7 (diff) |
Use deploy time (prepare time) when considering applications for maintenance deployment
Diffstat (limited to 'node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/PeriodicApplicationMaintainer.java')
-rw-r--r-- | node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/PeriodicApplicationMaintainer.java | 13 |
1 files changed, 9 insertions, 4 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/PeriodicApplicationMaintainer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/PeriodicApplicationMaintainer.java index 28679b504aa..ba71bbf0d42 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/PeriodicApplicationMaintainer.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/PeriodicApplicationMaintainer.java @@ -16,7 +16,8 @@ import java.time.Duration; import java.time.Instant; import java.util.Map; import java.util.function.Function; -import java.util.stream.Collectors; + +import static java.util.stream.Collectors.toMap; /** * The application maintainer regularly redeploys all applications to make sure the node repo and application @@ -39,7 +40,7 @@ public class PeriodicApplicationMaintainer extends ApplicationMaintainer { @Override protected boolean canDeployNow(ApplicationId application) { - return deployer().activationTime(application) + return deployer().deployTime(application) // Don't deploy if a regular deploy just happened .map(lastDeployTime -> lastDeployTime.isBefore(nodeRepository().clock().instant().minus(minTimeBetweenRedeployments))) // We only know last deploy time for applications that were deployed on this config server, @@ -57,13 +58,17 @@ public class PeriodicApplicationMaintainer extends ApplicationMaintainer { .map(node -> node.allocation().get().owner()) .distinct() .filter(this::canDeployNow) - .collect(Collectors.toMap(Function.identity(), this::activationTime)); + .collect(toMap(Function.identity(), this::deployTime)); return deploymentTimes.entrySet().stream() .sorted(Map.Entry.comparingByValue()) .map(Map.Entry::getKey) .filter(this::shouldMaintain) - .collect(Collectors.toMap(applicationId -> applicationId, applicationId -> "current deployment being too old")); + .collect(toMap(applicationId -> applicationId, applicationId -> "current deployment being too old")); + } + + private Instant deployTime(ApplicationId applicationId) { + return deployer().deployTime(applicationId).orElse(Instant.EPOCH); } private boolean shouldMaintain(ApplicationId id) { |