aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Musum <musum@yahooinc.com>2023-08-30 20:35:49 +0200
committerGitHub <noreply@github.com>2023-08-30 20:35:49 +0200
commitc4f2bff951186e70254f8063ac1a5fdbadb3539d (patch)
tree493deb0d29f465dc4d04376c4ec51c0fac0fb06b
parenta907f4488daa32f31c3240f20c7eeafb95d28ad4 (diff)
Revert "Jonmv/always use newest cloud account in tests"
-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
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java4
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunner.java4
4 files changed, 15 insertions, 11 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 ad50ad02171..abd803dcebb 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,7 +9,6 @@ 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;
@@ -82,8 +81,13 @@ 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())
- .filter(__ -> deployState.getProperties().cloudAccount().map(account -> ! account.isUnspecified()).orElse(false))
- .ifPresent(builder::hostTTL);
+ .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);
+ });
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 16e13a66a44..1734e9f074f 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,7 +12,6 @@ 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;
@@ -217,7 +216,7 @@ public class ClusterInfoTest {
<deployment version='1.0' empty-host-ttl='1d'>
<instance id='default'>
<prod>
- <region>us-east-1</region>
+ <region cloud-account='gcp:foobar'>us-east-1</region>
<region empty-host-ttl='0m'>us-north-1</region>
<region>us-west-1</region>
</prod>
@@ -229,7 +228,10 @@ 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(Duration.ZERO, requestedCapacityIn(CloudAccount.empty, gcp, "default", "us-west-1", servicesXml, deploymentXml).get(new 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))));
+
}
private Map<ClusterSpec.Id, Capacity> requestedCapacityIn(String instance, String region, String servicesXml, String deploymentXml) throws Exception {
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java
index 6d746c85d72..bac2c0ab9d7 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java
@@ -682,9 +682,7 @@ public class ApplicationController {
if (testerCertificate.isPresent()) {
operatorCertificates = Stream.concat(operatorCertificates.stream(), testerCertificate.stream()).toList();
}
- Supplier<Optional<CloudAccount>> cloudAccount = () -> decideCloudAccountOf(deployment,
- zone.environment().isTest() ? requireApplication(TenantAndApplicationId.from(application)).deploymentSpec()
- : applicationPackage.truncatedPackage().deploymentSpec());
+ Supplier<Optional<CloudAccount>> cloudAccount = () -> decideCloudAccountOf(deployment, applicationPackage.truncatedPackage().deploymentSpec());
List<DataplaneTokenVersions> dataplaneTokenVersions = controller.dataplaneTokenService().listTokens(application.tenant());
Supplier<Optional<EndpointCertificate>> endpointCertificateWrapper = () -> {
Optional<EndpointCertificate> data = endpointCertificate.get();
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunner.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunner.java
index 0ce3a3d75d4..07695c17042 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunner.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunner.java
@@ -131,15 +131,15 @@ public class InternalStepRunner implements StepRunner {
try {
return switch (step.get()) {
case deployTester -> deployTester(id, logger);
- case installTester -> installTester(id, logger);
case deployInitialReal -> deployInitialReal(id, logger);
case installInitialReal -> installInitialReal(id, logger);
case deployReal -> deployReal(id, logger);
+ case installTester -> installTester(id, logger);
case installReal -> installReal(id, logger);
case startStagingSetup -> startTests(id, true, logger);
case endStagingSetup -> endTests(id, true, logger);
- case startTests -> startTests(id, false, logger);
case endTests -> endTests(id, false, logger);
+ case startTests -> startTests(id, false, logger);
case copyVespaLogs -> copyVespaLogs(id, logger);
case deactivateReal -> deactivateReal(id, logger);
case deactivateTester -> deactivateTester(id, logger);