aboutsummaryrefslogtreecommitdiffstats
path: root/config-model-api
diff options
context:
space:
mode:
authorJon Bratseth <bratseth@gmail.com>2024-05-19 14:12:41 +0200
committerGitHub <noreply@github.com>2024-05-19 14:12:41 +0200
commitcbb09179e61b54c568ed9976194402e935977946 (patch)
tree464cf634df5a326f7065a6d6a226a1154d8a6fd2 /config-model-api
parentdbd26dbe414187f6f5acbd18785549d9ced2a281 (diff)
parent12ea6e856952196c38fc47f6b9318900a046f2a0 (diff)
Merge pull request #31241 from vespa-engine/hakonhall/quota-capacity-policies
Hakonhall/quota capacity policies
Diffstat (limited to 'config-model-api')
-rw-r--r--config-model-api/abi-spec.json7
-rw-r--r--config-model-api/src/main/java/com/yahoo/config/model/api/ModelContext.java5
-rw-r--r--config-model-api/src/main/java/com/yahoo/config/model/api/Provisioned.java21
3 files changed, 29 insertions, 4 deletions
diff --git a/config-model-api/abi-spec.json b/config-model-api/abi-spec.json
index e493840ef82..888a233c62a 100644
--- a/config-model-api/abi-spec.json
+++ b/config-model-api/abi-spec.json
@@ -1326,7 +1326,9 @@
"public boolean alwaysMarkPhraseExpensive()",
"public boolean sortBlueprintsByCost()",
"public int persistenceThreadMaxFeedOpBatchSize()",
- "public boolean logserverOtelCol()"
+ "public boolean logserverOtelCol()",
+ "public com.yahoo.config.provision.SharedHosts sharedHosts()",
+ "public com.yahoo.config.provision.NodeResources$Architecture adminClusterArchitecture()"
],
"fields" : [ ]
},
@@ -1624,6 +1626,9 @@
],
"methods" : [
"public void <init>()",
+ "public void add(com.yahoo.config.provision.ClusterSpec, com.yahoo.config.provision.Capacity)",
+ "public java.util.Map clusters()",
+ "public java.util.Map capacities()",
"public void add(com.yahoo.config.provision.ClusterSpec$Id, com.yahoo.config.provision.Capacity)",
"public java.util.Map all()"
],
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 ad5ab5b7ee4..67735329287 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
@@ -12,6 +12,9 @@ import com.yahoo.config.provision.ClusterSpec;
import com.yahoo.config.provision.DataplaneToken;
import com.yahoo.config.provision.DockerImage;
import com.yahoo.config.provision.HostName;
+import com.yahoo.config.provision.NodeResources;
+import com.yahoo.config.provision.NodeResources.Architecture;
+import com.yahoo.config.provision.SharedHosts;
import com.yahoo.config.provision.Zone;
import java.io.File;
@@ -114,6 +117,8 @@ public interface ModelContext {
@ModelFeatureFlag(owners = {"baldersheim"}) default boolean sortBlueprintsByCost() { return false; }
@ModelFeatureFlag(owners = {"vekterli"}) default int persistenceThreadMaxFeedOpBatchSize() { return 1; }
@ModelFeatureFlag(owners = {"olaa"}) default boolean logserverOtelCol() { return false; }
+ @ModelFeatureFlag(owners = {"bratseth"}) default SharedHosts sharedHosts() { return SharedHosts.empty(); }
+ @ModelFeatureFlag(owners = {"bratseth"}) default Architecture adminClusterArchitecture() { return Architecture.x86_64; }
}
/** Warning: As elsewhere in this package, do not make backwards incompatible changes that will break old config models! */
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
index db0822c4c10..81e0cb58c7d 100644
--- 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
@@ -16,13 +16,28 @@ import java.util.Map;
*/
public class Provisioned {
- private final Map<ClusterSpec.Id, Capacity> provisioned = new HashMap<>();
+ private final Map<ClusterSpec.Id, ClusterSpec> clusters = new HashMap<>();
+ private final Map<ClusterSpec.Id, Capacity> capacities = new HashMap<>();
+
+ public void add(ClusterSpec cluster, Capacity capacity) {
+ clusters.put(cluster.id(), cluster);
+ capacities.put(cluster.id(), capacity);
+ }
+
+ /** Returns an unmodifiable map of all the cluster requests recorded during build of the model this belongs to */
+ public Map<ClusterSpec.Id, ClusterSpec> clusters() { return Collections.unmodifiableMap(clusters); }
+
+ /** Returns an unmodifiable map of all the capacity provision requests recorded during build of the model this belongs to */
+ public Map<ClusterSpec.Id, Capacity> capacities() { return Collections.unmodifiableMap(capacities); }
+
+ // TODO: Remove after June 2024
public void add(ClusterSpec.Id id, Capacity capacity) {
- provisioned.put(id, capacity);
+ capacities.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); }
+ // TODO: Remove after June 2024
+ public Map<ClusterSpec.Id, Capacity> all() { return Collections.unmodifiableMap(capacities); }
}