summaryrefslogtreecommitdiffstats
path: root/config-model-api
diff options
context:
space:
mode:
authorJon Marius Venstad <venstad@gmail.com>2019-11-06 10:00:09 +0100
committerJon Marius Venstad <venstad@gmail.com>2019-11-06 12:08:46 +0100
commiteeb84f0a67c7de7655e7e28021401f6d1d87e228 (patch)
treeff21685c2455b49ff1b39fcc7353ee124a675289 /config-model-api
parent727b2716df0730f4934257bbecbd9c28046d100f (diff)
Remove singleInstance stuff from DeploymentSpec
Diffstat (limited to 'config-model-api')
-rw-r--r--config-model-api/src/main/java/com/yahoo/config/application/api/DeploymentSpec.java28
-rw-r--r--config-model-api/src/test/java/com/yahoo/config/application/api/DeploymentSpecTest.java36
-rw-r--r--config-model-api/src/test/java/com/yahoo/config/application/api/DeploymentSpecWithoutInstanceTest.java34
3 files changed, 38 insertions, 60 deletions
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 858ab121a2a..ea7df677e0f 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
@@ -61,13 +61,7 @@ public class DeploymentSpec {
Optional<AthenzDomain> athenzDomain,
Optional<AthenzService> athenzService,
String xmlForm) {
- if (hasSingleInstance(steps)) { // TODO: Remove this clause after November 2019
- var singleInstance = singleInstance(steps);
- this.steps = List.of(singleInstance.withSteps(completeSteps(singleInstance.steps())));
- }
- else {
- this.steps = List.copyOf(completeSteps(steps));
- }
+ this.steps = List.copyOf(completeSteps(steps));
this.majorVersion = majorVersion;
this.athenzDomain = athenzDomain;
this.athenzService = athenzService;
@@ -145,26 +139,11 @@ public class DeploymentSpec {
}
}
- // TODO: Remove after October 2019
- private DeploymentInstanceSpec singleInstance() {
- return singleInstance(steps);
- }
-
- // TODO: Remove after October 2019
- private static DeploymentInstanceSpec singleInstance(List<DeploymentSpec.Step> steps) {
- List<DeploymentInstanceSpec> instances = instances(steps);
- if (instances.size() == 1) return instances.get(0);
- throw new IllegalArgumentException("This deployment spec does not support the legacy API " +
- "as it has multiple instances: " +
- instances.stream().map(Step::toString).collect(Collectors.joining(",")));
- }
-
/** Returns the major version this application is pinned to, or empty (default) to allow all major versions */
public Optional<Integer> majorVersion() { return majorVersion; }
/** Returns the deployment steps of this in the order they will be performed */
public List<Step> steps() {
- if (hasSingleInstance(steps)) return singleInstance().steps(); // TODO: Remove line after November 2019
return steps;
}
@@ -193,11 +172,6 @@ public class DeploymentSpec {
/** Returns the XML form of this spec, or null if it was not created by fromXml, nor is empty */
public String xmlForm() { return xmlForm; }
- // TODO: Remove after November 2019
- private static boolean hasSingleInstance(List<DeploymentSpec.Step> steps) {
- return instances(steps).size() == 1;
- }
-
/** Returns the instance step containing the given instance name */
public Optional<DeploymentInstanceSpec> instance(InstanceName name) {
for (DeploymentInstanceSpec instance : instances()) {
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 c52d432e73d..987e13c0e86 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
@@ -77,11 +77,11 @@ public class DeploymentSpecTest {
);
DeploymentSpec spec = DeploymentSpec.fromXml(r);
- assertEquals(2, spec.requireInstance("default").steps().size());
- assertTrue(spec.requireInstance("default").steps().get(0).deploysTo(Environment.test));
- assertTrue(spec.requireInstance("default").steps().get(1).deploysTo(Environment.staging));
- assertTrue(spec.requireInstance("default").includes(Environment.test, Optional.empty()));
- assertFalse(spec.requireInstance("default").includes(Environment.test, Optional.of(RegionName.from("region1"))));
+ 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()));
assertFalse(spec.requireInstance("default").globalServiceId().isPresent());
@@ -101,21 +101,21 @@ public class DeploymentSpecTest {
);
DeploymentSpec spec = DeploymentSpec.fromXml(r);
- assertEquals(4, spec.requireInstance("default").steps().size());
+ assertEquals(3, spec.steps().size());
+ assertEquals(2, spec.requireInstance("default").steps().size());
- assertTrue(spec.requireInstance("default").steps().get(0).deploysTo(Environment.test));
+ assertTrue(spec.steps().get(0).deploysTo(Environment.test));
- assertTrue(spec.requireInstance("default").steps().get(1).deploysTo(Environment.staging));
+ assertTrue(spec.steps().get(1).deploysTo(Environment.staging));
- assertTrue(spec.requireInstance("default").steps().get(2).deploysTo(Environment.prod, Optional.of(RegionName.from("us-east1"))));
- assertFalse(((DeploymentSpec.DeclaredZone)spec.requireInstance("default").steps().get(2)).active());
+ assertTrue(spec.requireInstance("default").steps().get(0).deploysTo(Environment.prod, Optional.of(RegionName.from("us-east1"))));
+ assertFalse(((DeploymentSpec.DeclaredZone)spec.requireInstance("default").steps().get(0)).active());
- assertTrue(spec.requireInstance("default").steps().get(3).deploysTo(Environment.prod, Optional.of(RegionName.from("us-west1"))));
- assertTrue(((DeploymentSpec.DeclaredZone)spec.requireInstance("default").steps().get(3)).active());
+ assertTrue(spec.requireInstance("default").steps().get(1).deploysTo(Environment.prod, Optional.of(RegionName.from("us-west1"))));
+ assertTrue(((DeploymentSpec.DeclaredZone)spec.requireInstance("default").steps().get(1)).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()));
+ 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"))));
@@ -351,7 +351,8 @@ public class DeploymentSpecTest {
@Test
public void testEmpty() {
assertFalse(DeploymentSpec.empty.requireInstance("default").globalServiceId().isPresent());
- assertTrue(DeploymentSpec.empty.steps().isEmpty());
+ assertTrue(DeploymentSpec.empty.requireInstance("default").steps().isEmpty());
+ assertEquals(1, DeploymentSpec.empty.steps().size());
assertEquals("<deployment version='1.0'/>", DeploymentSpec.empty.xmlForm());
}
@@ -371,7 +372,7 @@ public class DeploymentSpecTest {
"</deployment>"
);
DeploymentSpec spec = DeploymentSpec.fromXml(r);
- DeploymentSpec.ParallelZones parallelZones = ((DeploymentSpec.ParallelZones) spec.requireInstance("default").steps().get(3));
+ DeploymentSpec.ParallelZones parallelZones = ((DeploymentSpec.ParallelZones) spec.requireInstance("default").steps().get(1));
assertEquals(2, parallelZones.zones().size());
assertEquals(RegionName.from("us-central-1"), parallelZones.zones().get(0).region().get());
assertEquals(RegionName.from("us-east-3"), parallelZones.zones().get(1).region().get());
@@ -902,6 +903,7 @@ public class DeploymentSpecTest {
DeploymentSpec spec = DeploymentSpec.fromXml("<deployment>" +
" <instance id='default'>" +
" <test tester-flavor=\"d-1-4-20\" />" +
+ " <staging />" +
" <prod tester-flavor=\"d-2-8-50\">" +
" <region active=\"false\">us-north-7</region>" +
" </prod>" +
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 95e13ee2748..31a30e5bd83 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
@@ -72,10 +72,10 @@ public class DeploymentSpecWithoutInstanceTest {
DeploymentSpec spec = DeploymentSpec.fromXml(r);
assertEquals(2, spec.steps().size());
- assertTrue(spec.requireInstance("default").steps().get(0).deploysTo(Environment.test));
- assertTrue(spec.requireInstance("default").steps().get(1).deploysTo(Environment.staging));
- assertTrue(spec.requireInstance("default").includes(Environment.test, Optional.empty()));
- assertFalse(spec.requireInstance("default").includes(Environment.test, Optional.of(RegionName.from("region1"))));
+ 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()));
assertFalse(spec.requireInstance("default").globalServiceId().isPresent());
@@ -93,21 +93,21 @@ public class DeploymentSpecWithoutInstanceTest {
);
DeploymentSpec spec = DeploymentSpec.fromXml(r);
- assertEquals(4, spec.requireInstance("default").steps().size());
+ assertEquals(3, spec.steps().size());
+ assertEquals(2, spec.requireInstance("default").steps().size());
- assertTrue(spec.requireInstance("default").steps().get(0).deploysTo(Environment.test));
+ assertTrue(spec.steps().get(0).deploysTo(Environment.test));
- assertTrue(spec.requireInstance("default").steps().get(1).deploysTo(Environment.staging));
+ assertTrue(spec.steps().get(1).deploysTo(Environment.staging));
- assertTrue(spec.requireInstance("default").steps().get(2).deploysTo(Environment.prod, Optional.of(RegionName.from("us-east1"))));
- assertFalse(((DeploymentSpec.DeclaredZone)spec.requireInstance("default").steps().get(2)).active());
+ assertTrue(spec.requireInstance("default").steps().get(0).deploysTo(Environment.prod, Optional.of(RegionName.from("us-east1"))));
+ assertFalse(((DeploymentSpec.DeclaredZone)spec.requireInstance("default").steps().get(0)).active());
- assertTrue(spec.requireInstance("default").steps().get(3).deploysTo(Environment.prod, Optional.of(RegionName.from("us-west1"))));
- assertTrue(((DeploymentSpec.DeclaredZone)spec.requireInstance("default").steps().get(3)).active());
+ assertTrue(spec.requireInstance("default").steps().get(1).deploysTo(Environment.prod, Optional.of(RegionName.from("us-west1"))));
+ assertTrue(((DeploymentSpec.DeclaredZone)spec.requireInstance("default").steps().get(1)).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()));
+ 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"))));
@@ -253,7 +253,8 @@ public class DeploymentSpecWithoutInstanceTest {
@Test
public void testEmpty() {
assertFalse(DeploymentSpec.empty.requireInstance("default").globalServiceId().isPresent());
- assertTrue(DeploymentSpec.empty.steps().isEmpty());
+ assertEquals(1, DeploymentSpec.empty.steps().size());
+ assertTrue(DeploymentSpec.empty.requireInstance("default").steps().isEmpty());
assertEquals("<deployment version='1.0'/>", DeploymentSpec.empty.xmlForm());
}
@@ -271,7 +272,7 @@ public class DeploymentSpecWithoutInstanceTest {
"</deployment>"
);
DeploymentSpec spec = DeploymentSpec.fromXml(r);
- DeploymentSpec.ParallelZones parallelZones = ((DeploymentSpec.ParallelZones) spec.requireInstance("default").steps().get(3));
+ DeploymentSpec.ParallelZones parallelZones = ((DeploymentSpec.ParallelZones) spec.requireInstance("default").steps().get(1));
assertEquals(2, parallelZones.zones().size());
assertEquals(RegionName.from("us-central-1"), parallelZones.zones().get(0).region().get());
assertEquals(RegionName.from("us-east-3"), parallelZones.zones().get(1).region().get());
@@ -470,6 +471,7 @@ public class DeploymentSpecWithoutInstanceTest {
public void customTesterFlavor() {
DeploymentSpec spec = DeploymentSpec.fromXml("<deployment>\n" +
" <test tester-flavor=\"d-1-4-20\" />\n" +
+ " <staging />\n" +
" <prod tester-flavor=\"d-2-8-50\">\n" +
" <region active=\"false\">us-north-7</region>\n" +
" </prod>\n" +