summaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorJon Marius Venstad <jonmv@users.noreply.github.com>2023-05-31 08:42:55 +0200
committerGitHub <noreply@github.com>2023-05-31 08:42:55 +0200
commitaf827dc5256e1372033ada8de82f3858f9db7dc0 (patch)
tree4e85cfb9e6ccf30a6672ea54857c501679e399de /config-model
parent8714d5cdce3f9e6f7a995688deb3f6432c35356d (diff)
parent64ef5c1850f07d3a5569f485b2c3777bbb3daaf4 (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.java15
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);
}
/**