aboutsummaryrefslogtreecommitdiffstats
path: root/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeSpec.java
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@gmail.com>2020-09-09 21:02:42 +0200
committerGitHub <noreply@github.com>2020-09-09 21:02:42 +0200
commit8cdd7f7babb2bda6c708c00af9911caafdc79fe0 (patch)
tree5686e64b625b7533ef54c8f6bad13634fd4daa71 /node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeSpec.java
parent3bbf27bf9d235bbaf01165afcb9e175c2bbaaa89 (diff)
Revert "Revert "Bratseth/allocation improvements" MERGEOK"
Diffstat (limited to 'node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeSpec.java')
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeSpec.java12
1 files changed, 12 insertions, 0 deletions
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeSpec.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeSpec.java
index 9971aae1714..f50c988edfd 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeSpec.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeSpec.java
@@ -60,6 +60,9 @@ public interface NodeSpec {
/** Returns whether the given node must be resized to match this spec */
boolean needsResize(Node node);
+ /** Returns true if there exist some circumstance where we may accept to have this node allocated */
+ boolean acceptable(Node node);
+
/**
* Returns true if a node with given current resources and current spare host resources can be resized
* in-place to resources in this spec.
@@ -157,6 +160,9 @@ public interface NodeSpec {
}
@Override
+ public boolean acceptable(Node node) { return true; }
+
+ @Override
public String toString() { return "request for " + count + " nodes with " + requestedNodeResources; }
}
@@ -211,6 +217,12 @@ public interface NodeSpec {
public boolean needsResize(Node node) { return false; }
@Override
+ public boolean acceptable(Node node) {
+ // Since we consume all offered nodes we should not accept previously deactivated nodes
+ return node.state() != Node.State.inactive;
+ }
+
+ @Override
public String toString() { return "request for all nodes of type '" + type + "'"; }
}