summaryrefslogtreecommitdiffstats
path: root/config-model-api
diff options
context:
space:
mode:
authorJon Marius Venstad <venstad@gmail.com>2019-10-25 09:43:37 +0200
committerJon Marius Venstad <venstad@gmail.com>2019-11-05 09:17:58 +0100
commit9b680ebad5edcaf47293bb371507093cd37e6e11 (patch)
tree0a91b80b34cc09dfca011085bc86ba1ef37e2b69 /config-model-api
parentb488286422f60248a50f8508ddd2f727bbb6d10e (diff)
No more deprecated athenz domain or service usages
Diffstat (limited to 'config-model-api')
-rw-r--r--config-model-api/abi-spec.json5
-rw-r--r--config-model-api/src/main/java/com/yahoo/config/application/api/DeploymentSpec.java33
-rw-r--r--config-model-api/src/test/java/com/yahoo/config/application/api/DeploymentSpecDeprecatedAPITest.java77
-rw-r--r--config-model-api/src/test/java/com/yahoo/config/application/api/DeploymentSpecTest.java48
-rw-r--r--config-model-api/src/test/java/com/yahoo/config/application/api/DeploymentSpecWithoutInstanceTest.java19
5 files changed, 34 insertions, 148 deletions
diff --git a/config-model-api/abi-spec.json b/config-model-api/abi-spec.json
index 7f4273c827b..f1f668cba6d 100644
--- a/config-model-api/abi-spec.json
+++ b/config-model-api/abi-spec.json
@@ -340,8 +340,7 @@
"public java.util.List steps()",
"public java.util.List zones()",
"public java.util.Optional athenzDomain()",
- "public java.util.Optional athenzService(com.yahoo.config.provision.Environment, com.yahoo.config.provision.RegionName)",
- "public java.util.Optional athenzService(com.yahoo.config.provision.InstanceName, com.yahoo.config.provision.Environment, com.yahoo.config.provision.RegionName)",
+ "public java.util.Optional athenzService()",
"public com.yahoo.config.application.api.Notifications notifications()",
"public java.util.List endpoints()",
"public java.lang.String xmlForm()",
@@ -586,4 +585,4 @@
"public static final com.yahoo.config.application.api.ValidationOverrides all"
]
}
-} \ No newline at end of file
+}
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 0fc76e26d34..39453de5cdf 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
@@ -186,28 +186,17 @@ public class DeploymentSpec {
/** Returns the Athenz domain set on the root tag, if any */
public Optional<AthenzDomain> athenzDomain() { return athenzDomain; }
- /** Returns the Athenz service to use for the given environment and region, if any */
- // TODO: Remove after November 2019
- public Optional<AthenzService> athenzService(Environment environment, RegionName region) {
- Optional<AthenzService> service = Optional.empty();
- if (hasSingleInstance(steps))
- service = singleInstance().athenzService(environment, region);
- if (service.isPresent())
- return service;
- return this.athenzService;
- }
-
- /**
- * Returns the Athenz service to use for the given instance, environment and region, if any.
- * This returns the default set on the deploy tag (if any) if nothing is set for this particular
- * combination of instance, environment and region, and also if that combination is not specified
- * at all in services.
- */
- 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 Athenz service set on the root tag, if any */
+ // athenz-service can be overridden on almost all tags, and with legacy mode + standard + environment and region variants
+ // + tester application services it gets complicated, but:
+ // 1. any deployment outside dev/perf should happen only with declared instances, implicit or not, which means the spec for
+ // that instance should provide the correct service, based on environment and region, and we should not fall back to this; and
+ // 2. any deployment to dev/perf can only have the root or instance tags' value for service, which means we can ignore variants; and
+ // a. for single-instance specs the service is always set on the root tag, and deploying under an unknown instance leads here, and
+ // b. for multi-instance specs the root tag may or may not have a service, and unknown instances also lead here; and
+ // 3. any tester application deployment is always an unknown instance, and always gets here, but there should not be any reason
+ // to have environment, instance or region variants on those.
+ public Optional<AthenzService> athenzService() { return this.athenzService; }
// TODO: Remove after November 2019
public Notifications notifications() { return singleInstance().notifications(); }
diff --git a/config-model-api/src/test/java/com/yahoo/config/application/api/DeploymentSpecDeprecatedAPITest.java b/config-model-api/src/test/java/com/yahoo/config/application/api/DeploymentSpecDeprecatedAPITest.java
index b0ebc98e12b..2724cecec6a 100644
--- a/config-model-api/src/test/java/com/yahoo/config/application/api/DeploymentSpecDeprecatedAPITest.java
+++ b/config-model-api/src/test/java/com/yahoo/config/application/api/DeploymentSpecDeprecatedAPITest.java
@@ -384,83 +384,6 @@ public class DeploymentSpecDeprecatedAPITest {
}
@Test
- public void athenz_config_is_read_from_deployment() {
- StringReader r = new StringReader(
- "<deployment athenz-domain='domain' athenz-service='service'>\n" +
- " <prod>\n" +
- " <region active='true'>us-west-1</region>\n" +
- " </prod>\n" +
- "</deployment>"
- );
- DeploymentSpec spec = DeploymentSpec.fromXml(r);
- assertEquals(spec.athenzDomain().get().value(), "domain");
- assertEquals(spec.athenzService(Environment.prod, RegionName.from("us-west-1")).get().value(), "service");
- }
-
- @Test
- public void athenz_config_is_propagated_through_parallel_zones() {
- StringReader r = new StringReader(
- "<deployment athenz-domain='domain' athenz-service='service'>" +
- " <prod athenz-service='prod-service'>" +
- " <region active='true'>us-central-1</region>" +
- " <parallel>" +
- " <region active='true'>us-west-1</region>" +
- " <region active='true'>us-east-3</region>" +
- " </parallel>" +
- " </prod>" +
- "</deployment>"
- );
- DeploymentSpec spec = DeploymentSpec.fromXml(r);
- assertEquals("domain", spec.athenzDomain().get().value());
- assertEquals("prod-service", spec.athenzService(Environment.prod,
- RegionName.from("us-central-1")).get().value());
- assertEquals("prod-service", spec.athenzService(Environment.prod,
- RegionName.from("us-west-1")).get().value());
- assertEquals("prod-service", spec.athenzService(Environment.prod,
- RegionName.from("us-east-3")).get().value());
- assertEquals("domain", spec.athenzDomain().get().value());
- }
-
- @Test
- public void athenz_service_is_overridden_from_environment() {
- StringReader r = new StringReader(
- "<deployment athenz-domain='domain' athenz-service='service'>\n" +
- " <test/>\n" +
- " <prod athenz-service='prod-service'>\n" +
- " <region active='true'>us-west-1</region>\n" +
- " </prod>\n" +
- "</deployment>"
- );
- DeploymentSpec spec = DeploymentSpec.fromXml(r);
- assertEquals(spec.athenzDomain().get().value(), "domain");
- assertEquals(spec.athenzService(Environment.prod, RegionName.from("us-west-1")).get().value(), "prod-service");
- }
-
- @Test(expected = IllegalArgumentException.class)
- public void it_fails_when_athenz_service_is_not_defined() {
- StringReader r = new StringReader(
- "<deployment athenz-domain='domain'>\n" +
- " <prod>\n" +
- " <region active='true'>us-west-1</region>\n" +
- " </prod>\n" +
- "</deployment>"
- );
- DeploymentSpec spec = DeploymentSpec.fromXml(r);
- }
-
- @Test(expected = IllegalArgumentException.class)
- public void it_fails_when_athenz_service_is_configured_but_not_athenz_domain() {
- StringReader r = new StringReader(
- "<deployment>\n" +
- " <prod athenz-service='service'>\n" +
- " <region active='true'>us-west-1</region>\n" +
- " </prod>\n" +
- "</deployment>"
- );
- DeploymentSpec spec = DeploymentSpec.fromXml(r);
- }
-
- @Test
public void noNotifications() {
assertEquals(Notifications.none(),
DeploymentSpec.fromXml("<deployment />").notifications());
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 7b571417ef8..ff51c336658 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
@@ -605,15 +605,10 @@ public class DeploymentSpecTest {
);
DeploymentSpec spec = DeploymentSpec.fromXml(r);
assertEquals("domain", spec.athenzDomain().get().value());
- assertEquals("service", spec.athenzService(InstanceName.from("instance1"),
- Environment.prod,
- RegionName.from("us-west-1")).get().value());
- assertEquals("service", spec.athenzService(InstanceName.from("non-existent"),
- Environment.prod,
- RegionName.from("us-west-1")).get().value());
assertEquals("domain", spec.requireInstance("instance1").athenzDomain().get().value());
+ assertEquals("service", spec.athenzService().get().value());
assertEquals("service", spec.requireInstance("instance1").athenzService(Environment.prod,
- RegionName.from("us-west-1")).get().value());
+ RegionName.from("us-west-1")).get().value());
}
@Test
@@ -633,19 +628,15 @@ public class DeploymentSpecTest {
);
DeploymentSpec spec = DeploymentSpec.fromXml(r);
assertEquals("domain", spec.athenzDomain().get().value());
- assertEquals("prod-service", spec.athenzService(InstanceName.from("instance1"),
- Environment.prod,
- RegionName.from("us-west-1")).get().value());
- assertEquals("service", spec.athenzService(InstanceName.from("non-existent"),
- Environment.prod,
- RegionName.from("us-west-1")).get().value());
+ assertEquals("service", spec.athenzService().get().value());
+
assertEquals("domain", spec.requireInstance("instance1").athenzDomain().get().value());
assertEquals("prod-service", spec.requireInstance("instance1").athenzService(Environment.prod,
- RegionName.from("us-central-1")).get().value());
+ RegionName.from("us-central-1")).get().value());
assertEquals("prod-service", spec.requireInstance("instance1").athenzService(Environment.prod,
- RegionName.from("us-west-1")).get().value());
+ RegionName.from("us-west-1")).get().value());
assertEquals("prod-service", spec.requireInstance("instance1").athenzService(Environment.prod,
- RegionName.from("us-east-3")).get().value());
+ RegionName.from("us-east-3")).get().value());
}
@Test
@@ -674,12 +665,6 @@ public class DeploymentSpecTest {
);
DeploymentSpec spec = DeploymentSpec.fromXml(r);
assertEquals("domain", spec.athenzDomain().get().value());
- assertEquals("service", spec.athenzService(InstanceName.from("instance1"),
- Environment.prod,
- RegionName.from("us-west-1")).get().value());
- assertEquals("service", spec.athenzService(InstanceName.from("non-existent"),
- Environment.prod,
- RegionName.from("us-west-1")).get().value());
assertEquals("domain", spec.requireInstance("instance1").athenzDomain().get().value());
assertEquals("service", spec.requireInstance("instance1").athenzService(Environment.prod,
RegionName.from("us-west-1")).get().value());
@@ -701,11 +686,10 @@ public class DeploymentSpecTest {
"</deployment>"
);
DeploymentSpec spec = DeploymentSpec.fromXml(r);
+ assertEquals(Optional.empty(), spec.athenzDomain());
+ assertEquals(Optional.empty(), spec.athenzService());
assertEquals(spec.requireInstance("default").athenzDomain().get().value(), "domain");
assertEquals(spec.requireInstance("default").athenzService(Environment.prod, RegionName.from("us-west-1")).get().value(), "service");
- assertEquals(Optional.empty(), spec.athenzService(InstanceName.from("non-existent"),
- Environment.prod,
- RegionName.from("us-west-1")));
}
@Test
@@ -722,17 +706,9 @@ public class DeploymentSpecTest {
);
DeploymentSpec spec = DeploymentSpec.fromXml(r);
assertEquals(spec.requireInstance("default").athenzDomain().get().value(), "domain");
- assertEquals(spec.athenzService(InstanceName.from("default"),
- Environment.prod,
- RegionName.from("us-west-1")).get().value(),
- "prod-service");
- assertEquals(spec.requireInstance("default").athenzService(Environment.prod,
- RegionName.from("us-west-1")).get().value(),
- "prod-service");
- assertEquals(spec.athenzService(InstanceName.from("non-existent"),
- Environment.prod,
- RegionName.from("us-west-1")).get().value(),
- "service");
+ assertEquals("prod-service",
+ spec.requireInstance("default").athenzService(Environment.prod,
+ RegionName.from("us-west-1")).get().value());
}
@Test(expected = IllegalArgumentException.class)
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 7805b73cc6a..b5af354aead 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
@@ -388,16 +388,14 @@ public class DeploymentSpecWithoutInstanceTest {
);
DeploymentSpec spec = DeploymentSpec.fromXml(r);
assertEquals("domain", spec.athenzDomain().get().value());
- assertEquals("prod-service", spec.athenzService(InstanceName.from("default"),
- Environment.prod,
- RegionName.from("us-central-1")).get().value());
- assertEquals("prod-service", spec.athenzService(InstanceName.from("default"),
- Environment.prod,
- RegionName.from("us-west-1")).get().value());
- assertEquals("prod-service", spec.athenzService(InstanceName.from("default"),
- Environment.prod,
- RegionName.from("us-east-3")).get().value());
- assertEquals("domain", spec.athenzDomain().get().value());
+ assertEquals("domain", spec.requireInstance("default").athenzDomain().get().value());
+ assertEquals("service", spec.athenzService().get().value());
+ assertEquals("prod-service", spec.requireInstance("default").athenzService(Environment.prod, RegionName.from("us-central-1"))
+ .get().value());
+ assertEquals("prod-service", spec.requireInstance("default").athenzService(Environment.prod, RegionName.from("us-west-1"))
+ .get().value());
+ assertEquals("prod-service", spec.requireInstance("default").athenzService(Environment.prod, RegionName.from("us-east-3"))
+ .get().value());
}
@Test
@@ -411,6 +409,7 @@ public class DeploymentSpecWithoutInstanceTest {
"</deployment>"
);
DeploymentSpec spec = DeploymentSpec.fromXml(r);
+ assertEquals("service", spec.athenzService().get().value());
assertEquals(spec.requireInstance("default").athenzDomain().get().value(), "domain");
assertEquals(spec.requireInstance("default").athenzService(Environment.prod, RegionName.from("us-west-1")).get().value(), "prod-service");
}