aboutsummaryrefslogtreecommitdiffstats
path: root/controller-server
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2022-09-07 11:54:54 +0200
committerMartin Polden <mpolden@mpolden.no>2022-09-12 09:27:42 +0200
commit89dd1b69ed6d036715969bbe2d1c28d20c731d43 (patch)
tree1fdc5c966907496746c1394d825cc549d9f40858 /controller-server
parent939eb860022dde6689c1dabae11ff640d529e9a1 (diff)
Allow cloud-account attribute on non-production elements
Diffstat (limited to 'controller-server')
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java3
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/pkg/ApplicationPackageValidator.java4
2 files changed, 3 insertions, 4 deletions
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 cb5bef81890..64e2c20e68c 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
@@ -59,7 +59,6 @@ import com.yahoo.vespa.hosted.controller.application.pkg.ApplicationPackageValid
import com.yahoo.vespa.hosted.controller.athenz.impl.AthenzFacade;
import com.yahoo.vespa.hosted.controller.certificate.EndpointCertificates;
import com.yahoo.vespa.hosted.controller.concurrent.Once;
-import com.yahoo.vespa.hosted.controller.deployment.DeploymentStatus;
import com.yahoo.vespa.hosted.controller.deployment.DeploymentTrigger;
import com.yahoo.vespa.hosted.controller.deployment.JobStatus;
import com.yahoo.vespa.hosted.controller.deployment.Run;
@@ -632,7 +631,7 @@ public class ApplicationController {
.collect(toList());
Optional<CloudAccount> cloudAccount = applicationPackage.deploymentSpec()
.instance(application.instance())
- .flatMap(spec -> spec.cloudAccount(zone.environment(), zone.region()));
+ .flatMap(spec -> spec.cloudAccount(zone.environment(), Optional.of(zone.region())));
ConfigServer.PreparedApplication preparedApplication =
configServer.deploy(new DeploymentData(application, zone, applicationPackage.zippedContent(), platform,
endpoints, endpointCertificateMetadata, dockerImageRepo, domain,
diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/pkg/ApplicationPackageValidator.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/pkg/ApplicationPackageValidator.java
index 5a131ba4a29..cb48b4aa621 100644
--- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/pkg/ApplicationPackageValidator.java
+++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/application/pkg/ApplicationPackageValidator.java
@@ -98,7 +98,7 @@ public class ApplicationPackageValidator {
if (!controller.zoneRegistry().hasZone(ZoneId.from(environment, region))) {
throw new IllegalArgumentException("Zone " + zone + " in deployment spec was not found in this system!");
}
- Optional<CloudAccount> cloudAccount = spec.cloudAccount(environment, region);
+ Optional<CloudAccount> cloudAccount = spec.cloudAccount(environment, zone.region());
if (cloudAccount.isPresent() && !controller.zoneRegistry().hasZone(ZoneId.from(environment, region), cloudAccount.get())) {
throw new IllegalArgumentException("Zone " + zone + " in deployment spec is not configured for " +
"use in cloud account '" + cloudAccount.get().value() +
@@ -195,7 +195,7 @@ public class ApplicationPackageValidator {
for (var spec : deploymentSpec.instances()) {
for (var zone : spec.zones()) {
if (!zone.environment().isProduction()) continue;
- Optional<CloudAccount> cloudAccount = spec.cloudAccount(zone.environment(), zone.region().get());
+ Optional<CloudAccount> cloudAccount = spec.cloudAccount(zone.environment(), zone.region());
if (cloudAccount.isEmpty()) continue;
if (validAccounts.contains(cloudAccount.get())) continue;
throw new IllegalArgumentException("Cloud account '" + cloudAccount.get().value() +