diff options
author | jonmv <venstad@gmail.com> | 2023-05-26 09:59:08 +0200 |
---|---|---|
committer | jonmv <venstad@gmail.com> | 2023-05-26 10:38:45 +0200 |
commit | cdd9d7bb5fcdb154f6cc9fa129d3a65e22f7a63a (patch) | |
tree | 5357447d4050a410cfd7cf3de44d12a93855d2a1 /config-model | |
parent | 3c3458a27beb1167d2b5d28898b3e13f44e0b8a0 (diff) |
Add empty-host-ttl to deployment spec
Diffstat (limited to 'config-model')
-rw-r--r-- | config-model/src/main/java/com/yahoo/config/model/ConfigModelContext.java | 16 |
1 files changed, 12 insertions, 4 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 60592a7951f..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,15 +75,20 @@ public final class ConfigModelContext { /** Returns a cluster info builder pre-populated with info known in this context. */ public ClusterInfo.Builder clusterInfo() { - // TODO jonmv: get TTL - 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); } /** |