summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorValerij Fredriksen <valerijf@verizonmedia.com>2019-08-13 11:53:21 +0200
committerValerij Fredriksen <valerijf@verizonmedia.com>2019-08-13 11:53:21 +0200
commit8d3b494c03f11e63d5e7459f7bd855b94ef37fdd (patch)
treec182937e34e406502715e84b35be983454e70aa9
parente8d378186fbe5c51666ca104011e1f2024dd9532 (diff)
Ress resources is not compatible with more resources
-rw-r--r--config-provisioning/src/main/java/com/yahoo/config/provision/NodeResources.java15
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeSpec.java6
2 files changed, 17 insertions, 4 deletions
diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/NodeResources.java b/config-provisioning/src/main/java/com/yahoo/config/provision/NodeResources.java
index 165b497252d..7e90767c9c5 100644
--- a/config-provisioning/src/main/java/com/yahoo/config/provision/NodeResources.java
+++ b/config-provisioning/src/main/java/com/yahoo/config/provision/NodeResources.java
@@ -149,7 +149,7 @@ public class NodeResources {
if (this.allocateByLegacyName || other.allocateByLegacyName) // resources are not available
return Objects.equals(this.legacyName, other.legacyName);
- if (this.vcpu < other.vcpu()) return false;
+ if (this.vcpu < other.vcpu) return false;
if (this.memoryGb < other.memoryGb) return false;
if (this.diskGb < other.diskGb) return false;
@@ -161,6 +161,19 @@ public class NodeResources {
return true;
}
+ /** Returns true if all the resources of this are the same as or compatible with the given resources */
+ public boolean compatibleWith(NodeResources other) {
+ if (this.allocateByLegacyName || other.allocateByLegacyName) // resources are not available
+ return Objects.equals(this.legacyName, other.legacyName);
+
+ if (this.vcpu != other.vcpu) return false;
+ if (this.memoryGb != other.memoryGb) return false;
+ if (this.diskGb != other.diskGb) return false;
+ if (other.diskSpeed != DiskSpeed.any && other.diskSpeed != this.diskSpeed) return false;
+
+ return true;
+ }
+
/**
* Create this from serial form.
*
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 5c2c78cef5d..66a8f2f8f6d 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
@@ -1,10 +1,10 @@
// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
package com.yahoo.vespa.hosted.provision.provisioning;
-import com.yahoo.config.provision.NodeResources;
+import com.yahoo.config.provision.Flavor;
import com.yahoo.config.provision.NodeFlavors;
+import com.yahoo.config.provision.NodeResources;
import com.yahoo.config.provision.NodeType;
-import com.yahoo.config.provision.Flavor;
import com.yahoo.vespa.hosted.provision.Node;
import java.util.Objects;
@@ -98,7 +98,7 @@ public interface NodeSpec {
}
else {
if (flavor.isDocker()) { // Docker nodes can satisfy a request for parts of their resources
- if (flavor.resources().satisfies(requestedNodeResources))
+ if (flavor.resources().compatibleWith(requestedNodeResources))
return true;
}
else { // Other nodes must be matched exactly