diff options
Diffstat (limited to 'node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/DelegatingOsUpgrader.java')
-rw-r--r-- | node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/DelegatingOsUpgrader.java | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/DelegatingOsUpgrader.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/DelegatingOsUpgrader.java index 23aa03a5315..4ee0774db8f 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/DelegatingOsUpgrader.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/DelegatingOsUpgrader.java @@ -12,8 +12,8 @@ import java.util.Optional; import java.util.logging.Logger; /** - * An upgrader that delegates the upgrade to the node itself, triggered by changing its wanted OS version. This - * implementation limits the number of parallel upgrades to avoid overloading the orchestrator with suspension requests. + * An upgrader that delegates the upgrade to the node itself, triggered by changing its wanted OS version. Downgrades + * are not supported. * * Used in clouds where nodes can upgrade themselves in-place, without data loss. * @@ -32,6 +32,8 @@ public class DelegatingOsUpgrader extends OsUpgrader { NodeList activeNodes = nodeRepository.nodes().list(Node.State.active).nodeType(target.nodeType()); Instant now = nodeRepository.clock().instant(); NodeList nodesToUpgrade = activeNodes.not().changingOsVersionTo(target.version()) + // This upgrader cannot downgrade nodes. We therefore consider only nodes + // on a lower version than the target .osVersionIsBefore(target.version()) .matching(node -> canUpgradeAt(now, node)) .byIncreasingOsVersion() |