summaryrefslogtreecommitdiffstats
path: root/config-model-api
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-api
parent2f736a2961ccbe3977877c143e390668ae7de8bf (diff)
Validate resource changes by the lower limit
Diffstat (limited to 'config-model-api')
-rw-r--r--config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java1
-rw-r--r--config-model-api/src/main/java/com/yahoo/config/model/api/Provisioned.java28
2 files changed, 29 insertions, 0 deletions
diff --git a/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java b/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java
index c5477bf55b3..b8f03794301 100644
--- a/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java
+++ b/config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java
@@ -27,6 +27,7 @@ public interface ModelContext {
Optional<Model> previousModel();
Optional<ApplicationPackage> permanentApplicationPackage();
Optional<HostProvisioner> hostProvisioner();
+ Provisioned provisioned();
DeployLogger deployLogger();
ConfigDefinitionRepo configDefinitionRepo();
FileRegistry getFileRegistry();
diff --git a/config-model-api/src/main/java/com/yahoo/config/model/api/Provisioned.java b/config-model-api/src/main/java/com/yahoo/config/model/api/Provisioned.java
new file mode 100644
index 00000000000..e4201836e57
--- /dev/null
+++ b/config-model-api/src/main/java/com/yahoo/config/model/api/Provisioned.java
@@ -0,0 +1,28 @@
+// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.config.model.api;
+
+import com.yahoo.config.provision.Capacity;
+import com.yahoo.config.provision.ClusterSpec;
+
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * A recording of the capacity requests issued during a model build.
+ * Requests are only recorded here if provision requests are issued to the node repo.
+ *
+ * @author bratseth
+ */
+public class Provisioned {
+
+ private final Map<ClusterSpec.Id, Capacity> provisioned = new HashMap<>();
+
+ public void add(ClusterSpec.Id id, Capacity capacity) {
+ provisioned.put(id, capacity);
+ }
+
+ /** Returns an unmodifiable map of all the provision requests recorded during build of the model this belongs to */
+ public Map<ClusterSpec.Id, Capacity> all() { return Collections.unmodifiableMap(provisioned); }
+
+}