summaryrefslogtreecommitdiffstats
path: root/config-model/src/main/java/com/yahoo/config/model/provision
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@gmail.com>2020-04-08 13:27:51 +0200
committerJon Bratseth <bratseth@gmail.com>2020-04-08 13:27:51 +0200
commitdf8cf4a64723a469916f4307c52de6ad62b7f577 (patch)
treebc484b7a73287ceeb61b9d331848c4067d11cb3e /config-model/src/main/java/com/yahoo/config/model/provision
parent2f736a2961ccbe3977877c143e390668ae7de8bf (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.java16
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(),