diff options
author | Jon Bratseth <bratseth@gmail.com> | 2022-04-22 19:03:20 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@gmail.com> | 2022-04-22 19:03:20 +0200 |
commit | d64f143362a87c8f8bf31f594897cd7ce87f6bd6 (patch) | |
tree | dae9df67d4b5a032f7428653efef9830aa8d53c0 /node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/NodeFailer.java | |
parent | 2b0050d8edb0df787e8c0f605e30e6707d476f0c (diff) |
Read nodes less
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 | 11 |
1 files changed, 4 insertions, 7 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 237cbaedf46..3c5b20da4d0 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 @@ -164,7 +164,7 @@ public class NodeFailer extends NodeRepositoryMaintainer { for (Node node : activeNodes) { if (allSuspended(node, activeNodes)) { - Node host = node.parentHostname().flatMap(parent -> nodeRepository().nodes().node(parent)).orElse(node); + Node host = node.parentHostname().flatMap(parent -> activeNodes.node(parent)).orElse(node); if (host.type().isHost()) { List<String> failureReports = reasonsToFailHost(host); if ( ! failureReports.isEmpty()) { @@ -188,8 +188,8 @@ public class NodeFailer extends NodeRepositoryMaintainer { } /** Returns whether node has any kind of hardware issue */ - static boolean hasHardwareIssue(Node node, NodeRepository nodeRepository) { - Node host = node.parentHostname().flatMap(parent -> nodeRepository.nodes().node(parent)).orElse(node); + static boolean hasHardwareIssue(Node node, NodeList allNodes) { + Node host = node.parentHostname().flatMap(parent -> allNodes.node(parent)).orElse(node); return reasonsToFailHost(host).size() > 0; } @@ -207,10 +207,7 @@ public class NodeFailer extends NodeRepositoryMaintainer { private boolean allSuspended(Node node, NodeList activeNodes) { 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(nodeRepository().nodes()::suspended); + return activeNodes.childrenOf(node.hostname()).stream().allMatch(nodeRepository().nodes()::suspended); } /** |