aboutsummaryrefslogtreecommitdiffstats
path: root/config-application-package/src/test/java/com
diff options
context:
space:
mode:
Diffstat (limited to 'config-application-package/src/test/java/com')
-rw-r--r--config-application-package/src/test/java/com/yahoo/config/application/HostedOverrideProcessorTagsTest.java52
-rw-r--r--config-application-package/src/test/java/com/yahoo/config/application/OverrideProcessorTest.java69
2 files changed, 115 insertions, 6 deletions
diff --git a/config-application-package/src/test/java/com/yahoo/config/application/HostedOverrideProcessorTagsTest.java b/config-application-package/src/test/java/com/yahoo/config/application/HostedOverrideProcessorTagsTest.java
index 0cdbed3999c..7190b25965f 100644
--- a/config-application-package/src/test/java/com/yahoo/config/application/HostedOverrideProcessorTagsTest.java
+++ b/config-application-package/src/test/java/com/yahoo/config/application/HostedOverrideProcessorTagsTest.java
@@ -22,7 +22,7 @@ public class HostedOverrideProcessorTagsTest {
"<services xmlns:deploy='vespa' xmlns:preprocess='?' version='1.0'>" +
" <container id='foo' version='1.0'>" +
" <nodes count='5' deploy:tags='a' deploy:environment='perf'/>" +
- " <nodes count='10' deploy:tags='a b'/>" +
+ " <nodes count='10' deploy:tags='a b' deploy:environment='prod dev'/>" +
" <nodes count='20' deploy:tags='c'/>" +
" <search deploy:tags='b'/>" +
" <document-api deploy:tags='d'/>" +
@@ -62,6 +62,38 @@ public class HostedOverrideProcessorTagsTest {
}
@Test
+ public void testParsingTagATest() throws TransformerException {
+ String expected =
+ "<?xml version='1.0' encoding='UTF-8' standalone='no'?>" +
+ "<services xmlns:deploy='vespa' xmlns:preprocess='?' version='1.0'>" +
+ " <container id='foo' version='1.0'>" +
+ " " + // (╭ರ_•́)
+ " </container>" +
+ "</services>";
+ assertOverride(InstanceName.defaultName(),
+ Environment.test,
+ RegionName.defaultName(),
+ Tags.fromString("a"),
+ expected);
+ }
+
+ @Test
+ public void testParsingTagADev() throws TransformerException {
+ String expected =
+ "<?xml version='1.0' encoding='UTF-8' standalone='no'?>" +
+ "<services xmlns:deploy='vespa' xmlns:preprocess='?' version='1.0'>" +
+ " <container id='foo' version='1.0'>" +
+ " <nodes count='10' required='true'/>" +
+ " </container>" +
+ "</services>";
+ assertOverride(InstanceName.defaultName(),
+ Environment.dev,
+ RegionName.defaultName(),
+ Tags.fromString("a"),
+ expected);
+ }
+
+ @Test
public void testParsingTagB() throws TransformerException {
String expected =
"<?xml version='1.0' encoding='UTF-8' standalone='no'?>" +
@@ -79,7 +111,7 @@ public class HostedOverrideProcessorTagsTest {
}
@Test
- public void testParsingTagC() throws TransformerException {
+ public void testParsingTagCProd() throws TransformerException {
String expected =
"<?xml version='1.0' encoding='UTF-8' standalone='no'?>" +
"<services xmlns:deploy='vespa' xmlns:preprocess='?' version='1.0'>" +
@@ -95,6 +127,22 @@ public class HostedOverrideProcessorTagsTest {
}
@Test
+ public void testParsingTagCDev() throws TransformerException {
+ String expected =
+ "<?xml version='1.0' encoding='UTF-8' standalone='no'?>" +
+ "<services xmlns:deploy='vespa' xmlns:preprocess='?' version='1.0'>" +
+ " <container id='foo' version='1.0'>" +
+ " " + // (╭ರ_•́)
+ " </container>" +
+ "</services>";
+ assertOverride(InstanceName.defaultName(),
+ Environment.dev,
+ RegionName.defaultName(),
+ Tags.fromString("c"),
+ expected);
+ }
+
+ @Test
public void testParsingTagCAndD() throws TransformerException {
String expected =
"<?xml version='1.0' encoding='UTF-8' standalone='no'?>" +
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 e5e36615b09..c2b0770ab06 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
@@ -2,6 +2,7 @@
package com.yahoo.config.application;
import com.yahoo.config.provision.Cloud;
+import com.yahoo.config.provision.CloudName;
import com.yahoo.config.provision.Environment;
import com.yahoo.config.provision.InstanceName;
import com.yahoo.config.provision.RegionName;
@@ -12,6 +13,8 @@ import org.w3c.dom.Document;
import javax.xml.transform.TransformerException;
import java.io.StringReader;
+import static com.yahoo.config.provision.Tags.empty;
+
/**
* @author Ulf Lilleengen
*/
@@ -366,14 +369,72 @@ public class OverrideProcessorTest {
assertOverride(input, Environment.dev, RegionName.defaultName(), expected);
}
+ /**
+ * Tests that searchers referred to with idref are overridden per cloud
+ * and that searchers not referred to with idref are not overridden.
+ */
+ @Test
+ public void testSearchersReferredWithIdRefPerCloud() throws TransformerException {
+ String input =
+ """
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <services xmlns:deploy="vespa" xmlns:preprocess="?" version="1.0">
+ <container id="stateless" version="1.0">
+ <search>
+ <searcher id="AwsSearcher" class="ai.vespa.AwsSearcher" bundle="foo"/>
+ <searcher id="GcpSearcher" class="ai.vespa.GcpSearcher" bundle="foo"/>
+ <searcher id="OtherSearcher" class="ai.vespa.OtherSearcher" bundle="foo"/>
+ <chain id="default" inherits="vespa">
+ <searcher idref="AwsSearcher" deploy:cloud="aws"/>
+ <searcher idref="GcpSearcher" deploy:cloud="gcp"/>
+ <searcher idref="OtherSearcher"/>
+ </chain>
+ </search>
+ </container>
+ "</services>""";
+
+ String expected =
+ """
+ <?xml version="1.0" encoding="UTF-8" standalone="no"?>
+ <services xmlns:deploy="vespa" xmlns:preprocess="?" version="1.0">
+ <container id="stateless" version="1.0">
+ <search>
+ <searcher id="AwsSearcher" class="ai.vespa.AwsSearcher" bundle="foo"/>
+ <searcher id="GcpSearcher" class="ai.vespa.GcpSearcher" bundle="foo"/>
+ <searcher id="OtherSearcher" class="ai.vespa.OtherSearcher" bundle="foo"/>
+ <chain id="default" inherits="vespa">
+ <searcher idref="%s"/>
+ <searcher idref="OtherSearcher"/>
+ </chain>
+ </search>
+ </container>
+ "</services>""";
+
+ assertOverride(input, "aws", expected.formatted("AwsSearcher"));
+ assertOverride(input, "gcp", expected.formatted("GcpSearcher"));
+ }
+
private void assertOverride(Environment environment, RegionName region, String expected) throws TransformerException {
assertOverride(input, environment, region, expected);
}
- private void assertOverride(String input, Environment environment, RegionName region, String expected) throws TransformerException {
- Document inputDoc = Xml.getDocument(new StringReader(input));
- Document newDoc = new OverrideProcessor(InstanceName.from("default"), environment, region, Cloud.defaultCloud().name(), Tags.empty()).process(inputDoc);
- TestBase.assertDocument(expected, newDoc);
+ private void assertOverride(String input, Environment environment, RegionName region, String expected) {
+ assertOverride(input, environment, region, Cloud.defaultCloud().name(), expected);
+ }
+
+ private void assertOverride(String input, String cloudName, String expected) {
+ assertOverride(input, Environment.defaultEnvironment(), RegionName.defaultName(), CloudName.from(cloudName), expected);
+ }
+
+ private void assertOverride(String input, Environment environment, RegionName region, CloudName cloudName, String expected) {
+ var inputDoc = Xml.getDocument(new StringReader(input));
+ try {
+ var newDoc = new OverrideProcessor(InstanceName.from("default"), environment, region, cloudName, Tags.empty())
+ .process(inputDoc);
+ TestBase.assertDocument(expected, newDoc);
+ } catch (TransformerException e) {
+ throw new RuntimeException(e);
+ }
}
}