From 8c5ba27b1f00bf6e2656f24f10d2dcfa1bdbf04e Mon Sep 17 00:00:00 2001 From: Martin Polden Date: Tue, 23 Feb 2021 15:41:26 +0100 Subject: Simplify --- .../vespa/hosted/provision/provisioning/NodeAllocation.java | 2 +- .../vespa/hosted/provision/provisioning/NodeCandidate.java | 10 +++++----- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeAllocation.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeAllocation.java index 042d227f8f1..d5d221cba7c 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeAllocation.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeAllocation.java @@ -154,7 +154,7 @@ class NodeAllocation { if (violatesParentHostPolicy(candidate)) return true; if ( ! hasCompatibleFlavor(candidate)) return true; if (candidate.wantToRetire()) return true; - if (candidate.preferToRetire() && !candidate.replacementIncreasesSkew(candidates)) return true; + if (candidate.preferToRetire() && candidate.replacableBy(candidates)) return true; if (violatesExclusivity(candidate)) return true; return false; } diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeCandidate.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeCandidate.java index 297a8ed77e6..143ae8f99ad 100644 --- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeCandidate.java +++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeCandidate.java @@ -99,18 +99,18 @@ public abstract class NodeCandidate implements Nodelike, Comparable candidates) { + /** Returns whether this can be replaced by any of the reserved candidates */ + public boolean replacableBy(List candidates) { return candidates.stream() .filter(candidate -> candidate.state() == Node.State.reserved) - .allMatch(reserved -> { - int switchPriority = switchPriority(reserved); + .anyMatch(candidate -> { + int switchPriority = candidate.switchPriority(this); if (switchPriority < 0) { return true; } else if (switchPriority > 0) { return false; } - return hostPriority(reserved) < 0; + return candidate.hostPriority(this) < 0; }); } -- cgit v1.2.3