diff options
author | Jon Marius Venstad <jvenstad@yahoo-inc.com> | 2018-05-25 14:47:25 +0200 |
---|---|---|
committer | Jon Marius Venstad <jvenstad@yahoo-inc.com> | 2018-05-25 14:47:25 +0200 |
commit | cd2f1f807dbcd4a84b309380eeedcabf557852b5 (patch) | |
tree | 2bf51b074f8af5583b99854d367cf339308be213 /controller-server | |
parent | 2d85b7da44eb1901fe458c93d20cc6e0ecc6be87 (diff) |
Count exceptions getting current version as not converged
Diffstat (limited to 'controller-server')
-rw-r--r-- | controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/SystemUpgrader.java | 23 |
1 files changed, 9 insertions, 14 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 d35458a5a2a..516cd52d710 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 @@ -50,12 +50,15 @@ public class SystemUpgrader extends Maintainer { private void deploy(List<SystemApplication> applications, Version target) { for (List<ZoneId> zones : controller().zoneRegistry().upgradePolicy().asList()) { boolean converged = true; - for (SystemApplication application : applications) { - for (ZoneId zone : zones) { - if (dependenciesConvergedOn(target, application, zone)) { + for (ZoneId zone : zones) { + for (SystemApplication application : applications) { + boolean dependenciesConverged = application.dependencies().stream() + .filter(applications::contains) // TODO: Remove when all() is used. + .allMatch(dependency -> currentVersion(zone, dependency.id()).equals(target)); + if (dependenciesConverged) { deploy(target, application, zone); } - converged &= convergedOn(target, application, zone); + converged &= currentVersion(zone, application.id()).equals(target); } } if (!converged) { @@ -72,20 +75,12 @@ public class SystemUpgrader extends Maintainer { } } - private boolean convergedOn(Version target, SystemApplication application, ZoneId zone) { - return currentVersion(zone, application.id(), target).equals(target); - } - - private boolean dependenciesConvergedOn(Version target, SystemApplication application, ZoneId zone) { - return application.dependencies().stream().allMatch(dependency -> convergedOn(target, dependency, zone)); - } - private Version wantedVersion(ZoneId zone, ApplicationId application, Version defaultVersion) { return minVersion(zone, application, Node::wantedVersion).orElse(defaultVersion); } - private Version currentVersion(ZoneId zone, ApplicationId application, Version defaultVersion) { - return minVersion(zone, application, Node::currentVersion).orElse(defaultVersion); + private Version currentVersion(ZoneId zone, ApplicationId application) { + return minVersion(zone, application, Node::currentVersion).orElse(Version.emptyVersion); } private Optional<Version> minVersion(ZoneId zone, ApplicationId application, Function<Node, Version> versionField) { |