summaryrefslogtreecommitdiffstats
path: root/config-model-api/src/test
diff options
context:
space:
mode:
authorjonmv <venstad@gmail.com>2023-01-17 16:30:36 +0100
committerjonmv <venstad@gmail.com>2023-01-17 16:30:36 +0100
commitf76a2f86a3dc8417eef6bdfa0a24f6ba24364e13 (patch)
tree66247e153fa2450426695551ae829dd9df5c59fe /config-model-api/src/test
parent8d59490a9ac398b75719a8c4736e2c27729b2671 (diff)
Validate disabled regions are not targets
Diffstat (limited to 'config-model-api/src/test')
-rw-r--r--config-model-api/src/test/java/com/yahoo/config/application/api/DeploymentSpecTest.java69
1 files changed, 67 insertions, 2 deletions
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 918239a646a..355ce651c34 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
@@ -1348,7 +1348,7 @@ public class DeploymentSpecTest {
<endpoint id="foo" container-id="bar">
<region>us-east</region>
</endpoint>
- <endpoint container-id="bar" type='zone' enabled='false'>
+ <endpoint container-id="bar" type='private'>
<region>us-east</region>
</endpoint>
<endpoint id="nalle" container-id="frosk" />
@@ -1361,7 +1361,7 @@ public class DeploymentSpecTest {
assertEquals(Set.of("us-east"), endpointRegions("foo", spec));
assertEquals(Set.of("us-east", "us-west"), endpointRegions("nalle", spec));
assertEquals(Set.of("us-east", "us-west"), endpointRegions("default", spec));
- assertEquals(new ZoneEndpoint(false, false, List.of()),
+ assertEquals(new ZoneEndpoint(true, true, List.of()),
spec.zoneEndpoint(InstanceName.from("default"), from("prod", "us-east"), ClusterSpec.Id.from("bar")));
assertEquals(new ZoneEndpoint(true, false, List.of()),
spec.zoneEndpoint(InstanceName.from("default"), from("prod", "us-west"), ClusterSpec.Id.from("bar")));
@@ -1435,6 +1435,71 @@ public class DeploymentSpecTest {
}
@Test
+ public void cannotTargetDisabledEndpoints() {
+ assertEquals("Instance-level endpoint 'default': all eligible zone endpoints have 'enabled' set to 'false'",
+ assertThrows(IllegalArgumentException.class,
+ () -> DeploymentSpec.fromXml("""
+ <deployment>
+ <instance id="default">
+ <prod>
+ <region>us</region>
+ <region>eu</region>
+ </prod>
+ <endpoints>
+ <endpoint container-id='id' />
+ <endpoint type='zone' container-id='id' enabled='false' />
+ </endpoints>
+ </instance>
+ </deployment>
+ """))
+ .getMessage());
+
+ assertEquals("Instance-level endpoint 'default': targets zone endpoint in 'us' with 'enabled' set to 'false'",
+ assertThrows(IllegalArgumentException.class,
+ () -> DeploymentSpec.fromXml("""
+ <deployment>
+ <instance id="default">
+ <prod>
+ <region>us</region>
+ <region>eu</region>
+ </prod>
+ <endpoints>
+ <endpoint container-id='id'>
+ <region>us</region>
+ </endpoint>
+ <endpoint type='zone' container-id='id' enabled='false' />
+ </endpoints>
+ </instance>
+ </deployment>
+ """))
+ .getMessage());
+
+ assertEquals("Application-level endpoint 'default': targets 'us' in 'default', but its zone endpoint has 'enabled' set to 'false'",
+ assertThrows(IllegalArgumentException.class,
+ () -> DeploymentSpec.fromXml("""
+ <deployment>
+ <instance id="default">
+ <prod>
+ <region>us</region>
+ <region>eu</region>
+ </prod>
+ <endpoints>
+ <endpoint type='zone' container-id='id' enabled='false'>
+ <region>us</region>
+ </endpoint>
+ </endpoints>
+ </instance>
+ <endpoints>
+ <endpoint container-id='id' region='us'>
+ <instance weight='1'>default</instance>
+ </endpoint>
+ </endpoints>
+ </deployment>
+ """))
+ .getMessage());
+ }
+
+ @Test
public void applicationLevelEndpoint() {
DeploymentSpec spec = DeploymentSpec.fromXml("""
<deployment>