diff options
Diffstat (limited to 'config-application-package/src')
2 files changed, 9 insertions, 4 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 1e77ad1a8f7..db506c0ed51 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 @@ -118,14 +118,18 @@ class OverrideProcessor implements PreProcessor { Iterator<Element> elemIt = children.iterator(); while (elemIt.hasNext()) { Element child = elemIt.next(); - Optional<Environment> env = getEnvironment(child); - RegionName reg = getRegion(child); - if ((env.isPresent() && !environment.equals(env.get())) || (!reg.isDefault() && !region.equals(reg))) { + if ( ! matches(getEnvironment(child), getRegion(child))) { parent.removeChild(child); elemIt.remove(); } } } + + private boolean matches(Optional<Environment> elementEnvironment, RegionName elementRegion) { + if (elementEnvironment.isPresent() && ! environment.equals(elementEnvironment.get())) return false; + if ( ! elementRegion.isDefault() && ( ! region.equals(elementRegion) || ! environment.equals(Environment.prod))) return false; + return true; + } /** * Find the most specific element and remove all others. 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 41b69e9a7aa..adced18bb85 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 @@ -268,7 +268,8 @@ public class OverrideProcessorTest { " <document mode=\"index\" type=\"music2\"/>" + " </documents>" + " <nodes>" + - " <node distribution-key=\"0\" hostalias=\"node1\"/>" + + // node1 is specified for us-west but does not match because region overrides implies environment=prod + " <node distribution-key=\"0\" hostalias=\"node0\"/>" + " </nodes>" + " </content>" + " <jdisc id=\"stateless\" version=\"1.0\">" + |