summaryrefslogtreecommitdiffstats
path: root/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/SystemUpgrader.java
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2018-06-26 12:57:33 +0200
committerMartin Polden <mpolden@mpolden.no>2018-06-26 12:57:33 +0200
commit3de5d2d61790bffdef723e50f06f31fe910907ae (patch)
tree894e6afeb93f09a91565a234130493b589b7f45d /controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/SystemUpgrader.java
parent49a532f515d9ce217def27443b5bb9faa6410124 (diff)
Require zone-application config to converge when upgrading
Diffstat (limited to 'controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/SystemUpgrader.java')
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/SystemUpgrader.java17
1 files changed, 15 insertions, 2 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/SystemUpgrader.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/SystemUpgrader.java
index 8603698d498..e9dd093fae8 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/SystemUpgrader.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/SystemUpgrader.java
@@ -3,7 +3,9 @@ package com.yahoo.vespa.hosted.controller.maintenance;
import com.yahoo.component.Version;
import com.yahoo.vespa.hosted.controller.Controller;
+import com.yahoo.vespa.hosted.controller.api.identifiers.DeploymentId;
import com.yahoo.vespa.hosted.controller.api.integration.configserver.Node;
+import com.yahoo.vespa.hosted.controller.api.integration.configserver.ServiceConvergence;
import com.yahoo.vespa.hosted.controller.api.integration.zone.ZoneId;
import com.yahoo.vespa.hosted.controller.application.SystemApplication;
import com.yahoo.vespa.hosted.controller.versions.VespaVersion;
@@ -52,7 +54,8 @@ public class SystemUpgrader extends Maintainer {
log.log(Level.WARNING, e.getMessage() + ". Continuing to next parallel deployed zone");
} catch (Exception e) {
converged = false;
- log.log(Level.WARNING, "Failed to upgrade " + zone + ". Continuing to next parallel deployed zone", e);
+ log.log(Level.WARNING, "Failed to upgrade " + zone +
+ ". Continuing to next parallel deployed zone", e);
}
}
if (!converged) {
@@ -68,11 +71,21 @@ public class SystemUpgrader extends Maintainer {
if (convergedOn(target, application.dependencies(), zone)) {
deploy(target, application, zone);
}
- converged &= convergedOn(target, application, zone);
+ converged &= convergedOn(target, application, zone) & configConverged(application, zone);
}
return converged;
}
+ /** Returns whether config for given application has converged */
+ private boolean configConverged(SystemApplication application, ZoneId zone) {
+ if (!application.hasApplicationPackage()) {
+ return true;
+ }
+ return controller().configServer().serviceConvergence(new DeploymentId(application.id(), zone))
+ .map(ServiceConvergence::converged)
+ .orElse(false);
+ }
+
/** Deploy application on given version idempotently */
private void deploy(Version target, SystemApplication application, ZoneId zone) {
if (!wantedVersion(zone, application, target).equals(target)) {