diff options
author | Valerij Fredriksen <valerijf@yahooinc.com> | 2022-02-03 22:32:17 +0100 |
---|---|---|
committer | Valerij Fredriksen <valerijf@yahooinc.com> | 2022-02-03 22:47:57 +0100 |
commit | f2f9542b2c39a5d4333d2e78de1e0a898f1b5f0a (patch) | |
tree | c398a6b551c12c53139a2f29d7bfcdb7d810df6d /node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailer.java | |
parent | aa6c641255ee3a9742dc50f5076d321145533267 (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.java | 17 |
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); } /** |