diff options
author | Jon Bratseth <bratseth@gmail.com> | 2024-05-19 14:12:41 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-05-19 14:12:41 +0200 |
commit | cbb09179e61b54c568ed9976194402e935977946 (patch) | |
tree | 464cf634df5a326f7065a6d6a226a1154d8a6fd2 /config-model-api | |
parent | dbd26dbe414187f6f5acbd18785549d9ced2a281 (diff) | |
parent | 12ea6e856952196c38fc47f6b9318900a046f2a0 (diff) |
Merge pull request #31241 from vespa-engine/hakonhall/quota-capacity-policies
Hakonhall/quota capacity policies
Diffstat (limited to 'config-model-api')
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); } } |