diff options
author | Martin Polden <mpolden@mpolden.no> | 2018-09-11 14:45:44 +0200 |
---|---|---|
committer | Andreas Eriksen <andreer@pvv.ntnu.no> | 2018-09-11 14:45:44 +0200 |
commit | 02aca09a84b4ceb8c66918d04263145d90ff2dce (patch) | |
tree | 1aa31ed0de10038b3f8cc3c7507764ab6396f441 /controller-server | |
parent | afdaa304ef56f5fb9f2584263059a83c45085866 (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.java | 8 |
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()) && |