diff options
author | Jon Bratseth <bratseth@gmail.com> | 2022-10-12 15:55:11 +0200 |
---|---|---|
committer | Jon Bratseth <bratseth@gmail.com> | 2022-10-12 15:55:11 +0200 |
commit | 5e0502391c2ca7c4b0bfc9f4f652da2676f26314 (patch) | |
tree | 1fb5c7073f0af7b111d3290e4295a323d0d9ece2 /config-application-package/src/test/java/com/yahoo | |
parent | 08f7a121fff008dd1307b106bd1b7d7a84433fe6 (diff) |
Add instance tags
Diffstat (limited to 'config-application-package/src/test/java/com/yahoo')
5 files changed, 248 insertions, 27 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 new file mode 100644 index 00000000000..8d7431d33b6 --- /dev/null +++ b/config-application-package/src/test/java/com/yahoo/config/application/HostedOverrideProcessorTagsTest.java @@ -0,0 +1,124 @@ +// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.config.application; + +import com.yahoo.config.provision.Environment; +import com.yahoo.config.provision.InstanceName; +import com.yahoo.config.provision.RegionName; +import com.yahoo.config.provision.Tags; +import org.custommonkey.xmlunit.XMLUnit; +import org.junit.Test; +import org.w3c.dom.Document; + +import javax.xml.transform.TransformerException; +import java.io.StringReader; + +/** + * @author bratseth + */ +public class HostedOverrideProcessorTagsTest { + + static { + XMLUnit.setIgnoreWhitespace(true); + } + + private static final String input = + "<?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='5' deploy:tags='a' deploy:environment='perf'/>" + + " <nodes count='10' deploy:tags='a b'/>" + + " <nodes count='20' deploy:tags='c'/>" + + " <search deploy:tags='b'/>" + + " <document-api deploy:tags='d'/>" + + " </container>" + + "</services>"; + + @Test + public void testParsingTagAPerf() 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='5' required='true'/>" + + " </container>" + + "</services>"; + assertOverride(InstanceName.defaultName(), + Environment.perf, + RegionName.defaultName(), + Tags.fromString("a"), + expected); + } + + @Test + public void testParsingTagAProd() 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.prod, + RegionName.defaultName(), + Tags.fromString("a"), + expected); + } + + @Test + public void testParsingTagB() 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'/>" + + " <search/>" + + " </container>" + + "</services>"; + assertOverride(InstanceName.defaultName(), + Environment.prod, + RegionName.defaultName(), + Tags.fromString("b"), + expected); + } + + @Test + public void testParsingTagC() 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='20' required='true'/>" + + " </container>" + + "</services>"; + assertOverride(InstanceName.defaultName(), + Environment.prod, + RegionName.defaultName(), + Tags.fromString("c"), + expected); + } + + @Test + public void testParsingTagCAndD() 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='20' required='true'/>" + + " <document-api/>" + + " </container>" + + "</services>"; + assertOverride(InstanceName.defaultName(), + Environment.prod, + RegionName.defaultName(), + Tags.fromString("c d"), + expected); + } + + private void assertOverride(InstanceName instance, Environment environment, RegionName region, Tags tags, String expected) throws TransformerException { + Document inputDoc = Xml.getDocument(new StringReader(input)); + Document newDoc = new OverrideProcessor(instance, environment, region, tags).process(inputDoc); + TestBase.assertDocument(expected, newDoc); + } + +} diff --git a/config-application-package/src/test/java/com/yahoo/config/application/HostedOverrideProcessorTest.java b/config-application-package/src/test/java/com/yahoo/config/application/HostedOverrideProcessorTest.java index 1a4dab01930..451c7a3c217 100644 --- a/config-application-package/src/test/java/com/yahoo/config/application/HostedOverrideProcessorTest.java +++ b/config-application-package/src/test/java/com/yahoo/config/application/HostedOverrideProcessorTest.java @@ -4,6 +4,7 @@ package com.yahoo.config.application; import com.yahoo.config.provision.Environment; import com.yahoo.config.provision.InstanceName; import com.yahoo.config.provision.RegionName; +import com.yahoo.config.provision.Tags; import org.custommonkey.xmlunit.XMLUnit; import org.junit.Test; import org.w3c.dom.Document; @@ -14,6 +15,7 @@ import javax.xml.stream.XMLStreamException; import javax.xml.transform.TransformerException; import java.io.IOException; import java.io.StringReader; +import java.util.List; /** * @author bratseth @@ -48,7 +50,11 @@ public class HostedOverrideProcessorTest { " <nodes count='1'/>" + " </container>" + "</services>"; - assertOverride(Environment.test, RegionName.defaultName(), expected); + assertOverride(InstanceName.defaultName(), + Environment.test, + RegionName.defaultName(), + Tags.empty(), + expected); } @Test @@ -60,7 +66,27 @@ public class HostedOverrideProcessorTest { " <nodes count='4' required='true'/>" + " </container>" + "</services>"; - assertOverride(Environment.from("prod"), RegionName.from("us-west"), expected); + assertOverride(InstanceName.defaultName(), + Environment.from("prod"), + RegionName.from("us-west"), + Tags.empty(), + expected); + } + + @Test + public void testParsingSpecificTag() 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='4' required='true'/>" + + " </container>" + + "</services>"; + assertOverride(InstanceName.defaultName(), + Environment.from("prod"), + RegionName.from("us-west"), + Tags.empty(), + expected); } @Test @@ -72,7 +98,11 @@ public class HostedOverrideProcessorTest { " <nodes count='1' required='true'/>" + " </container>" + "</services>"; - assertOverride(InstanceName.from("myinstance"), Environment.from("prod"), RegionName.from("us-west"), expected); + assertOverride(InstanceName.from("myinstance"), + Environment.from("prod"), + RegionName.from("us-west"), + Tags.empty(), + expected); } @Test @@ -84,7 +114,11 @@ public class HostedOverrideProcessorTest { " <nodes count='5' flavor='v-8-8-100' required='true'/>" + " </container>" + "</services>"; - assertOverride(Environment.from("prod"), RegionName.from("us-east-3"), expected); + assertOverride(InstanceName.defaultName(), + Environment.from("prod"), + RegionName.from("us-east-3"), + Tags.empty(), + expected); } @Test @@ -96,7 +130,11 @@ public class HostedOverrideProcessorTest { " <nodes count='3' required='true'/>" + " </container>" + "</services>"; - assertOverride(Environment.from("perf"), RegionName.from("us-east-3"), expected); + assertOverride(InstanceName.defaultName(), + Environment.from("perf"), + RegionName.from("us-east-3"), + Tags.empty(), + expected); } @Test @@ -108,7 +146,11 @@ public class HostedOverrideProcessorTest { " <nodes count='3' flavor='v-4-8-100' required='true'/>" + " </container>" + "</services>"; - assertOverride(Environment.valueOf("prod"), RegionName.from("unknown"), expected); + assertOverride(InstanceName.defaultName(), + Environment.valueOf("prod"), + RegionName.from("unknown"), + Tags.empty(), + expected); } @Test @@ -120,7 +162,11 @@ public class HostedOverrideProcessorTest { " <nodes count='3' flavor='v-4-8-100' required='true'/>" + " </container>" + "</services>"; - assertOverride(Environment.from("prod"), RegionName.defaultName(), expected); + assertOverride(InstanceName.defaultName(), + Environment.from("prod"), + RegionName.defaultName(), + Tags.empty(), + expected); } @Test @@ -132,7 +178,11 @@ public class HostedOverrideProcessorTest { " <nodes count='1'/>" + " </container>" + "</services>"; - assertOverride(Environment.from("dev"), RegionName.defaultName(), expected); + assertOverride(InstanceName.defaultName(), + Environment.from("dev"), + RegionName.defaultName(), + Tags.empty(), + expected); } @Test @@ -144,7 +194,11 @@ public class HostedOverrideProcessorTest { " <nodes count='1'/>" + " </container>" + "</services>"; - assertOverride(Environment.from("test"), RegionName.from("us-west"), expected); + assertOverride(InstanceName.defaultName(), + Environment.from("test"), + RegionName.from("us-west"), + Tags.empty(), + expected); } @Test @@ -156,16 +210,16 @@ public class HostedOverrideProcessorTest { " <nodes count='2' required='true'/>" + " </container>" + "</services>"; - assertOverride(Environment.from("staging"), RegionName.from("us-west"), expected); - } - - private void assertOverride(Environment environment, RegionName region, String expected) throws TransformerException { - assertOverride(InstanceName.from("default"), environment, region, expected); + assertOverride(InstanceName.defaultName(), + Environment.from("staging"), + RegionName.from("us-west"), + Tags.empty(), + expected); } - private void assertOverride(InstanceName instance, Environment environment, RegionName region, String expected) throws TransformerException { + private void assertOverride(InstanceName instance, Environment environment, RegionName region, Tags tags, String expected) throws TransformerException { Document inputDoc = Xml.getDocument(new StringReader(input)); - Document newDoc = new OverrideProcessor(instance, environment, region).process(inputDoc); + Document newDoc = new OverrideProcessor(instance, environment, region, tags).process(inputDoc); TestBase.assertDocument(expected, newDoc); } 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 44bcb12957a..debde6c1438 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 @@ -4,6 +4,7 @@ package com.yahoo.config.application; import com.yahoo.config.provision.Environment; import com.yahoo.config.provision.InstanceName; import com.yahoo.config.provision.RegionName; +import com.yahoo.config.provision.Tags; import org.custommonkey.xmlunit.XMLUnit; import org.junit.Test; import org.w3c.dom.Document; @@ -124,13 +125,13 @@ public class MultiOverrideProcessorTest { private void assertOverride(Environment environment, RegionName region, String expected) throws TransformerException { Document inputDoc = Xml.getDocument(new StringReader(input)); - Document newDoc = new OverrideProcessor(InstanceName.from("default"), environment, region).process(inputDoc); + Document newDoc = new OverrideProcessor(InstanceName.from("default"), environment, region, Tags.empty()).process(inputDoc); TestBase.assertDocument(expected, newDoc); } private void assertOverrideWithIds(Environment environment, RegionName region, String expected) throws TransformerException { Document inputDoc = Xml.getDocument(new StringReader(inputWithIds)); - Document newDoc = new OverrideProcessor(InstanceName.from("default"), environment, region).process(inputDoc); + Document newDoc = new OverrideProcessor(InstanceName.from("default"), environment, region, Tags.empty()).process(inputDoc); TestBase.assertDocument(expected, newDoc); } 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 e9ee7c97876..150999390d8 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 @@ -4,6 +4,7 @@ package com.yahoo.config.application; import com.yahoo.config.provision.Environment; import com.yahoo.config.provision.InstanceName; import com.yahoo.config.provision.RegionName; +import com.yahoo.config.provision.Tags; import org.custommonkey.xmlunit.XMLUnit; import org.junit.Test; import org.w3c.dom.Document; @@ -332,7 +333,10 @@ public class OverrideProcessorTest { " </admin>" + "</services>"; Document inputDoc = Xml.getDocument(new StringReader(in)); - new OverrideProcessor(InstanceName.from("default"), Environment.from("prod"), RegionName.from("us-west")).process(inputDoc); + new OverrideProcessor(InstanceName.from("default"), + Environment.from("prod"), + RegionName.from("us-west"), + Tags.empty()).process(inputDoc); } @Test(expected = IllegalArgumentException.class) @@ -344,7 +348,10 @@ public class OverrideProcessorTest { " </admin>" + "</services>"; Document inputDoc = Xml.getDocument(new StringReader(in)); - new OverrideProcessor(InstanceName.from("default"), Environment.defaultEnvironment(), RegionName.from("us-west")).process(inputDoc); + new OverrideProcessor(InstanceName.from("default"), + Environment.defaultEnvironment(), + RegionName.from("us-west"), + Tags.empty()).process(inputDoc); } @Test @@ -399,7 +406,7 @@ public class OverrideProcessorTest { 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).process(inputDoc); + Document newDoc = new OverrideProcessor(InstanceName.from("default"), environment, region, Tags.empty()).process(inputDoc); TestBase.assertDocument(expected, newDoc); } diff --git a/config-application-package/src/test/java/com/yahoo/config/application/XmlPreprocessorTest.java b/config-application-package/src/test/java/com/yahoo/config/application/XmlPreprocessorTest.java index 92c2c2a820f..0da94b69e58 100644 --- a/config-application-package/src/test/java/com/yahoo/config/application/XmlPreprocessorTest.java +++ b/config-application-package/src/test/java/com/yahoo/config/application/XmlPreprocessorTest.java @@ -4,11 +4,13 @@ package com.yahoo.config.application; import com.yahoo.config.provision.Environment; import com.yahoo.config.provision.InstanceName; import com.yahoo.config.provision.RegionName; +import com.yahoo.config.provision.Tags; import org.junit.Test; import org.w3c.dom.Document; import java.io.File; import java.io.StringReader; +import java.util.Set; /** * @author hmusum @@ -44,7 +46,13 @@ public class XmlPreprocessorTest { " </nodes>\n" + " </container>\n" + "</services>"; - TestBase.assertDocument(expectedDev, new XmlPreProcessor(appDir, services, InstanceName.defaultName(), Environment.dev, RegionName.defaultName()).run()); + TestBase.assertDocument(expectedDev, + new XmlPreProcessor(appDir, + services, + InstanceName.defaultName(), + Environment.dev, + RegionName.defaultName(), + Tags.empty()).run()); String expectedStaging = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>" + @@ -70,7 +78,13 @@ public class XmlPreprocessorTest { " </nodes>\n" + " </container>\n" + "</services>"; - TestBase.assertDocument(expectedStaging, new XmlPreProcessor(appDir, services, InstanceName.defaultName(), Environment.staging, RegionName.defaultName()).run()); + TestBase.assertDocument(expectedStaging, + new XmlPreProcessor(appDir, + services, + InstanceName.defaultName(), + Environment.staging, + RegionName.defaultName(), + Tags.empty()).run()); String expectedUsWest = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>" + @@ -104,7 +118,13 @@ public class XmlPreprocessorTest { " </nodes>\n" + " </container>\n" + "</services>"; - TestBase.assertDocument(expectedUsWest, new XmlPreProcessor(appDir, services, InstanceName.defaultName(), Environment.prod, RegionName.from("us-west")).run()); + TestBase.assertDocument(expectedUsWest, + new XmlPreProcessor(appDir, + services, + InstanceName.defaultName(), + Environment.prod, + RegionName.from("us-west"), + Tags.empty()).run()); String expectedUsEastAndCentral = "<?xml version=\"1.0\" encoding=\"UTF-8\" standalone=\"no\"?>" + @@ -138,9 +158,19 @@ public class XmlPreprocessorTest { " </container>\n" + "</services>"; TestBase.assertDocument(expectedUsEastAndCentral, - new XmlPreProcessor(appDir, services, InstanceName.defaultName(), Environment.prod, RegionName.from("us-east")).run()); + new XmlPreProcessor(appDir, + services, + InstanceName.defaultName(), + Environment.prod, + RegionName.from("us-east"), + Tags.empty()).run()); TestBase.assertDocument(expectedUsEastAndCentral, - new XmlPreProcessor(appDir, services, InstanceName.defaultName(), Environment.prod, RegionName.from("us-central")).run()); + new XmlPreProcessor(appDir, + services, + InstanceName.defaultName(), + Environment.prod, + RegionName.from("us-central"), + Tags.empty()).run()); } @Test @@ -184,7 +214,12 @@ public class XmlPreprocessorTest { " <adminserver hostalias=\"node0\"/>" + " </admin>" + "</services>"; - Document docDev = (new XmlPreProcessor(appDir, new StringReader(input), InstanceName.defaultName(), Environment.prod, RegionName.defaultName()).run()); + Document docDev = (new XmlPreProcessor(appDir, + new StringReader(input), + InstanceName.defaultName(), + Environment.prod, + RegionName.defaultName(), + Tags.empty()).run()); TestBase.assertDocument(expectedProd, docDev); } |