diff options
Diffstat (limited to 'config-provisioning/src/main/java/com/yahoo')
-rw-r--r-- | config-provisioning/src/main/java/com/yahoo/config/provision/ClusterResources.java | 4 | ||||
-rw-r--r-- | config-provisioning/src/main/java/com/yahoo/config/provision/NodeResources.java | 5 |
2 files changed, 8 insertions, 1 deletions
diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/ClusterResources.java b/config-provisioning/src/main/java/com/yahoo/config/provision/ClusterResources.java index a4ed22c5266..87b5133d4eb 100644 --- a/config-provisioning/src/main/java/com/yahoo/config/provision/ClusterResources.java +++ b/config-provisioning/src/main/java/com/yahoo/config/provision/ClusterResources.java @@ -44,10 +44,12 @@ public class ClusterResources { return false; } - /** Returns true if this is within the given limits (inclusive) */ + /** Returns true if this is within the given limits (inclusive) and is compatible with them */ public boolean isWithin(ClusterResources min, ClusterResources max) { if (this.smallerThan(min)) return false; if (max.smallerThan(this)) return false; + if ( ! this.nodeResources.justNonNumbers().compatibleWith(min.nodeResources.justNonNumbers())) return false; + if ( ! this.nodeResources.justNonNumbers().compatibleWith(max.nodeResources.justNonNumbers())) return false; return true; } 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 5fc05a87a7d..05b604b263f 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 @@ -148,6 +148,11 @@ public class NodeResources { return with(NodeResources.DiskSpeed.any).with(StorageType.any); } + /** Returns this with all numbers set to 0 */ + public NodeResources justNonNumbers() { + return withVcpu(0).withMemoryGb(0).withDiskGb(0).withBandwidthGbps(0); + } + public NodeResources subtract(NodeResources other) { if ( ! this.isInterchangeableWith(other)) throw new IllegalArgumentException(this + " and " + other + " are not interchangeable"); |