diff options
author | Martin Polden <mpolden@mpolden.no> | 2018-06-26 12:57:33 +0200 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2018-06-26 12:57:33 +0200 |
commit | 3de5d2d61790bffdef723e50f06f31fe910907ae (patch) | |
tree | 894e6afeb93f09a91565a234130493b589b7f45d /controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/SystemUpgrader.java | |
parent | 49a532f515d9ce217def27443b5bb9faa6410124 (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.java | 17 |
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)) { |