diff options
author | Jon Marius Venstad <jonmv@users.noreply.github.com> | 2023-05-31 08:42:55 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-05-31 08:42:55 +0200 |
commit | af827dc5256e1372033ada8de82f3858f9db7dc0 (patch) | |
tree | 4e85cfb9e6ccf30a6672ea54857c501679e399de /config-model | |
parent | 8714d5cdce3f9e6f7a995688deb3f6432c35356d (diff) | |
parent | 64ef5c1850f07d3a5569f485b2c3777bbb3daaf4 (diff) |
Merge pull request #27214 from vespa-engine/jonmv/custom-host-ttl
Jonmv/custom host ttl
Diffstat (limited to 'config-model')
-rw-r--r-- | config-model/src/main/java/com/yahoo/config/model/ConfigModelContext.java | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/config-model/src/main/java/com/yahoo/config/model/ConfigModelContext.java b/config-model/src/main/java/com/yahoo/config/model/ConfigModelContext.java index 13d87b852e4..a9ee884e977 100644 --- a/config-model/src/main/java/com/yahoo/config/model/ConfigModelContext.java +++ b/config-model/src/main/java/com/yahoo/config/model/ConfigModelContext.java @@ -3,15 +3,18 @@ package com.yahoo.config.model; import com.yahoo.config.application.api.ApplicationPackage; import com.yahoo.config.application.api.DeployLogger; +import com.yahoo.config.application.api.DeploymentSpec; import com.yahoo.config.model.api.ModelContext; import com.yahoo.config.model.deploy.DeployState; import com.yahoo.config.model.producer.AnyConfigProducer; import com.yahoo.config.model.producer.TreeConfigProducer; import com.yahoo.config.provision.ClusterInfo; +import com.yahoo.config.provision.ClusterInfo.Builder; import com.yahoo.vespa.model.VespaModel; import java.time.Duration; import java.util.Comparator; +import java.util.Optional; import java.util.stream.Stream; /** @@ -72,14 +75,20 @@ public final class ConfigModelContext { /** Returns a cluster info builder pre-populated with info known in this context. */ public ClusterInfo.Builder clusterInfo() { - var instance = getApplicationPackage().getDeploymentSpec().instance(properties().applicationId().instance()); - if ( ! instance.isPresent()) return new ClusterInfo.Builder(); + DeploymentSpec spec = getApplicationPackage().getDeploymentSpec(); + var instance = spec.instance(properties().applicationId().instance()); + ClusterInfo.Builder builder = new ClusterInfo.Builder(); + spec.hostTTL().ifPresent(builder::hostTTL); + if (instance.isEmpty()) return builder; + instance.get() + .hostTTL(deployState.zone().environment(), Optional.of(deployState.zone().region())) + .ifPresent(builder::hostTTL); var maxDeadline = instance.get().bcp().groups().stream() .filter(group -> group.memberRegions().contains(properties().zone().region())) .map(group -> group.deadline()) .min(Comparator.comparing(deadline -> deadline)) .orElse(Duration.ofMinutes(0)); - return new ClusterInfo.Builder().bcpDeadline(maxDeadline); + return builder.bcpDeadline(maxDeadline); } /** |