diff options
author | Jon Bratseth <bratseth@vespa.ai> | 2023-05-15 20:47:16 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@vespa.ai> | 2023-05-15 20:47:16 +0200 |
commit | 9406d9e50a3b0d183ec2d76595679eea41f0129f (patch) | |
tree | c75ae3cd85aa29522043ceb1f3f49e80fe6f8f5f /config-model/src/main | |
parent | c2a220bed85e7af09f62d34de339b168d9507b87 (diff) |
Make all node resource elements optional
Diffstat (limited to 'config-model/src/main')
3 files changed, 14 insertions, 9 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 41697e61bf2..4b993f8e244 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 @@ -232,9 +232,14 @@ public class InMemoryProvisioner implements HostProvisioner { } // Minimal capacity policies - private NodeResources decideResources(NodeResources requestedResources) { - if (requestedResources.isUnspecified()) return defaultNodeResources; - return requestedResources; + 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; } private List<HostSpec> allocateHostGroup(ClusterSpec clusterGroup, NodeResources requestedResourcesOrUnspecified, diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/NodesSpecification.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/NodesSpecification.java index c968e31325a..e70c555a366 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/NodesSpecification.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/NodesSpecification.java @@ -307,9 +307,9 @@ public class NodesSpecification { } private static Pair<NodeResources, NodeResources> nodeResourcesFromResourcesElement(ModelElement element) { - Pair<Double, Double> vcpu = toRange(element.requiredStringAttribute("vcpu"), .0, Double::parseDouble); - Pair<Double, Double> memory = toRange(element.requiredStringAttribute("memory"), .0, s -> parseGbAmount(s, "B")); - Pair<Double, Double> disk = toRange(element.requiredStringAttribute("disk"), .0, s -> parseGbAmount(s, "B")); + Pair<Double, Double> vcpu = toRange(element.stringAttribute("vcpu"), .0, Double::parseDouble); + Pair<Double, Double> memory = toRange(element.stringAttribute("memory"), .0, s -> parseGbAmount(s, "B")); + Pair<Double, Double> disk = toRange(element.stringAttribute("disk"), .0, s -> parseGbAmount(s, "B")); Pair<Double, Double> bandwith = toRange(element.stringAttribute("bandwidth"), .3, s -> parseGbAmount(s, "BPS")); NodeResources.DiskSpeed diskSpeed = parseOptionalDiskSpeed(element.stringAttribute("disk-speed")); NodeResources.StorageType storageType = parseOptionalStorageType(element.stringAttribute("storage-type")); diff --git a/config-model/src/main/resources/schema/common.rnc b/config-model/src/main/resources/schema/common.rnc index 538a8f069f5..21f3399a027 100644 --- a/config-model/src/main/resources/schema/common.rnc +++ b/config-model/src/main/resources/schema/common.rnc @@ -23,9 +23,9 @@ Nodes = element nodes { } Resources = element resources { - attribute vcpu { xsd:double { minExclusive = "0.0" } | xsd:string } & - attribute memory { xsd:string } & - attribute disk { xsd:string } & + attribute vcpu { xsd:double { minExclusive = "0.0" } | xsd:string }? & + attribute memory { xsd:string }? & + attribute disk { xsd:string }? & attribute disk-speed { xsd:string }? & attribute storage-type { xsd:string }? & attribute architecture { xsd:string }? & |