From 8e4f20aac626d8951d0d2937f96d09f45364bd78 Mon Sep 17 00:00:00 2001 From: Jon Marius Venstad Date: Thu, 28 Nov 2019 14:06:27 +0100 Subject: Rename deploysTo -> concerns in DeploymentSpec.Step, and includes -> deploysTo --- .../application/api/DeploymentInstanceSpec.java | 43 +++++---------- .../config/application/api/DeploymentSpec.java | 31 +++++------ .../config/application/api/DeploymentSpecTest.java | 61 +++++++++++----------- .../api/DeploymentSpecWithoutInstanceTest.java | 59 ++++++++++----------- .../model/container/xml/ContainerModelBuilder.java | 2 +- .../hosted/controller/ApplicationController.java | 11 ++-- .../controller/deployment/DeploymentSteps.java | 3 +- .../controller/deployment/InternalStepRunner.java | 2 +- .../controller/rotation/RotationRepository.java | 2 +- 9 files changed, 92 insertions(+), 122 deletions(-) diff --git a/config-model-api/src/main/java/com/yahoo/config/application/api/DeploymentInstanceSpec.java b/config-model-api/src/main/java/com/yahoo/config/application/api/DeploymentInstanceSpec.java index f96400fc9a9..7645f4c4ebe 100644 --- a/config-model-api/src/main/java/com/yahoo/config/application/api/DeploymentInstanceSpec.java +++ b/config-model-api/src/main/java/com/yahoo/config/application/api/DeploymentInstanceSpec.java @@ -80,7 +80,7 @@ public class DeploymentInstanceSpec extends DeploymentSpec.Step { Objects.requireNonNull(endpoints, "Missing endpoints parameter"); var productionRegions = steps.stream() - .filter(step -> step.deploysTo(Environment.prod)) + .filter(step -> step.concerns(Environment.prod)) .flatMap(step -> step.zones().stream()) .flatMap(zone -> zone.region().stream()) .map(RegionName::value) @@ -173,19 +173,17 @@ public class DeploymentInstanceSpec extends DeploymentSpec.Step { .noneMatch(block -> block.window().includes(instant)); } - /** Returns all the deployment steps which are zones in the order they are declared */ + @Override public List zones() { return steps.stream() .flatMap(step -> step.zones().stream()) - .collect(Collectors.toList()); + .collect(Collectors.toUnmodifiableList()); } /** Returns whether this deployment spec specifies the given zone, either implicitly or explicitly */ @Override - public boolean deploysTo(Environment environment, Optional region) { - for (DeploymentSpec.Step step : steps) - if (step.deploysTo(environment, region)) return true; - return false; + public boolean concerns(Environment environment, Optional region) { + return steps.stream().anyMatch(step -> step.concerns(environment, region)); } /** Returns the athenz domain if configured */ @@ -193,12 +191,11 @@ public class DeploymentInstanceSpec extends DeploymentSpec.Step { /** Returns the athenz service for environment/region if configured */ public Optional athenzService(Environment environment, RegionName region) { - AthenzService athenzService = zones().stream() - .filter(zone -> zone.deploysTo(environment, Optional.of(region))) - .findFirst() - .flatMap(DeploymentSpec.DeclaredZone::athenzService) - .orElse(this.athenzService.orElse(null)); - return Optional.ofNullable(athenzService); + return zones().stream() + .filter(zone -> zone.concerns(environment, Optional.of(region))) + .findFirst() + .flatMap(DeploymentSpec.DeclaredZone::athenzService) + .or(() -> this.athenzService); } /** Returns the notification configuration of these instances */ @@ -207,23 +204,9 @@ public class DeploymentInstanceSpec extends DeploymentSpec.Step { /** Returns the rotations configuration of these instances */ public List endpoints() { return endpoints; } - /** Returns whether this instances deployment specifies the given zone, either implicitly or explicitly */ - public boolean includes(Environment environment, Optional region) { - for (DeploymentSpec.Step step : steps) - if (step.deploysTo(environment, region)) return true; - return false; - } - - DeploymentInstanceSpec withSteps(List steps) { - return new DeploymentInstanceSpec(name, - steps, - upgradePolicy, - changeBlockers, - globalServiceId, - athenzDomain, - athenzService, - notifications, - endpoints); + /** Returns whether this instance deploys to the given zone, either implicitly or explicitly */ + public boolean deploysTo(Environment environment, Optional region) { + return zones().stream().anyMatch(zone -> zone.concerns(environment, region)); } @Override diff --git a/config-model-api/src/main/java/com/yahoo/config/application/api/DeploymentSpec.java b/config-model-api/src/main/java/com/yahoo/config/application/api/DeploymentSpec.java index ea7df677e0f..6440b8f893c 100644 --- a/config-model-api/src/main/java/com/yahoo/config/application/api/DeploymentSpec.java +++ b/config-model-api/src/main/java/com/yahoo/config/application/api/DeploymentSpec.java @@ -75,14 +75,14 @@ public class DeploymentSpec { List steps = new ArrayList<>(inputSteps); // Add staging if required and missing - if (steps.stream().anyMatch(step -> step.deploysTo(Environment.prod)) && - steps.stream().noneMatch(step -> step.deploysTo(Environment.staging))) { + if (steps.stream().anyMatch(step -> step.concerns(Environment.prod)) && + steps.stream().noneMatch(step -> step.concerns(Environment.staging))) { steps.add(new DeploymentSpec.DeclaredZone(Environment.staging)); } // Add test if required and missing - if (steps.stream().anyMatch(step -> step.deploysTo(Environment.staging)) && - steps.stream().noneMatch(step -> step.deploysTo(Environment.test))) { + if (steps.stream().anyMatch(step -> step.concerns(Environment.staging)) && + steps.stream().noneMatch(step -> step.concerns(Environment.test))) { steps.add(new DeploymentSpec.DeclaredZone(Environment.test)); } @@ -162,13 +162,6 @@ public class DeploymentSpec { // to have environment, instance or region variants on those. public Optional athenzService() { return this.athenzService; } - // TODO remove when 7.135 is the oldest version - public Optional athenzService(InstanceName instanceName, Environment environment, RegionName region) { - Optional instance = instance(instanceName); - if (instance.isEmpty()) return this.athenzService; - return instance.get().athenzService(environment, region).or(() -> this.athenzService); - } - /** Returns the XML form of this spec, or null if it was not created by fromXml, nor is empty */ public String xmlForm() { return xmlForm; } @@ -272,13 +265,13 @@ public class DeploymentSpec { /** A deployment step */ public abstract static class Step { - /** Returns whether this step deploys to the given region */ - public final boolean deploysTo(Environment environment) { - return deploysTo(environment, Optional.empty()); + /** Returns whether this step specifies the given environment */ + public final boolean concerns(Environment environment) { + return concerns(environment, Optional.empty()); } - /** Returns whether this step deploys to the given environment, and (if specified) region */ - public abstract boolean deploysTo(Environment environment, Optional region); + /** Returns whether this step specifies the given environment, and (optionally) region */ + public abstract boolean concerns(Environment environment, Optional region); /** Returns the zones deployed to in this step */ public List zones() { return Collections.emptyList(); } @@ -304,7 +297,7 @@ public class DeploymentSpec { public Duration delay() { return duration; } @Override - public boolean deploysTo(Environment environment, Optional region) { return false; } + public boolean concerns(Environment environment, Optional region) { return false; } @Override public String toString() { @@ -406,8 +399,8 @@ public class DeploymentSpec { public List steps() { return steps; } @Override - public boolean deploysTo(Environment environment, Optional region) { - return steps().stream().anyMatch(zone -> zone.deploysTo(environment, region)); + public boolean concerns(Environment environment, Optional region) { + return steps().stream().anyMatch(zone -> zone.concerns(environment, region)); } @Override diff --git a/config-model-api/src/test/java/com/yahoo/config/application/api/DeploymentSpecTest.java b/config-model-api/src/test/java/com/yahoo/config/application/api/DeploymentSpecTest.java index 987e13c0e86..2b60c9768a7 100644 --- a/config-model-api/src/test/java/com/yahoo/config/application/api/DeploymentSpecTest.java +++ b/config-model-api/src/test/java/com/yahoo/config/application/api/DeploymentSpecTest.java @@ -3,7 +3,6 @@ package com.yahoo.config.application.api; import com.google.common.collect.ImmutableSet; import com.yahoo.config.provision.Environment; -import com.yahoo.config.provision.InstanceName; import com.yahoo.config.provision.RegionName; import org.junit.Test; @@ -42,11 +41,11 @@ public class DeploymentSpecTest { assertEquals(specXml, spec.xmlForm()); assertEquals(1, spec.requireInstance("default").steps().size()); assertFalse(spec.majorVersion().isPresent()); - assertTrue(spec.requireInstance("default").steps().get(0).deploysTo(Environment.test)); - assertTrue(spec.requireInstance("default").includes(Environment.test, Optional.empty())); - assertFalse(spec.requireInstance("default").includes(Environment.test, Optional.of(RegionName.from("region1")))); - assertFalse(spec.requireInstance("default").includes(Environment.staging, Optional.empty())); - assertFalse(spec.requireInstance("default").includes(Environment.prod, Optional.empty())); + assertTrue(spec.requireInstance("default").steps().get(0).concerns(Environment.test)); + assertTrue(spec.requireInstance("default").deploysTo(Environment.test, Optional.empty())); + assertFalse(spec.requireInstance("default").deploysTo(Environment.test, Optional.of(RegionName.from("region1")))); + assertFalse(spec.requireInstance("default").deploysTo(Environment.staging, Optional.empty())); + assertFalse(spec.requireInstance("default").deploysTo(Environment.prod, Optional.empty())); assertFalse(spec.requireInstance("default").globalServiceId().isPresent()); } @@ -79,11 +78,11 @@ public class DeploymentSpecTest { DeploymentSpec spec = DeploymentSpec.fromXml(r); assertEquals(2, spec.steps().size()); assertEquals(1, spec.requireInstance("default").steps().size()); - assertTrue(spec.steps().get(0).deploysTo(Environment.test)); - assertTrue(spec.requireInstance("default").steps().get(0).deploysTo(Environment.staging)); - assertFalse(spec.requireInstance("default").includes(Environment.test, Optional.empty())); - assertTrue(spec.requireInstance("default").includes(Environment.staging, Optional.empty())); - assertFalse(spec.requireInstance("default").includes(Environment.prod, Optional.empty())); + assertTrue(spec.steps().get(0).concerns(Environment.test)); + assertTrue(spec.requireInstance("default").steps().get(0).concerns(Environment.staging)); + assertFalse(spec.requireInstance("default").deploysTo(Environment.test, Optional.empty())); + assertTrue(spec.requireInstance("default").deploysTo(Environment.staging, Optional.empty())); + assertFalse(spec.requireInstance("default").deploysTo(Environment.prod, Optional.empty())); assertFalse(spec.requireInstance("default").globalServiceId().isPresent()); } @@ -104,21 +103,21 @@ public class DeploymentSpecTest { assertEquals(3, spec.steps().size()); assertEquals(2, spec.requireInstance("default").steps().size()); - assertTrue(spec.steps().get(0).deploysTo(Environment.test)); + assertTrue(spec.steps().get(0).concerns(Environment.test)); - assertTrue(spec.steps().get(1).deploysTo(Environment.staging)); + assertTrue(spec.steps().get(1).concerns(Environment.staging)); - assertTrue(spec.requireInstance("default").steps().get(0).deploysTo(Environment.prod, Optional.of(RegionName.from("us-east1")))); + assertTrue(spec.requireInstance("default").steps().get(0).concerns(Environment.prod, Optional.of(RegionName.from("us-east1")))); assertFalse(((DeploymentSpec.DeclaredZone)spec.requireInstance("default").steps().get(0)).active()); - assertTrue(spec.requireInstance("default").steps().get(1).deploysTo(Environment.prod, Optional.of(RegionName.from("us-west1")))); + assertTrue(spec.requireInstance("default").steps().get(1).concerns(Environment.prod, Optional.of(RegionName.from("us-west1")))); assertTrue(((DeploymentSpec.DeclaredZone)spec.requireInstance("default").steps().get(1)).active()); - assertFalse(spec.requireInstance("default").includes(Environment.test, Optional.empty())); - assertFalse(spec.requireInstance("default").includes(Environment.staging, Optional.empty())); - assertTrue(spec.requireInstance("default").includes(Environment.prod, Optional.of(RegionName.from("us-east1")))); - assertTrue(spec.requireInstance("default").includes(Environment.prod, Optional.of(RegionName.from("us-west1")))); - assertFalse(spec.requireInstance("default").includes(Environment.prod, Optional.of(RegionName.from("no-such-region")))); + assertFalse(spec.requireInstance("default").deploysTo(Environment.test, Optional.empty())); + assertFalse(spec.requireInstance("default").deploysTo(Environment.staging, Optional.empty())); + assertTrue(spec.requireInstance("default").deploysTo(Environment.prod, Optional.of(RegionName.from("us-east1")))); + assertTrue(spec.requireInstance("default").deploysTo(Environment.prod, Optional.of(RegionName.from("us-west1")))); + assertFalse(spec.requireInstance("default").deploysTo(Environment.prod, Optional.of(RegionName.from("no-such-region")))); assertFalse(spec.requireInstance("default").globalServiceId().isPresent()); assertEquals(DeploymentSpec.UpgradePolicy.defaultPolicy, spec.requireInstance("default").upgradePolicy()); @@ -173,7 +172,7 @@ public class DeploymentSpecTest { assertEquals(1, instance2.steps().size()); assertEquals(1, instance2.zones().size()); - assertTrue(instance2.steps().get(0).deploysTo(Environment.prod, Optional.of(RegionName.from("us-central1")))); + assertTrue(instance2.steps().get(0).concerns(Environment.prod, Optional.of(RegionName.from("us-central1")))); } @Test @@ -202,25 +201,25 @@ public class DeploymentSpecTest { assertEquals(5, instance.steps().size()); assertEquals(4, instance.zones().size()); - assertTrue(instance.steps().get(0).deploysTo(Environment.test)); + assertTrue(instance.steps().get(0).concerns(Environment.test)); - assertTrue(instance.steps().get(1).deploysTo(Environment.staging)); + assertTrue(instance.steps().get(1).concerns(Environment.staging)); - assertTrue(instance.steps().get(2).deploysTo(Environment.prod, Optional.of(RegionName.from("us-east1")))); + assertTrue(instance.steps().get(2).concerns(Environment.prod, Optional.of(RegionName.from("us-east1")))); assertFalse(((DeploymentSpec.DeclaredZone)instance.steps().get(2)).active()); assertTrue(instance.steps().get(3) instanceof DeploymentSpec.Delay); assertEquals(3 * 60 * 60 + 30 * 60, instance.steps().get(3).delay().getSeconds()); - assertTrue(instance.steps().get(4).deploysTo(Environment.prod, Optional.of(RegionName.from("us-west1")))); + assertTrue(instance.steps().get(4).concerns(Environment.prod, Optional.of(RegionName.from("us-west1")))); assertTrue(((DeploymentSpec.DeclaredZone)instance.steps().get(4)).active()); - assertTrue(instance.includes(Environment.test, Optional.empty())); - assertFalse(instance.includes(Environment.test, Optional.of(RegionName.from("region1")))); - assertTrue(instance.includes(Environment.staging, Optional.empty())); - assertTrue(instance.includes(Environment.prod, Optional.of(RegionName.from("us-east1")))); - assertTrue(instance.includes(Environment.prod, Optional.of(RegionName.from("us-west1")))); - assertFalse(instance.includes(Environment.prod, Optional.of(RegionName.from("no-such-region")))); + assertTrue(instance.deploysTo(Environment.test, Optional.empty())); + assertFalse(instance.deploysTo(Environment.test, Optional.of(RegionName.from("region1")))); + assertTrue(instance.deploysTo(Environment.staging, Optional.empty())); + assertTrue(instance.deploysTo(Environment.prod, Optional.of(RegionName.from("us-east1")))); + assertTrue(instance.deploysTo(Environment.prod, Optional.of(RegionName.from("us-west1")))); + assertFalse(instance.deploysTo(Environment.prod, Optional.of(RegionName.from("no-such-region")))); assertFalse(instance.globalServiceId().isPresent()); } diff --git a/config-model-api/src/test/java/com/yahoo/config/application/api/DeploymentSpecWithoutInstanceTest.java b/config-model-api/src/test/java/com/yahoo/config/application/api/DeploymentSpecWithoutInstanceTest.java index 31a30e5bd83..99d5486968a 100644 --- a/config-model-api/src/test/java/com/yahoo/config/application/api/DeploymentSpecWithoutInstanceTest.java +++ b/config-model-api/src/test/java/com/yahoo/config/application/api/DeploymentSpecWithoutInstanceTest.java @@ -3,7 +3,6 @@ package com.yahoo.config.application.api; import com.google.common.collect.ImmutableSet; import com.yahoo.config.provision.Environment; -import com.yahoo.config.provision.InstanceName; import com.yahoo.config.provision.RegionName; import org.junit.Test; @@ -40,11 +39,11 @@ public class DeploymentSpecWithoutInstanceTest { assertEquals(specXml, spec.xmlForm()); assertEquals(1, spec.steps().size()); assertFalse(spec.majorVersion().isPresent()); - assertTrue(spec.steps().get(0).deploysTo(Environment.test)); - assertTrue(spec.requireInstance("default").includes(Environment.test, Optional.empty())); - assertFalse(spec.requireInstance("default").includes(Environment.test, Optional.of(RegionName.from("region1")))); - assertFalse(spec.requireInstance("default").includes(Environment.staging, Optional.empty())); - assertFalse(spec.requireInstance("default").includes(Environment.prod, Optional.empty())); + assertTrue(spec.steps().get(0).concerns(Environment.test)); + assertTrue(spec.requireInstance("default").deploysTo(Environment.test, Optional.empty())); + assertFalse(spec.requireInstance("default").deploysTo(Environment.test, Optional.of(RegionName.from("region1")))); + assertFalse(spec.requireInstance("default").deploysTo(Environment.staging, Optional.empty())); + assertFalse(spec.requireInstance("default").deploysTo(Environment.prod, Optional.empty())); assertFalse(spec.requireInstance("default").globalServiceId().isPresent()); } @@ -73,11 +72,11 @@ public class DeploymentSpecWithoutInstanceTest { DeploymentSpec spec = DeploymentSpec.fromXml(r); assertEquals(2, spec.steps().size()); assertEquals(1, spec.requireInstance("default").steps().size()); - assertTrue(spec.steps().get(0).deploysTo(Environment.test)); - assertTrue(spec.requireInstance("default").steps().get(0).deploysTo(Environment.staging)); - assertFalse(spec.requireInstance("default").includes(Environment.test, Optional.empty())); - assertTrue(spec.requireInstance("default").includes(Environment.staging, Optional.empty())); - assertFalse(spec.requireInstance("default").includes(Environment.prod, Optional.empty())); + assertTrue(spec.steps().get(0).concerns(Environment.test)); + assertTrue(spec.requireInstance("default").steps().get(0).concerns(Environment.staging)); + assertFalse(spec.requireInstance("default").deploysTo(Environment.test, Optional.empty())); + assertTrue(spec.requireInstance("default").deploysTo(Environment.staging, Optional.empty())); + assertFalse(spec.requireInstance("default").deploysTo(Environment.prod, Optional.empty())); assertFalse(spec.requireInstance("default").globalServiceId().isPresent()); } @@ -96,21 +95,21 @@ public class DeploymentSpecWithoutInstanceTest { assertEquals(3, spec.steps().size()); assertEquals(2, spec.requireInstance("default").steps().size()); - assertTrue(spec.steps().get(0).deploysTo(Environment.test)); + assertTrue(spec.steps().get(0).concerns(Environment.test)); - assertTrue(spec.steps().get(1).deploysTo(Environment.staging)); + assertTrue(spec.steps().get(1).concerns(Environment.staging)); - assertTrue(spec.requireInstance("default").steps().get(0).deploysTo(Environment.prod, Optional.of(RegionName.from("us-east1")))); + assertTrue(spec.requireInstance("default").steps().get(0).concerns(Environment.prod, Optional.of(RegionName.from("us-east1")))); assertFalse(((DeploymentSpec.DeclaredZone)spec.requireInstance("default").steps().get(0)).active()); - assertTrue(spec.requireInstance("default").steps().get(1).deploysTo(Environment.prod, Optional.of(RegionName.from("us-west1")))); + assertTrue(spec.requireInstance("default").steps().get(1).concerns(Environment.prod, Optional.of(RegionName.from("us-west1")))); assertTrue(((DeploymentSpec.DeclaredZone)spec.requireInstance("default").steps().get(1)).active()); - assertFalse(spec.requireInstance("default").includes(Environment.test, Optional.empty())); - assertFalse(spec.requireInstance("default").includes(Environment.staging, Optional.empty())); - assertTrue(spec.requireInstance("default").includes(Environment.prod, Optional.of(RegionName.from("us-east1")))); - assertTrue(spec.requireInstance("default").includes(Environment.prod, Optional.of(RegionName.from("us-west1")))); - assertFalse(spec.requireInstance("default").includes(Environment.prod, Optional.of(RegionName.from("no-such-region")))); + assertFalse(spec.requireInstance("default").deploysTo(Environment.test, Optional.empty())); + assertFalse(spec.requireInstance("default").deploysTo(Environment.staging, Optional.empty())); + assertTrue(spec.requireInstance("default").deploysTo(Environment.prod, Optional.of(RegionName.from("us-east1")))); + assertTrue(spec.requireInstance("default").deploysTo(Environment.prod, Optional.of(RegionName.from("us-west1")))); + assertFalse(spec.requireInstance("default").deploysTo(Environment.prod, Optional.of(RegionName.from("no-such-region")))); assertFalse(spec.requireInstance("default").globalServiceId().isPresent()); assertEquals(DeploymentSpec.UpgradePolicy.defaultPolicy, spec.requireInstance("default").upgradePolicy()); @@ -134,25 +133,25 @@ public class DeploymentSpecWithoutInstanceTest { assertEquals(5, spec.requireInstance("default").steps().size()); assertEquals(4, spec.requireInstance("default").zones().size()); - assertTrue(spec.requireInstance("default").steps().get(0).deploysTo(Environment.test)); + assertTrue(spec.requireInstance("default").steps().get(0).concerns(Environment.test)); - assertTrue(spec.requireInstance("default").steps().get(1).deploysTo(Environment.staging)); + assertTrue(spec.requireInstance("default").steps().get(1).concerns(Environment.staging)); - assertTrue(spec.requireInstance("default").steps().get(2).deploysTo(Environment.prod, Optional.of(RegionName.from("us-east1")))); + assertTrue(spec.requireInstance("default").steps().get(2).concerns(Environment.prod, Optional.of(RegionName.from("us-east1")))); assertFalse(((DeploymentSpec.DeclaredZone)spec.requireInstance("default").steps().get(2)).active()); assertTrue(spec.requireInstance("default").steps().get(3) instanceof DeploymentSpec.Delay); assertEquals(3 * 60 * 60 + 30 * 60, spec.requireInstance("default").steps().get(3).delay().getSeconds()); - assertTrue(spec.requireInstance("default").steps().get(4).deploysTo(Environment.prod, Optional.of(RegionName.from("us-west1")))); + assertTrue(spec.requireInstance("default").steps().get(4).concerns(Environment.prod, Optional.of(RegionName.from("us-west1")))); assertTrue(((DeploymentSpec.DeclaredZone)spec.requireInstance("default").steps().get(4)).active()); - assertTrue(spec.requireInstance("default").includes(Environment.test, Optional.empty())); - assertFalse(spec.requireInstance("default").includes(Environment.test, Optional.of(RegionName.from("region1")))); - assertTrue(spec.requireInstance("default").includes(Environment.staging, Optional.empty())); - assertTrue(spec.requireInstance("default").includes(Environment.prod, Optional.of(RegionName.from("us-east1")))); - assertTrue(spec.requireInstance("default").includes(Environment.prod, Optional.of(RegionName.from("us-west1")))); - assertFalse(spec.requireInstance("default").includes(Environment.prod, Optional.of(RegionName.from("no-such-region")))); + assertTrue(spec.requireInstance("default").deploysTo(Environment.test, Optional.empty())); + assertFalse(spec.requireInstance("default").deploysTo(Environment.test, Optional.of(RegionName.from("region1")))); + assertTrue(spec.requireInstance("default").deploysTo(Environment.staging, Optional.empty())); + assertTrue(spec.requireInstance("default").deploysTo(Environment.prod, Optional.of(RegionName.from("us-east1")))); + assertTrue(spec.requireInstance("default").deploysTo(Environment.prod, Optional.of(RegionName.from("us-west1")))); + assertFalse(spec.requireInstance("default").deploysTo(Environment.prod, Optional.of(RegionName.from("no-such-region")))); assertFalse(spec.requireInstance("default").globalServiceId().isPresent()); } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java index e5e22c3a260..188a9b4765c 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java @@ -236,7 +236,7 @@ public class ContainerModelBuilder extends ConfigModelBuilder { Optional instance = spec.instance(app.getApplicationId().instance()); if (instance.isEmpty()) return false; return instance.get().zones().stream() - .anyMatch(declaredZone -> declaredZone.deploysTo(zone.environment(), Optional.of(zone.region())) && + .anyMatch(declaredZone -> declaredZone.concerns(zone.environment(), Optional.of(zone.region())) && declaredZone.active()); } 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 3f985e95a4f..2c7e1311039 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 @@ -19,9 +19,6 @@ import com.yahoo.vespa.athenz.api.AthenzPrincipal; import com.yahoo.vespa.athenz.api.AthenzService; import com.yahoo.vespa.athenz.api.AthenzUser; import com.yahoo.vespa.curator.Lock; -import com.yahoo.vespa.flags.BooleanFlag; -import com.yahoo.vespa.flags.FetchVector; -import com.yahoo.vespa.flags.Flags; import com.yahoo.vespa.hosted.controller.api.ActivateResult; import com.yahoo.vespa.hosted.controller.api.application.v4.model.DeployOptions; import com.yahoo.vespa.hosted.controller.api.application.v4.model.EndpointStatus; @@ -456,7 +453,7 @@ public class ApplicationController { } for (InstanceName instance : declaredInstances) - if (applicationPackage.deploymentSpec().requireInstance(instance).deploysTo(Environment.prod)) + if (applicationPackage.deploymentSpec().requireInstance(instance).concerns(Environment.prod)) application = withRotation(applicationPackage.deploymentSpec(), application, instance); store(application); @@ -616,8 +613,8 @@ public class ApplicationController { List deploymentsToRemove = application.get().require(instance).productionDeployments().values().stream() .map(Deployment::zone) .filter(zone -> deploymentSpec.instance(instance).isEmpty() - || ! deploymentSpec.requireInstance(instance).includes(zone.environment(), - Optional.of(zone.region()))) + || ! deploymentSpec.requireInstance(instance).deploysTo(zone.environment(), + Optional.of(zone.region()))) .collect(Collectors.toList()); if (deploymentsToRemove.isEmpty()) @@ -647,7 +644,7 @@ public class ApplicationController { for (JobType job : JobList.from(instance).production().mapToList(JobStatus::type)) { ZoneId zone = job.zone(controller.system()); if (deploymentSpec.instance(instance.name()) - .map(spec -> spec.includes(zone.environment(), Optional.of(zone.region()))) + .map(spec -> spec.deploysTo(zone.environment(), Optional.of(zone.region()))) .orElse(false)) continue; instance = instance.withoutDeploymentJob(job); diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentSteps.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentSteps.java index 1b722c80ec1..ddfcf17b0be 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentSteps.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentSteps.java @@ -4,7 +4,6 @@ package com.yahoo.vespa.hosted.controller.deployment; import com.yahoo.config.application.api.DeploymentInstanceSpec; import com.yahoo.config.application.api.DeploymentSpec; import com.yahoo.config.provision.Environment; -import com.yahoo.config.provision.InstanceName; import com.yahoo.config.provision.SystemName; import com.yahoo.config.provision.zone.ZoneId; import com.yahoo.vespa.hosted.controller.api.integration.deployment.JobType; @@ -91,7 +90,7 @@ public class DeploymentSteps { } private boolean isTest(DeploymentSpec.Step step) { - return step.deploysTo(Environment.test) || step.deploysTo(Environment.staging); + return step.concerns(Environment.test) || step.concerns(Environment.staging); } /** Resolve job from deployment zone */ 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 972e96e94f2..a5a7f6940a3 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 @@ -700,7 +700,7 @@ public class InternalStepRunner implements StepRunner { private static Optional testerFlavorFor(RunId id, DeploymentSpec spec) { for (DeploymentSpec.Step step : spec.steps()) - if (step.deploysTo(id.type().environment())) + if (step.concerns(id.type().environment())) return step.zones().get(0).testerFlavor(); throw new IllegalStateException("No step deploys to the zone this run is for!"); diff --git a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/rotation/RotationRepository.java b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/rotation/RotationRepository.java index 6ea7417dffd..8ca8d31b32b 100644 --- a/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/rotation/RotationRepository.java +++ b/controller-server/src/main/java/com/yahoo/vespa/hosted/controller/rotation/RotationRepository.java @@ -83,7 +83,7 @@ public class RotationRepository { instance.name() + "'"); } long productionZones = deploymentSpec.requireInstance(instance.name()).zones().stream() - .filter(zone -> zone.deploysTo(Environment.prod)) + .filter(zone -> zone.concerns(Environment.prod)) .count(); if (productionZones < 2) { throw new IllegalArgumentException("global-service-id is set but less than 2 prod zones are defined " + -- cgit v1.2.3