diff options
author | Ola Aunrønning <olaa@verizonmedia.com> | 2021-06-10 18:15:17 +0200 |
---|---|---|
committer | Ola Aunrønning <olaa@verizonmedia.com> | 2021-06-10 18:15:17 +0200 |
commit | ee7122e65ca8a28b21131f3b5f70e9a07cf64812 (patch) | |
tree | 80f7e51d678dbb5fab41201ea88ede3e903540ec /node-repository | |
parent | 8aca5429df49aead904a4d9eced3d8fee0316d0a (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.java | 15 |
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; } |