aboutsummaryrefslogtreecommitdiffstats
path: root/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailer.java
diff options
context:
space:
mode:
authorValerij Fredriksen <valerijf@yahooinc.com>2022-02-03 22:32:17 +0100
committerValerij Fredriksen <valerijf@yahooinc.com>2022-02-03 22:47:57 +0100
commitf2f9542b2c39a5d4333d2e78de1e0a898f1b5f0a (patch)
treec398a6b551c12c53139a2f29d7bfcdb7d810df6d /node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailer.java
parentaa6c641255ee3a9742dc50f5076d321145533267 (diff)
Do not allocate nodes to suspended hosts
Diffstat (limited to 'node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailer.java')
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailer.java17
1 files changed, 3 insertions, 14 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailer.java
index e914c3b16e6..a1916d7dc20 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailer.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailer.java
@@ -7,7 +7,6 @@ import com.yahoo.config.provision.NodeType;
import com.yahoo.config.provision.TransientException;
import com.yahoo.jdisc.Metric;
import com.yahoo.transaction.Mutex;
-import com.yahoo.vespa.applicationmodel.HostName;
import com.yahoo.vespa.hosted.provision.Node;
import com.yahoo.vespa.hosted.provision.NodeList;
import com.yahoo.vespa.hosted.provision.NodeMutex;
@@ -15,7 +14,6 @@ import com.yahoo.vespa.hosted.provision.NodeRepository;
import com.yahoo.vespa.hosted.provision.node.Agent;
import com.yahoo.vespa.hosted.provision.node.History;
import com.yahoo.vespa.orchestrator.ApplicationIdNotFoundException;
-import com.yahoo.vespa.orchestrator.HostNameNotFoundException;
import com.yahoo.vespa.orchestrator.status.ApplicationInstanceStatus;
import com.yahoo.yolean.Exceptions;
@@ -156,7 +154,7 @@ public class NodeFailer extends NodeRepositoryMaintainer {
NodeList activeNodes = nodeRepository().nodes().list(Node.State.active);
for (Node node : activeNodes) {
- Instant graceTimeStart = clock().instant().minus(suspended(node) ? suspendedDownTimeLimit : downTimeLimit);
+ Instant graceTimeStart = clock().instant().minus(nodeRepository().nodes().suspended(node) ? suspendedDownTimeLimit : downTimeLimit);
if (node.history().hasEventBefore(History.Event.Type.down, graceTimeStart) && !applicationSuspended(node)) {
// Allow a grace period after node re-activation
if (!node.history().hasEventAfter(History.Event.Type.activated, graceTimeStart))
@@ -205,23 +203,14 @@ public class NodeFailer extends NodeRepositoryMaintainer {
}
}
- private boolean suspended(Node node) {
- try {
- return nodeRepository().orchestrator().getNodeStatus(new HostName(node.hostname())).isSuspended();
- } catch (HostNameNotFoundException e) {
- // Treat it as not suspended
- return false;
- }
- }
-
/** Is the node and all active children suspended? */
private boolean allSuspended(Node node, NodeList activeNodes) {
- if (!suspended(node)) return false;
+ if (!nodeRepository().nodes().suspended(node)) return false;
if (node.parentHostname().isPresent()) return true; // optimization
return activeNodes.stream()
.filter(childNode -> childNode.parentHostname().isPresent() &&
childNode.parentHostname().get().equals(node.hostname()))
- .allMatch(this::suspended);
+ .allMatch(nodeRepository().nodes()::suspended);
}
/**