summaryrefslogtreecommitdiffstats
path: root/controller-server
diff options
context:
space:
mode:
authorJon Marius Venstad <jvenstad@yahoo-inc.com>2018-05-25 14:47:25 +0200
committerJon Marius Venstad <jvenstad@yahoo-inc.com>2018-05-25 14:47:25 +0200
commitcd2f1f807dbcd4a84b309380eeedcabf557852b5 (patch)
tree2bf51b074f8af5583b99854d367cf339308be213 /controller-server
parent2d85b7da44eb1901fe458c93d20cc6e0ecc6be87 (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.java23
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) {