summaryrefslogtreecommitdiffstats
path: root/controller-server
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2018-09-11 14:45:44 +0200
committerAndreas Eriksen <andreer@pvv.ntnu.no>2018-09-11 14:45:44 +0200
commit02aca09a84b4ceb8c66918d04263145d90ff2dce (patch)
tree1aa31ed0de10038b3f8cc3c7507764ab6396f441 /controller-server
parentafdaa304ef56f5fb9f2584263059a83c45085866 (diff)
Stop setting OS target version once all nodes have seen it (#6899)
Diffstat (limited to 'controller-server')
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgrader.java8
1 files changed, 7 insertions, 1 deletions
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgrader.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgrader.java
index bf9fbeb26d3..a83c9cdf06f 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgrader.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/maintenance/OsUpgrader.java
@@ -46,8 +46,10 @@ public class OsUpgrader extends InfrastructureUpgrader {
@Override
protected void upgrade(Version target, SystemApplication application, ZoneId zone) {
+ if (wantedVersion(zone, application, target).equals(target)) {
+ return;
+ }
log.info(String.format("Upgrading OS of %s to version %s in %s", application.id(), target, zone));
- // Node repository ensures the upgrade call is idempotent
application.nodeTypesWithUpgradableOs().forEach(nodeType -> controller().configServer().nodeRepository()
.upgradeOs(zone, nodeType, target));
}
@@ -75,6 +77,10 @@ public class OsUpgrader extends InfrastructureUpgrader {
return minVersion(zone, application, Node::currentOsVersion).orElse(defaultVersion);
}
+ private Version wantedVersion(ZoneId zone, SystemApplication application, Version defaultVersion) {
+ return minVersion(zone, application, Node::wantedOsVersion).orElse(defaultVersion);
+ }
+
/** Returns whether node in application should be upgraded by this */
public static boolean eligibleForUpgrade(Node node, SystemApplication application) {
return upgradableNodeStates.contains(node.state()) &&