diff options
author | Martin Polden <mpolden@mpolden.no> | 2019-01-11 13:31:31 +0100 |
---|---|---|
committer | Martin Polden <mpolden@mpolden.no> | 2019-01-11 13:31:31 +0100 |
commit | c60c77398f49d2b3119cde96009a9525601688d5 (patch) | |
tree | 1a78d051ed2914d29df1f5a63e3cc59efec81617 /config-application-package/src | |
parent | 25221dbd5bff429264aba05dadf7464303abd70a (diff) |
Make pre-processing respect region for dev environments
Diffstat (limited to 'config-application-package/src')
3 files changed, 42 insertions, 12 deletions
diff --git a/config-application-package/src/main/java/com/yahoo/config/application/OverrideProcessor.java b/config-application-package/src/main/java/com/yahoo/config/application/OverrideProcessor.java index 9443339624a..0599afa056d 100644 --- a/config-application-package/src/main/java/com/yahoo/config/application/OverrideProcessor.java +++ b/config-application-package/src/main/java/com/yahoo/config/application/OverrideProcessor.java @@ -136,11 +136,11 @@ class OverrideProcessor implements PreProcessor { } if ( ! elementRegions.isEmpty()) { // match region - // match region in prod only - if ( environment.equals(Environment.prod) && ! elementRegions.contains(region)) return false; + // match region in multi-region environments only + if ( environment.isMultiRegion() && ! elementRegions.contains(region)) return false; - // explicit region implies prod - if ( ! environment.equals(Environment.prod) && elementEnvironments.isEmpty() ) return false; + // explicit region implies multi-region environment + if ( ! environment.isMultiRegion() && elementEnvironments.isEmpty() ) return false; } return true; diff --git a/config-application-package/src/test/java/com/yahoo/config/application/MultiOverrideProcessorTest.java b/config-application-package/src/test/java/com/yahoo/config/application/MultiOverrideProcessorTest.java index c450e478c85..7c054ec62ee 100644 --- a/config-application-package/src/test/java/com/yahoo/config/application/MultiOverrideProcessorTest.java +++ b/config-application-package/src/test/java/com/yahoo/config/application/MultiOverrideProcessorTest.java @@ -89,7 +89,7 @@ public class MultiOverrideProcessorTest { " </component>\n" + " </container>\n" + "</services>"; - assertOverride(Environment.dev, RegionName.defaultName(), expected); + assertOverride(Environment.dev, RegionName.from("us-east-3"), expected); } @Test @@ -118,7 +118,7 @@ public class MultiOverrideProcessorTest { " </component>\n" + " </container>\n" + "</services>"; - assertOverrideWithIds(Environment.dev, RegionName.defaultName(), expected); + assertOverrideWithIds(Environment.dev, RegionName.from("us-east-3"), expected); } private void assertOverride(Environment environment, RegionName region, String expected) throws TransformerException { diff --git a/config-application-package/src/test/java/com/yahoo/config/application/OverrideProcessorTest.java b/config-application-package/src/test/java/com/yahoo/config/application/OverrideProcessorTest.java index e4690418847..57213efcd0d 100644 --- a/config-application-package/src/test/java/com/yahoo/config/application/OverrideProcessorTest.java +++ b/config-application-package/src/test/java/com/yahoo/config/application/OverrideProcessorTest.java @@ -6,12 +6,8 @@ import com.yahoo.config.provision.RegionName; import org.custommonkey.xmlunit.XMLUnit; import org.junit.Test; import org.w3c.dom.Document; -import org.xml.sax.SAXException; -import javax.xml.parsers.ParserConfigurationException; -import javax.xml.stream.XMLStreamException; import javax.xml.transform.TransformerException; -import java.io.IOException; import java.io.StringReader; /** @@ -42,6 +38,11 @@ public class OverrideProcessorTest { " <document deploy:environment='prod' mode='index' type='music3'/>\n" + " <document deploy:environment='prod' deploy:region='us-west' mode='index' type='music4'/>\n" + " </documents>" + + " <documents deploy:environment='dev'>" + + " <document mode='store-only' type='music'/>\n" + + " <document type='music5' mode='streaming' />\n" + + " <document deploy:region='us-east-1' type='music6' mode='streaming' />\n" + + " </documents>" + " <documents>" + " <document mode='store-only' type='music'/>\n" + " <document type='music2' mode='streaming' />\n" + @@ -214,7 +215,7 @@ public class OverrideProcessorTest { " <redundancy>1</redundancy>" + " <documents>" + " <document mode=\"store-only\" type=\"music\"/>" + - " <document mode=\"streaming\" type=\"music2\"/>" + + " <document mode=\"streaming\" type=\"music5\"/>" + " </documents>" + " <nodes>" + " <node distribution-key=\"0\" hostalias=\"node0\"/>" + @@ -232,6 +233,35 @@ public class OverrideProcessorTest { } @Test + public void testParsingDevEnvironmentAndRegion() throws Exception { + String expected = + "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>" + + "<services xmlns:deploy=\"vespa\" xmlns:preprocess=\"?\" version=\"1.0\">" + + " <admin version=\"2.0\">" + + " <adminserver hostalias=\"node0\"/>" + + " </admin>" + + " <content id=\"foo\" version=\"1.0\">" + + " <redundancy>1</redundancy>" + + " <documents>" + + " <document mode=\"streaming\" type=\"music6\"/>" + + " </documents>" + + " <nodes>" + + " <node distribution-key=\"0\" hostalias=\"node0\"/>" + + " </nodes>" + + " </content>" + + " <jdisc id=\"stateless\" version=\"1.0\">" + + " <search/>" + + " <component id=\"foo\" class=\"MyFoo\" bundle=\"foobundle\" />" + + " <nodes>" + + " <node hostalias=\"node0\"/>" + + " </nodes>" + + " </jdisc>" + + "</services>"; + + assertOverride(Environment.from("dev"), RegionName.from("us-east-1"), expected); + } + + @Test public void testParsingTestEnvironmentUnknownRegion() throws TransformerException { String expected = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>" + @@ -317,7 +347,7 @@ public class OverrideProcessorTest { } private void assertOverride(Environment environment, RegionName region, String expected) throws TransformerException { - Document inputDoc = Xml.getDocument(new StringReader(input)); + Document inputDoc = Xml.getDocument(new StringReader(OverrideProcessorTest.input)); Document newDoc = new OverrideProcessor(environment, region).process(inputDoc); TestBase.assertDocument(expected, newDoc); } |