diff options
author | Harald Musum <musum@yahooinc.com> | 2023-08-30 20:35:49 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-30 20:35:49 +0200 |
commit | c4f2bff951186e70254f8063ac1a5fdbadb3539d (patch) | |
tree | 493deb0d29f465dc4d04376c4ec51c0fac0fb06b | |
parent | a907f4488daa32f31c3240f20c7eeafb95d28ad4 (diff) |
Revert "Jonmv/always use newest cloud account in tests"
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); |