summaryrefslogtreecommitdiffstats
path: root/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/RetiringOsUpgrader.java
diff options
context:
space:
mode:
Diffstat (limited to 'node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/RetiringOsUpgrader.java')
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/RetiringOsUpgrader.java10
1 files changed, 9 insertions, 1 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/RetiringOsUpgrader.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/RetiringOsUpgrader.java
index 43843f6fe5a..860a17be28c 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/RetiringOsUpgrader.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/os/RetiringOsUpgrader.java
@@ -2,6 +2,7 @@
package com.yahoo.vespa.hosted.provision.os;
import com.yahoo.component.Version;
+import com.yahoo.config.provision.NodeResources;
import com.yahoo.config.provision.NodeType;
import com.yahoo.vespa.hosted.provision.Node;
import com.yahoo.vespa.hosted.provision.NodeList;
@@ -28,8 +29,11 @@ public class RetiringOsUpgrader implements OsUpgrader {
protected final NodeRepository nodeRepository;
- public RetiringOsUpgrader(NodeRepository nodeRepository) {
+ private final boolean softRebuild;
+
+ public RetiringOsUpgrader(NodeRepository nodeRepository, boolean softRebuild) {
this.nodeRepository = nodeRepository;
+ this.softRebuild = softRebuild;
}
@Override
@@ -57,6 +61,10 @@ public class RetiringOsUpgrader implements OsUpgrader {
/** Returns nodes that are candidates for upgrade */
private NodeList candidates(Instant instant, OsVersionTarget target, NodeList allNodes) {
NodeList activeNodes = allNodes.state(Node.State.active).nodeType(target.nodeType());
+ if (softRebuild) {
+ // Soft rebuild is enabled, so this should only act on hosts with local storage
+ activeNodes = activeNodes.storageType(NodeResources.StorageType.local);
+ }
if (activeNodes.isEmpty()) return NodeList.of();
Duration nodeBudget = target.upgradeBudget().dividedBy(activeNodes.size());