diff options
author | Harald Musum <musum@yahoo-inc.com> | 2017-06-08 14:27:28 +0200 |
---|---|---|
committer | Harald Musum <musum@yahoo-inc.com> | 2017-06-08 14:27:28 +0200 |
commit | 08e1b2642549a3f15dd757790f324debab8fe949 (patch) | |
tree | 041c3443635f6500f62856d06c18fa62ecb7bc6b /configserver | |
parent | 7923d9ac1ed454ce82e7cde800042b4a411d62c3 (diff) |
Wait until all applications have been redeployed
Diffstat (limited to 'configserver')
-rw-r--r-- | configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java | 7 | ||||
-rw-r--r-- | configserver/src/main/java/com/yahoo/vespa/config/server/ConfigServerBootstrap.java | 6 |
2 files changed, 9 insertions, 4 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java b/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java index 229f24152c3..4bc059339b0 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java @@ -44,12 +44,11 @@ import java.io.File; import java.net.URI; import java.time.Clock; import java.time.Duration; -import java.util.HashSet; import java.util.List; import java.util.Optional; -import java.util.Set; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; +import java.util.concurrent.TimeUnit; import java.util.logging.Logger; /** @@ -334,10 +333,12 @@ public class ApplicationRepository implements com.yahoo.config.provision.Deploye return session.getSessionId(); } - void redeployAllApplications(Deployer deployer) { + void redeployAllApplications(Deployer deployer) throws InterruptedException { ExecutorService deploymentExecutor = Executors.newFixedThreadPool(configserverConfig.numParallelTenantLoaders()); tenants.getAllTenants().forEach(tenant -> listApplicationIds(tenant) .forEach(applicationId -> redeployApplication(applicationId, deployer, deploymentExecutor))); + deploymentExecutor.shutdown(); + deploymentExecutor.awaitTermination(365, TimeUnit.DAYS); // Timeout should never happen } private void redeployApplication(ApplicationId applicationId, Deployer deployer, ExecutorService deploymentExecutor) { diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/ConfigServerBootstrap.java b/configserver/src/main/java/com/yahoo/vespa/config/server/ConfigServerBootstrap.java index e0def2b0e4b..357c4ca852e 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/ConfigServerBootstrap.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/ConfigServerBootstrap.java @@ -54,7 +54,11 @@ public class ConfigServerBootstrap extends AbstractComponent implements Runnable if (versionState.isUpgraded()) { log.log(LogLevel.INFO, "Configserver upgraded from " + versionState.storedVersion() + " to " + versionState.currentVersion() + ". Redeploying all applications"); - applicationRepository.redeployAllApplications(deployer); + try { + applicationRepository.redeployAllApplications(deployer); + } catch (InterruptedException e) { + throw new RuntimeException("Redeploying applications failed", e); + } log.log(LogLevel.INFO, "All applications redeployed"); } versionState.saveNewVersion(); |