summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2023-03-03 11:56:23 +0100
committerMartin Polden <mpolden@mpolden.no>2023-03-09 10:26:19 +0100
commit3ebff726219d0d6d4364d2b08ddff178ebca205d (patch)
tree6e039903ec5447946a96d1ba3876fddd3cab45d4
parent48135d0ee789ead6081ca3d25861cef07f3c478e (diff)
List nodes once
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/ExpeditedChangeApplicationMaintainer.java25
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;
}