diff options
author | Martin Polden <mpolden@mpolden.no> | 2023-03-03 11:56:23 +0100 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2023-03-09 10:26:19 +0100 |
commit | 3ebff726219d0d6d4364d2b08ddff178ebca205d (patch) | |
tree | 6e039903ec5447946a96d1ba3876fddd3cab45d4 /node-repository/src/main | |
parent | 48135d0ee789ead6081ca3d25861cef07f3c478e (diff) |
List nodes once
Diffstat (limited to 'node-repository/src/main')
-rw-r--r-- | node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/ExpeditedChangeApplicationMaintainer.java | 25 |
1 files changed, 10 insertions, 15 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/ExpeditedChangeApplicationMaintainer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/ExpeditedChangeApplicationMaintainer.java index d048f43973a..2f3cea8ca64 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/ExpeditedChangeApplicationMaintainer.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/ExpeditedChangeApplicationMaintainer.java @@ -16,7 +16,6 @@ import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Optional; -import java.util.stream.Collectors; /** * This maintainer detects changes to nodes that must be expedited, and redeploys affected applications. @@ -40,25 +39,21 @@ public class ExpeditedChangeApplicationMaintainer extends ApplicationMaintainer @Override protected Map<ApplicationId, String> applicationsNeedingMaintenance() { - var applications = new HashMap<ApplicationId, String>(); - - nodeRepository().nodes() - .list() - .nodeType(NodeType.tenant, NodeType.proxy) - .matching(node -> node.allocation().isPresent()) - .groupingBy(node -> node.allocation().get().owner()) - .forEach((applicationId, nodes) -> { - hasNodesWithChanges(applicationId, nodes) - .ifPresent(reason -> applications.put(applicationId, reason)); - }); - + NodeList allNodes = nodeRepository().nodes().list(); + Map<ApplicationId, String> applications = new HashMap<>(); + allNodes.nodeType(NodeType.tenant, NodeType.proxy) + .matching(node -> node.allocation().isPresent()) + .groupingBy(node -> node.allocation().get().owner()) + .forEach((applicationId, nodes) -> { + hasNodesWithChanges(applicationId, nodes) + .ifPresent(reason -> applications.put(applicationId, reason)); + }); // A ready proxy node should trigger a redeployment as it will activate the node. - if (!nodeRepository().nodes().list(Node.State.ready, Node.State.reserved).nodeType(NodeType.proxy).isEmpty()) { + if (!allNodes.state(Node.State.ready, Node.State.reserved).nodeType(NodeType.proxy).isEmpty()) { applications.merge(ApplicationId.from("hosted-vespa", "routing", "default"), "nodes being ready", (oldValue, newValue) -> oldValue + ", " + newValue); } - return applications; } |