aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--config-model/src/main/java/com/yahoo/config/model/provision/InMemoryProvisioner.java8
-rw-r--r--config-provisioning/src/main/java/com/yahoo/config/provision/NodeResources.java14
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/CapacityPolicies.java8
3 files changed, 16 insertions, 14 deletions
diff --git a/config-model/src/main/java/com/yahoo/config/model/provision/InMemoryProvisioner.java b/config-model/src/main/java/com/yahoo/config/model/provision/InMemoryProvisioner.java
index ae9d696a9a3..dbbbd049bf6 100644
--- a/config-model/src/main/java/com/yahoo/config/model/provision/InMemoryProvisioner.java
+++ b/config-model/src/main/java/com/yahoo/config/model/provision/InMemoryProvisioner.java
@@ -233,13 +233,7 @@ public class InMemoryProvisioner implements HostProvisioner {
// Minimal capacity policies
private NodeResources decideResources(NodeResources resources) {
- if (resources.vcpuIsUnspecified())
- resources = resources.withVcpu(defaultNodeResources.vcpu());
- if (resources.memoryGbIsUnspecified())
- resources = resources.withMemoryGb(defaultNodeResources.memoryGb());
- if (resources.diskGbIsUnspecified())
- resources = resources.withDiskGb(defaultNodeResources.diskGb());
- return resources;
+ return resources.withUnspecifiedNumbersFrom(resources);
}
private List<HostSpec> allocateHostGroup(ClusterSpec clusterGroup, NodeResources requestedResourcesOrUnspecified,
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 36ba12c7cf8..438bb26479d 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
@@ -213,6 +213,7 @@ public class NodeResources {
public boolean vcpuIsUnspecified() { return vcpu == 0; }
public boolean memoryGbIsUnspecified() { return memoryGb == 0; }
public boolean diskGbIsUnspecified() { return diskGb == 0; }
+ public boolean bandwidthGbpsIsUnspecified() { return bandwidthGbps == 0; }
/** Returns the standard cost of these resources, in dollars per hour */
public double cost() {
@@ -267,6 +268,19 @@ public class NodeResources {
return new NodeResources(vcpu, memoryGb, diskGb, bandwidthGbps, diskSpeed, storageType, architecture, gpuResources);
}
+ public NodeResources withUnspecifiedNumbersFrom(NodeResources fullySpecified) {
+ var resources = this;
+ if (resources.vcpuIsUnspecified())
+ resources = resources.withVcpu(fullySpecified.vcpu());
+ if (resources.memoryGbIsUnspecified())
+ resources = resources.withMemoryGb(fullySpecified.memoryGb());
+ if (resources.diskGbIsUnspecified())
+ resources = resources.withDiskGb(fullySpecified.diskGb());
+ if (resources.bandwidthGbpsIsUnspecified())
+ resources = resources.withBandwidthGbps(fullySpecified.bandwidthGbps());
+ return resources;
+ }
+
/** Returns this with disk speed, storage type and architecture set to any */
public NodeResources justNumbers() {
if (isUnspecified()) return unspecified();
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/CapacityPolicies.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/CapacityPolicies.java
index 5b3570a3dfa..5b3c99752de 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/CapacityPolicies.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/provisioning/CapacityPolicies.java
@@ -90,13 +90,7 @@ public class CapacityPolicies {
}
public NodeResources specifyFully(NodeResources resources, ClusterSpec clusterSpec, ApplicationId applicationId) {
- if (resources.vcpuIsUnspecified())
- resources = resources.withVcpu(defaultResources(clusterSpec, applicationId).vcpu());
- if (resources.memoryGbIsUnspecified())
- resources = resources.withMemoryGb(defaultResources(clusterSpec, applicationId).memoryGb());
- if (resources.diskGbIsUnspecified())
- resources = resources.withDiskGb(defaultResources(clusterSpec, applicationId).diskGb());
- return resources;
+ return resources.withUnspecifiedNumbersFrom(defaultResources(clusterSpec, applicationId));
}
private NodeResources defaultResources(ClusterSpec clusterSpec, ApplicationId applicationId) {