diff options
author | Martin Polden <mpolden@mpolden.no> | 2022-09-07 12:53:04 +0200 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2022-09-12 09:27:42 +0200 |
commit | 6dfaaa60db9b60f5f48aa30e77da0b1cc08ab8f9 (patch) | |
tree | 76be06cbff23f21c4a569f2eca9c87b425fe30b4 | |
parent | 89dd1b69ed6d036715969bbe2d1c28d20c731d43 (diff) |
Allow cloud-account attribute on prod element
3 files changed, 8 insertions, 1 deletions
diff --git a/config-model-api/src/main/java/com/yahoo/config/application/api/xml/DeploymentSpecXmlReader.java b/config-model-api/src/main/java/com/yahoo/config/application/api/xml/DeploymentSpecXmlReader.java index c98e429a52b..83fba75325e 100644 --- a/config-model-api/src/main/java/com/yahoo/config/application/api/xml/DeploymentSpecXmlReader.java +++ b/config-model-api/src/main/java/com/yahoo/config/application/api/xml/DeploymentSpecXmlReader.java @@ -440,7 +440,7 @@ public class DeploymentSpecXmlReader { } private Optional<CloudAccount> readCloudAccount(Element tag) { - return stringAttribute(cloudAccountAttribute, tag).map(CloudAccount::new); + return mostSpecificAttribute(tag, cloudAccountAttribute).map(CloudAccount::new); } private Optional<String> readGlobalServiceId(Element environmentTag) { 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 6ffb4d2f1e0..6373e0e0232 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 @@ -1514,6 +1514,11 @@ public class DeploymentSpecTest { public void cloudAccount() { StringReader r = new StringReader( "<deployment version='1.0' cloud-account='100000000000'>" + + " <instance id='alpha'>" + + " <prod cloud-account='800000000000'>" + + " <region>us-east-1</region>" + + " </prod>" + + " </instance>" + " <instance id='beta' cloud-account='200000000000'>" + " <staging cloud-account='600000000000'/>" + " <perf cloud-account='700000000000'/>" + @@ -1532,6 +1537,7 @@ public class DeploymentSpecTest { "</deployment>" ); DeploymentSpec spec = DeploymentSpec.fromXml(r); + assertCloudAccount("800000000000", spec.requireInstance("alpha"), Environment.prod, "us-east-1"); assertCloudAccount("200000000000", spec.requireInstance("beta"), Environment.prod, "us-west-1"); assertCloudAccount("600000000000", spec.requireInstance("beta"), Environment.staging, ""); assertCloudAccount("700000000000", spec.requireInstance("beta"), Environment.perf, ""); diff --git a/config-model/src/main/resources/schema/deployment.rnc b/config-model/src/main/resources/schema/deployment.rnc index b95c9539750..9723e531bd2 100644 --- a/config-model/src/main/resources/schema/deployment.rnc +++ b/config-model/src/main/resources/schema/deployment.rnc @@ -115,6 +115,7 @@ Prod = element prod { attribute global-service-id { text }? & attribute athenz-service { xsd:string }? & attribute tester-flavor { xsd:string }? & + attribute cloud-account { xsd:string }? & Region* & Delay* & ProdTest* & |