diff options
author | Jon Marius Venstad <venstad@gmail.com> | 2019-11-06 10:00:09 +0100 |
---|---|---|
committer | Jon Marius Venstad <venstad@gmail.com> | 2019-11-06 12:08:46 +0100 |
commit | eeb84f0a67c7de7655e7e28021401f6d1d87e228 (patch) | |
tree | ff21685c2455b49ff1b39fcc7353ee124a675289 /config-model-api | |
parent | 727b2716df0730f4934257bbecbd9c28046d100f (diff) |
Remove singleInstance stuff from DeploymentSpec
Diffstat (limited to 'config-model-api')
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" + |