diff options
author | Jon Bratseth <bratseth@gmail.com> | 2020-04-08 13:27:51 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@gmail.com> | 2020-04-08 13:27:51 +0200 |
commit | df8cf4a64723a469916f4307c52de6ad62b7f577 (patch) | |
tree | bc484b7a73287ceeb61b9d331848c4067d11cb3e /config-model/src/main/java/com/yahoo/config/model/provision | |
parent | 2f736a2961ccbe3977877c143e390668ae7de8bf (diff) |
Validate resource changes by the lower limit
Diffstat (limited to 'config-model/src/main/java/com/yahoo/config/model/provision')
-rw-r--r-- | config-model/src/main/java/com/yahoo/config/model/provision/InMemoryProvisioner.java | 16 |
1 files changed, 14 insertions, 2 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 298517b85f6..8706bb44ded 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 @@ -4,6 +4,7 @@ package com.yahoo.config.model.provision; import com.yahoo.collections.ListMap; import com.yahoo.collections.Pair; import com.yahoo.config.model.api.HostProvisioner; +import com.yahoo.config.model.api.Provisioned; import com.yahoo.config.provision.Capacity; import com.yahoo.config.provision.ClusterMembership; import com.yahoo.config.provision.ClusterResources; @@ -60,6 +61,8 @@ public class InMemoryProvisioner implements HostProvisioner { private final boolean useMaxResources; + private Provisioned provisioned = new Provisioned(); + /** Creates this with a number of nodes with resources 1, 3, 9, 1 */ public InMemoryProvisioner(int nodeCount) { this(nodeCount, defaultResources); @@ -85,9 +88,11 @@ public class InMemoryProvisioner implements HostProvisioner { this(Map.of(defaultResources, hosts.asCollection()), failOnOutOfCapacity, false, startIndexForClusters, retiredHostNames); } - public InMemoryProvisioner(Map<NodeResources, Collection<Host>> hosts, boolean failOnOutOfCapacity, + public InMemoryProvisioner(Map<NodeResources, Collection<Host>> hosts, + boolean failOnOutOfCapacity, boolean useMaxResources, - int startIndexForClusters, String ... retiredHostNames) { + int startIndexForClusters, + String ... retiredHostNames) { this.failOnOutOfCapacity = failOnOutOfCapacity; this.useMaxResources = useMaxResources; for (Map.Entry<NodeResources, Collection<Host>> hostsWithResources : hosts.entrySet()) @@ -125,6 +130,7 @@ public class InMemoryProvisioner implements HostProvisioner { @Override public List<HostSpec> prepare(ClusterSpec cluster, Capacity requested, ProvisionLogger logger) { + provisioned.add(cluster.id(), requested); if (useMaxResources) return prepare(cluster, requested.maxResources(), requested.isRequired(), requested.canFail()); else @@ -165,6 +171,12 @@ public class InMemoryProvisioner implements HostProvisioner { return allocation; } + /** Create a new provisioned instance to record provision requests to this and returns it */ + public Provisioned startProvisionedRecording() { + provisioned = new Provisioned(); + return provisioned; + } + private HostSpec retire(HostSpec host) { return new HostSpec(host.hostname(), host.aliases(), |