aboutsummaryrefslogtreecommitdiffstats
path: root/config-model-api/src/test/java/com/yahoo/config/application/api/DeploymentSpecWithoutInstanceTest.java
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2023-07-27 12:21:14 +0200
committerGitHub <noreply@github.com>2023-07-27 12:21:14 +0200
commit2921d5bc1358b094db2e131970c969dcad481502 (patch)
tree2ffff84602408dd610cc27b56bcca024ad33ccbf /config-model-api/src/test/java/com/yahoo/config/application/api/DeploymentSpecWithoutInstanceTest.java
parent2b43a46817cc779dccedd82ea8460802367a448a (diff)
Revert "Remove global-service-id"
Diffstat (limited to 'config-model-api/src/test/java/com/yahoo/config/application/api/DeploymentSpecWithoutInstanceTest.java')
-rw-r--r--config-model-api/src/test/java/com/yahoo/config/application/api/DeploymentSpecWithoutInstanceTest.java138
1 files changed, 100 insertions, 38 deletions
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 3a8d7ae1703..e5578723612 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
@@ -8,8 +8,8 @@ import com.yahoo.config.provision.Environment;
import com.yahoo.config.provision.InstanceName;
import com.yahoo.config.provision.RegionName;
import com.yahoo.config.provision.ZoneEndpoint;
-import com.yahoo.config.provision.ZoneEndpoint.AccessType;
import com.yahoo.config.provision.ZoneEndpoint.AllowedUrn;
+import com.yahoo.config.provision.ZoneEndpoint.AccessType;
import org.junit.Test;
import java.io.StringReader;
@@ -27,6 +27,7 @@ import static com.yahoo.config.application.api.Notifications.Role.author;
import static com.yahoo.config.application.api.Notifications.When.failing;
import static com.yahoo.config.application.api.Notifications.When.failingCommit;
import static com.yahoo.config.provision.CloudName.AWS;
+import static com.yahoo.config.provision.Environment.dev;
import static com.yahoo.config.provision.Environment.prod;
import static com.yahoo.config.provision.Environment.test;
import static com.yahoo.config.provision.zone.ZoneId.defaultId;
@@ -58,6 +59,7 @@ public class DeploymentSpecWithoutInstanceTest {
assertTrue(spec.requireInstance("default").concerns(test, Optional.of(RegionName.from("region1")))); // test steps specify no region
assertFalse(spec.requireInstance("default").concerns(Environment.staging, Optional.empty()));
assertFalse(spec.requireInstance("default").concerns(prod, Optional.empty()));
+ assertFalse(spec.requireInstance("default").globalServiceId().isPresent());
}
@Test
@@ -89,6 +91,7 @@ public class DeploymentSpecWithoutInstanceTest {
assertFalse(spec.requireInstance("default").concerns(test, Optional.empty()));
assertTrue(spec.requireInstance("default").concerns(Environment.staging, Optional.empty()));
assertFalse(spec.requireInstance("default").concerns(prod, Optional.empty()));
+ assertFalse(spec.requireInstance("default").globalServiceId().isPresent());
}
@Test
@@ -96,8 +99,8 @@ public class DeploymentSpecWithoutInstanceTest {
StringReader r = new StringReader(
"<deployment version='1.0'>" +
" <prod>" +
- " <region>us-east1</region>" +
- " <region>us-west1</region>" +
+ " <region active='false'>us-east1</region>" +
+ " <region active='true'>us-west1</region>" +
" </prod>" +
"</deployment>"
);
@@ -107,15 +110,18 @@ public class DeploymentSpecWithoutInstanceTest {
assertEquals(2, spec.requireInstance("default").steps().size());
assertTrue(spec.requireInstance("default").steps().get(0).concerns(prod, Optional.of(RegionName.from("us-east1"))));
+ assertFalse(((DeploymentSpec.DeclaredZone)spec.requireInstance("default").steps().get(0)).active());
assertTrue(spec.requireInstance("default").steps().get(1).concerns(prod, Optional.of(RegionName.from("us-west1"))));
+ assertTrue(((DeploymentSpec.DeclaredZone)spec.requireInstance("default").steps().get(1)).active());
assertFalse(spec.requireInstance("default").concerns(test, Optional.empty()));
assertFalse(spec.requireInstance("default").concerns(Environment.staging, Optional.empty()));
assertTrue(spec.requireInstance("default").concerns(prod, Optional.of(RegionName.from("us-east1"))));
assertTrue(spec.requireInstance("default").concerns(prod, Optional.of(RegionName.from("us-west1"))));
assertFalse(spec.requireInstance("default").concerns(prod, Optional.of(RegionName.from("no-such-region"))));
-
+ assertFalse(spec.requireInstance("default").globalServiceId().isPresent());
+
assertEquals(DeploymentSpec.UpgradePolicy.defaultPolicy, spec.requireInstance("default").upgradePolicy());
assertEquals(DeploymentSpec.UpgradeRollout.separate, spec.requireInstance("default").upgradeRollout());
}
@@ -127,9 +133,9 @@ public class DeploymentSpecWithoutInstanceTest {
" <test/>" +
" <staging/>" +
" <prod>" +
- " <region>us-east1</region>" +
+ " <region active='false'>us-east1</region>" +
" <delay hours='3' minutes='30'/>" +
- " <region>us-west1</region>" +
+ " <region active='true'>us-west1</region>" +
" </prod>" +
"</deployment>"
);
@@ -143,11 +149,13 @@ public class DeploymentSpecWithoutInstanceTest {
assertTrue(spec.requireInstance("default").steps().get(1).concerns(Environment.staging));
assertTrue(spec.requireInstance("default").steps().get(2).concerns(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).concerns(prod, Optional.of(RegionName.from("us-west1"))));
+ assertTrue(((DeploymentSpec.DeclaredZone)spec.requireInstance("default").steps().get(4)).active());
assertTrue(spec.requireInstance("default").concerns(test, Optional.empty()));
assertTrue(spec.requireInstance("default").concerns(test, Optional.of(RegionName.from("region1")))); // test steps specify no region
@@ -155,6 +163,7 @@ public class DeploymentSpecWithoutInstanceTest {
assertTrue(spec.requireInstance("default").concerns(prod, Optional.of(RegionName.from("us-east1"))));
assertTrue(spec.requireInstance("default").concerns(prod, Optional.of(RegionName.from("us-west1"))));
assertFalse(spec.requireInstance("default").concerns(prod, Optional.of(RegionName.from("no-such-region"))));
+ assertFalse(spec.requireInstance("default").globalServiceId().isPresent());
}
@Test
@@ -164,8 +173,8 @@ public class DeploymentSpecWithoutInstanceTest {
" <test/>" +
" <staging/>" +
" <prod>" +
- " <region>us-east-1</region>" +
- " <region>us-west-1</region>" +
+ " <region active='false'>us-east-1</region>" +
+ " <region active='true'>us-west-1</region>" +
" <delay hours='1' />" +
" <test>us-west-1</test>" +
" <test>us-east-1</test>" +
@@ -190,7 +199,7 @@ public class DeploymentSpecWithoutInstanceTest {
StringReader r = new StringReader(
"<deployment version='1.0'>" +
" <prod>" +
- " <region>us-east1</region>" +
+ " <region active='true'>us-east1</region>" +
" <test>us-east1</test>" +
" <test>us-east1</test>" +
" </prod>" +
@@ -205,7 +214,7 @@ public class DeploymentSpecWithoutInstanceTest {
"<deployment version='1.0'>" +
" <prod>" +
" <test>us-east1</test>" +
- " <region>us-east1</region>" +
+ " <region active='true'>us-east1</region>" +
" </prod>" +
"</deployment>"
);
@@ -218,7 +227,7 @@ public class DeploymentSpecWithoutInstanceTest {
"<deployment version='1.0'>" +
" <prod>" +
" <parallel>" +
- " <region>us-east1</region>" +
+ " <region active='true'>us-east1</region>" +
" <test>us-east1</test>" +
" </parallel>" +
" </prod>" +
@@ -228,6 +237,59 @@ public class DeploymentSpecWithoutInstanceTest {
}
@Test
+ public void productionSpecWithGlobalServiceId() {
+ StringReader r = new StringReader(
+ "<deployment version='1.0'>" +
+ " <prod global-service-id='query'>" +
+ " <region active='true'>us-east-1</region>" +
+ " <region active='true'>us-west-1</region>" +
+ " </prod>" +
+ "</deployment>"
+ );
+
+ DeploymentSpec spec = DeploymentSpec.fromXml(r);
+ assertEquals(spec.requireInstance("default").globalServiceId(), Optional.of("query"));
+ }
+
+ @Test(expected=IllegalArgumentException.class)
+ public void globalServiceIdInTest() {
+ StringReader r = new StringReader(
+ "<deployment version='1.0'>" +
+ " <test global-service-id='query' />" +
+ "</deployment>"
+ );
+ DeploymentSpec.fromXml(r);
+ }
+
+ @Test(expected=IllegalArgumentException.class)
+ public void globalServiceIdInStaging() {
+ StringReader r = new StringReader(
+ "<deployment version='1.0'>" +
+ " <staging global-service-id='query' />" +
+ "</deployment>"
+ );
+ DeploymentSpec.fromXml(r);
+ }
+
+ @Test
+ public void productionSpecWithGlobalServiceIdBeforeStaging() {
+ StringReader r = new StringReader(
+ "<deployment>" +
+ " <test/>" +
+ " <prod global-service-id='qrs'>" +
+ " <region active='true'>us-west-1</region>" +
+ " <region active='true'>us-central-1</region>" +
+ " <region active='true'>us-east-3</region>" +
+ " </prod>" +
+ " <staging/>" +
+ "</deployment>"
+ );
+
+ DeploymentSpec spec = DeploymentSpec.fromXml(r);
+ assertEquals("qrs", spec.requireInstance("default").globalServiceId().get());
+ }
+
+ @Test
public void productionSpecWithUpgradeRollout() {
StringReader r = new StringReader(
"<deployment>" +
@@ -256,11 +318,11 @@ public class DeploymentSpecWithoutInstanceTest {
"<deployment>" +
" <upgrade policy='canary'/>" +
" <prod>" +
- " <region>us-west-1</region>" +
+ " <region active='true'>us-west-1</region>" +
" <delay hours='47'/>" +
- " <region>us-central-1</region>" +
+ " <region active='true'>us-central-1</region>" +
" <delay minutes='59' seconds='61'/>" +
- " <region>us-east-3</region>" +
+ " <region active='true'>us-east-3</region>" +
" </prod>" +
"</deployment>"
);
@@ -299,10 +361,10 @@ public class DeploymentSpecWithoutInstanceTest {
StringReader r = new StringReader(
"<deployment>\n" +
" <prod> \n" +
- " <region>us-west-1</region>\n" +
+ " <region active='true'>us-west-1</region>\n" +
" <parallel>\n" +
- " <region>us-central-1</region>\n" +
- " <region>us-east-3</region>\n" +
+ " <region active='true'>us-central-1</region>\n" +
+ " <region active='true'>us-east-3</region>\n" +
" </parallel>\n" +
" </prod>\n" +
"</deployment>"
@@ -321,25 +383,25 @@ public class DeploymentSpecWithoutInstanceTest {
" <staging />" +
" <prod>" +
" <parallel>" +
- " <region>us-west-1</region>" +
+ " <region active='true'>us-west-1</region>" +
" <steps>" +
- " <region>us-east-3</region>" +
+ " <region active='true'>us-east-3</region>" +
" <delay hours='2' />" +
- " <region>eu-west-1</region>" +
+ " <region active='true'>eu-west-1</region>" +
" <delay hours='2' />" +
" </steps>" +
" <steps>" +
" <delay hours='3' />" +
- " <region>aws-us-east-1a</region>" +
+ " <region active='true'>aws-us-east-1a</region>" +
" <parallel>" +
- " <region athenz-service='no-service'>ap-northeast-1</region>" +
- " <region>ap-southeast-2</region>" +
+ " <region active='true' athenz-service='no-service'>ap-northeast-1</region>" +
+ " <region active='true'>ap-southeast-2</region>" +
" <test>aws-us-east-1a</test>" +
" </parallel>" +
" </steps>" +
" <delay hours='3' minutes='30' />" +
" </parallel>" +
- " <region>us-north-7</region>" +
+ " <region active='true'>us-north-7</region>" +
" </prod>" +
"</deployment>"
);
@@ -390,11 +452,11 @@ public class DeploymentSpecWithoutInstanceTest {
StringReader r = new StringReader(
"<deployment>\n" +
" <prod>\n" +
- " <region>us-west-1</region>\n" +
+ " <region active='true'>us-west-1</region>\n" +
" <parallel>\n" +
- " <region>us-west-1</region>\n" +
- " <region>us-central-1</region>\n" +
- " <region>us-east-3</region>\n" +
+ " <region active='true'>us-west-1</region>\n" +
+ " <region active='true'>us-central-1</region>\n" +
+ " <region active='true'>us-east-3</region>\n" +
" </parallel>\n" +
" </prod>\n" +
"</deployment>"
@@ -413,7 +475,7 @@ public class DeploymentSpecWithoutInstanceTest {
"<deployment>\n" +
" <block-change days='sat' hours='10' time-zone='CET'/>\n" +
" <prod>\n" +
- " <region>us-west-1</region>\n" +
+ " <region active='true'>us-west-1</region>\n" +
" </prod>\n" +
" <block-change days='mon,tue' hours='15-16'/>\n" +
"</deployment>"
@@ -428,7 +490,7 @@ public class DeploymentSpecWithoutInstanceTest {
" <block-change days='sat' hours='10' time-zone='CET'/>\n" +
" <test/>\n" +
" <prod>\n" +
- " <region>us-west-1</region>\n" +
+ " <region active='true'>us-west-1</region>\n" +
" </prod>\n" +
"</deployment>"
);
@@ -442,7 +504,7 @@ public class DeploymentSpecWithoutInstanceTest {
" <block-change revision='false' days='mon,tue' hours='15-16'/>\n" +
" <block-change days='sat' hours='10' time-zone='CET'/>\n" +
" <prod>\n" +
- " <region>us-west-1</region>\n" +
+ " <region active='true'>us-west-1</region>\n" +
" </prod>\n" +
"</deployment>"
);
@@ -471,7 +533,7 @@ public class DeploymentSpecWithoutInstanceTest {
StringReader r = new StringReader(
"<deployment athenz-domain='domain' athenz-service='service'>\n" +
" <prod>\n" +
- " <region>us-west-1</region>\n" +
+ " <region active='true'>us-west-1</region>\n" +
" </prod>\n" +
"</deployment>"
);
@@ -485,10 +547,10 @@ public class DeploymentSpecWithoutInstanceTest {
StringReader r = new StringReader(
"<deployment athenz-domain='domain' athenz-service='service'>" +
" <prod athenz-service='prod-service'>" +
- " <region>us-central-1</region>" +
+ " <region active='true'>us-central-1</region>" +
" <parallel>" +
- " <region>us-west-1</region>" +
- " <region>us-east-3</region>" +
+ " <region active='true'>us-west-1</region>" +
+ " <region active='true'>us-east-3</region>" +
" </parallel>" +
" </prod>" +
"</deployment>"
@@ -511,7 +573,7 @@ public class DeploymentSpecWithoutInstanceTest {
" <test />\n" +
" <staging athenz-service='staging-service' />\n" +
" <prod athenz-service='prod-service'>\n" +
- " <region>us-west-1</region>\n" +
+ " <region active='true'>us-west-1</region>\n" +
" </prod>\n" +
"</deployment>"
);
@@ -528,7 +590,7 @@ public class DeploymentSpecWithoutInstanceTest {
StringReader r = new StringReader(
"<deployment athenz-domain='domain'>\n" +
" <prod>\n" +
- " <region>us-west-1</region>\n" +
+ " <region active='true'>us-west-1</region>\n" +
" </prod>\n" +
"</deployment>"
);
@@ -540,7 +602,7 @@ public class DeploymentSpecWithoutInstanceTest {
StringReader r = new StringReader(
"<deployment>\n" +
" <prod athenz-service='service'>\n" +
- " <region>us-west-1</region>\n" +
+ " <region active='true'>us-west-1</region>\n" +
" </prod>\n" +
"</deployment>"
);