summaryrefslogtreecommitdiffstats
path: root/node-repository
diff options
context:
space:
mode:
authorOla Aunrønning <olaa@verizonmedia.com>2021-06-10 18:15:17 +0200
committerOla Aunrønning <olaa@verizonmedia.com>2021-06-10 18:15:17 +0200
commitee7122e65ca8a28b21131f3b5f70e9a07cf64812 (patch)
tree80f7e51d678dbb5fab41201ea88ede3e903540ec /node-repository
parent8aca5429df49aead904a4d9eced3d8fee0316d0a (diff)
Use NodeList functions to find expirable hosts
Diffstat (limited to 'node-repository')
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/ParkedExpirer.java15
1 files changed, 8 insertions, 7 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/ParkedExpirer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/ParkedExpirer.java
index 9c7e12cc5e1..c5259ee84c4 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/ParkedExpirer.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/maintenance/ParkedExpirer.java
@@ -43,13 +43,14 @@ public class ParkedExpirer extends NodeRepositoryMaintainer {
.nodeType(NodeType.host)
.asList());
- parkedHosts.sort(Comparator.comparing(this::getParkedTime));
- var hostsToExpire = parkedHosts.size() - MAX_ALLOWED_PARKED_HOSTS;
- for(int i = 0; i < hostsToExpire; i++) {
- var parkedHost = parkedHosts.get(i);
- log.info("Allowed number of parked nodes exceeded. Recycling " + parkedHost.hostname());
- nodeRepository.nodes().deallocate(parkedHost, Agent.ParkedExpirer, "Expired by ParkedExpirer");
- }
+ int hostsToExpire = Math.max(0, parkedHosts.size() - MAX_ALLOWED_PARKED_HOSTS);
+ nodeRepository.nodes().list(Node.State.parked).nodeType(NodeType.host)
+ .sortedBy(Comparator.comparing(this::getParkedTime))
+ .first(hostsToExpire)
+ .forEach(host -> {
+ log.info("Allowed number of parked nodes exceeded. Recycling " + host.hostname());
+ nodeRepository.nodes().deallocate(host, Agent.ParkedExpirer, "Expired by ParkedExpirer");
+ });
return 1.0;
}