diff options
author | Valerij Fredriksen <valerijf@verizonmedia.com> | 2019-08-13 11:53:21 +0200 |
---|---|---|
committer | Valerij Fredriksen <valerijf@verizonmedia.com> | 2019-08-13 11:53:21 +0200 |
commit | 8d3b494c03f11e63d5e7459f7bd855b94ef37fdd (patch) | |
tree | c182937e34e406502715e84b35be983454e70aa9 | |
parent | e8d378186fbe5c51666ca104011e1f2024dd9532 (diff) |
Ress resources is not compatible with more resources
-rw-r--r-- | config-provisioning/src/main/java/com/yahoo/config/provision/NodeResources.java | 15 | ||||
-rw-r--r-- | node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/NodeSpec.java | 6 |
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 |