aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJon Marius Venstad <venstad@gmail.com>2019-11-28 14:06:27 +0100
committerJon Marius Venstad <venstad@gmail.com>2019-11-28 14:06:27 +0100
commit8e4f20aac626d8951d0d2937f96d09f45364bd78 (patch)
treeb9b4b1d62ae49b71575f6be41dc459e1355ba621
parenta907f095507bfd9aec0d6bd168217b4a0471b651 (diff)
Rename deploysTo -> concerns in DeploymentSpec.Step, and includes -> deploysTo
-rw-r--r--config-model-api/src/main/java/com/yahoo/config/application/api/DeploymentInstanceSpec.java43
-rw-r--r--config-model-api/src/main/java/com/yahoo/config/application/api/DeploymentSpec.java31
-rw-r--r--config-model-api/src/test/java/com/yahoo/config/application/api/DeploymentSpecTest.java61
-rw-r--r--config-model-api/src/test/java/com/yahoo/config/application/api/DeploymentSpecWithoutInstanceTest.java59
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/container/xml/ContainerModelBuilder.java2
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/ApplicationController.java11
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/DeploymentSteps.java3
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/deployment/InternalStepRunner.java2
-rw-r--r--controller-server/src/main/java/com/yahoo/vespa/hosted/controller/rotation/RotationRepository.java2
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<DeploymentSpec.DeclaredZone> 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<RegionName> region) {
- for (DeploymentSpec.Step step : steps)
- if (step.deploysTo(environment, region)) return true;
- return false;
+ public boolean concerns(Environment environment, Optional<RegionName> 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> 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<Endpoint> endpoints() { return endpoints; }
- /** Returns whether this instances deployment specifies the given zone, either implicitly or explicitly */
- public boolean includes(Environment environment, Optional<RegionName> region) {
- for (DeploymentSpec.Step step : steps)
- if (step.deploysTo(environment, region)) return true;
- return false;
- }
-
- DeploymentInstanceSpec withSteps(List<DeploymentSpec.Step> 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<RegionName> 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<Step> 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> athenzService() { return this.athenzService; }
- // TODO remove when 7.135 is the oldest version
- public Optional<AthenzService> athenzService(InstanceName instanceName, Environment environment, RegionName region) {
- Optional<DeploymentInstanceSpec> 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<RegionName> region);
+ /** Returns whether this step specifies the given environment, and (optionally) region */
+ public abstract boolean concerns(Environment environment, Optional<RegionName> region);
/** Returns the zones deployed to in this step */
public List<DeclaredZone> zones() { return Collections.emptyList(); }
@@ -304,7 +297,7 @@ public class DeploymentSpec {
public Duration delay() { return duration; }
@Override
- public boolean deploysTo(Environment environment, Optional<RegionName> region) { return false; }
+ public boolean concerns(Environment environment, Optional<RegionName> region) { return false; }
@Override
public String toString() {
@@ -406,8 +399,8 @@ public class DeploymentSpec {
public List<Step> steps() { return steps; }
@Override
- public boolean deploysTo(Environment environment, Optional<RegionName> region) {
- return steps().stream().anyMatch(zone -> zone.deploysTo(environment, region));
+ public boolean concerns(Environment environment, Optional<RegionName> 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<ContainerModel> {
Optional<DeploymentInstanceSpec> 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<ZoneId> 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<String> 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 " +