summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMartin Polden <mpolden@mpolden.no>2022-09-07 12:53:04 +0200
committerMartin Polden <mpolden@mpolden.no>2022-09-12 09:27:42 +0200
commit6dfaaa60db9b60f5f48aa30e77da0b1cc08ab8f9 (patch)
tree76be06cbff23f21c4a569f2eca9c87b425fe30b4
parent89dd1b69ed6d036715969bbe2d1c28d20c731d43 (diff)
Allow cloud-account attribute on prod element
-rw-r--r--config-model-api/src/main/java/com/yahoo/config/application/api/xml/DeploymentSpecXmlReader.java2
-rw-r--r--config-model-api/src/test/java/com/yahoo/config/application/api/DeploymentSpecTest.java6
-rw-r--r--config-model/src/main/resources/schema/deployment.rnc1
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* &