aboutsummaryrefslogtreecommitdiffstats
path: root/config-model/src
diff options
context:
space:
mode:
authorjonmv <venstad@gmail.com>2023-08-30 13:28:04 +0200
committerjonmv <venstad@gmail.com>2023-08-30 13:28:04 +0200
commit48efe7bc28cdf4ae7c38f1a3794779a0f60bcfd8 (patch)
tree2c6dff296260cabf98e72f216807517defa27d11 /config-model/src
parent58bc7893a5cfc62aa7debdf231447cea7600576a (diff)
Use deployed cloud account when deciding host TTL, and ignore when noclave
Diffstat (limited to 'config-model/src')
-rw-r--r--config-model/src/main/java/com/yahoo/config/model/ConfigModelContext.java10
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/ClusterInfoTest.java8
2 files changed, 6 insertions, 12 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 abd803dcebb..ad50ad02171 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
@@ -9,6 +9,7 @@ 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.CloudAccount;
import com.yahoo.config.provision.ClusterInfo;
import com.yahoo.config.provision.ClusterInfo.Builder;
import com.yahoo.config.provision.zone.ZoneId;
@@ -81,13 +82,8 @@ public final class ConfigModelContext {
ClusterInfo.Builder builder = new ClusterInfo.Builder();
spec.hostTTL(properties().applicationId().instance(), deployState.zone().environment(), deployState.zone().region())
.filter(ttl -> ! ttl.isZero())
- .ifPresent(ttl -> {
- ZoneId zoneId = ZoneId.from(deployState.zone().environment(), deployState.zone().region());
- if (spec.cloudAccount(deployState.zone().cloud().name(), properties().applicationId().instance(), zoneId).isUnspecified())
- throw new IllegalArgumentException("deployment spec specifies host TTL for " + zoneId +
- " but no cloud account is specified for this zone");
- builder.hostTTL(ttl);
- });
+ .filter(__ -> deployState.getProperties().cloudAccount().map(account -> ! account.isUnspecified()).orElse(false))
+ .ifPresent(builder::hostTTL);
spec.instance(properties().applicationId().instance())
.flatMap(instance -> instance.bcp().groups().stream()
.filter(group -> group.memberRegions().contains(properties().zone().region()))
diff --git a/config-model/src/test/java/com/yahoo/vespa/model/ClusterInfoTest.java b/config-model/src/test/java/com/yahoo/vespa/model/ClusterInfoTest.java
index 1734e9f074f..16e13a66a44 100644
--- a/config-model/src/test/java/com/yahoo/vespa/model/ClusterInfoTest.java
+++ b/config-model/src/test/java/com/yahoo/vespa/model/ClusterInfoTest.java
@@ -12,6 +12,7 @@ import com.yahoo.config.provision.Cloud;
import com.yahoo.config.provision.CloudAccount;
import com.yahoo.config.provision.CloudName;
import com.yahoo.config.provision.ClusterSpec;
+import com.yahoo.config.provision.ClusterSpec.Id;
import com.yahoo.config.provision.Environment;
import com.yahoo.config.provision.InstanceName;
import com.yahoo.config.provision.RegionName;
@@ -216,7 +217,7 @@ public class ClusterInfoTest {
<deployment version='1.0' empty-host-ttl='1d'>
<instance id='default'>
<prod>
- <region cloud-account='gcp:foobar'>us-east-1</region>
+ <region>us-east-1</region>
<region empty-host-ttl='0m'>us-north-1</region>
<region>us-west-1</region>
</prod>
@@ -228,10 +229,7 @@ public class ClusterInfoTest {
CloudAccount account = CloudAccount.from("gcp:foobar");
assertEquals(Duration.ofHours(24), requestedCapacityIn(account, gcp, "default", "us-east-1", servicesXml, deploymentXml).get(new ClusterSpec.Id("testcontainer")).clusterInfo().hostTTL());
assertEquals(Duration.ZERO, requestedCapacityIn(account, gcp, "default", "us-north-1", servicesXml, deploymentXml).get(new ClusterSpec.Id("testcontainer")).clusterInfo().hostTTL());
- assertEquals("In container cluster 'testcontainer': deployment spec specifies host TTL for prod.us-west-1 but no cloud account is specified for this zone",
- Exceptions.toMessageString(assertThrows(IllegalArgumentException.class,
- () -> requestedCapacityIn(account, gcp, "default", "us-west-1", servicesXml, deploymentXml))));
-
+ assertEquals(Duration.ZERO, requestedCapacityIn(CloudAccount.empty, gcp, "default", "us-west-1", servicesXml, deploymentXml).get(new Id("testcontainer")).clusterInfo().hostTTL());
}
private Map<ClusterSpec.Id, Capacity> requestedCapacityIn(String instance, String region, String servicesXml, String deploymentXml) throws Exception {