diff options
author | Jon Marius Venstad <venstad@gmail.com> | 2021-01-18 15:34:40 +0100 |
---|---|---|
committer | Jon Marius Venstad <venstad@gmail.com> | 2021-01-18 15:34:40 +0100 |
commit | fc87789a38c8b528e7d88608fdf360488628c220 (patch) | |
tree | af1f0dcae177b56aa477027baf70d96fd99c3b8b /config-model/src/test | |
parent | 8c477ba59274179cae33d94b5d36f5a308defd61 (diff) |
Generate distribution and document-protocol-policies configs
Diffstat (limited to 'config-model/src/test')
9 files changed, 125 insertions, 20 deletions
diff --git a/config-model/src/test/cfg/routing/defaultconfig/document-protocol-policies.cfg b/config-model/src/test/cfg/routing/defaultconfig/document-protocol-policies.cfg new file mode 100644 index 00000000000..8b137891791 --- /dev/null +++ b/config-model/src/test/cfg/routing/defaultconfig/document-protocol-policies.cfg @@ -0,0 +1 @@ + diff --git a/config-model/src/test/cfg/routing/hopconfig/document-protocol-policies.cfg b/config-model/src/test/cfg/routing/hopconfig/document-protocol-policies.cfg new file mode 100644 index 00000000000..8b137891791 --- /dev/null +++ b/config-model/src/test/cfg/routing/hopconfig/document-protocol-policies.cfg @@ -0,0 +1 @@ + diff --git a/config-model/src/test/cfg/routing/replacehop/document-protocol-policies.cfg b/config-model/src/test/cfg/routing/replacehop/document-protocol-policies.cfg new file mode 100644 index 00000000000..68659362350 --- /dev/null +++ b/config-model/src/test/cfg/routing/replacehop/document-protocol-policies.cfg @@ -0,0 +1,8 @@ +cluster{music}.defaultRoute "music-direct" +cluster{music}.route[0].name "music-index" +cluster{music}.route[0].messageType 100004 +cluster{music}.route[1].name "music-index" +cluster{music}.route[1].messageType 100005 +cluster{music}.route[2].name "music-index" +cluster{music}.route[2].messageType 100006 +cluster{music}.selector "(music)" diff --git a/config-model/src/test/cfg/routing/replaceroute/document-protocol-policies.cfg b/config-model/src/test/cfg/routing/replaceroute/document-protocol-policies.cfg new file mode 100644 index 00000000000..68659362350 --- /dev/null +++ b/config-model/src/test/cfg/routing/replaceroute/document-protocol-policies.cfg @@ -0,0 +1,8 @@ +cluster{music}.defaultRoute "music-direct" +cluster{music}.route[0].name "music-index" +cluster{music}.route[0].messageType 100004 +cluster{music}.route[1].name "music-index" +cluster{music}.route[1].messageType 100005 +cluster{music}.route[2].name "music-index" +cluster{music}.route[2].messageType 100006 +cluster{music}.selector "(music)" diff --git a/config-model/src/test/cfg/routing/routeconfig/document-protocol-policies.cfg b/config-model/src/test/cfg/routing/routeconfig/document-protocol-policies.cfg new file mode 100644 index 00000000000..8b137891791 --- /dev/null +++ b/config-model/src/test/cfg/routing/routeconfig/document-protocol-policies.cfg @@ -0,0 +1 @@ + diff --git a/config-model/src/test/java/com/yahoo/vespa/model/content/ContentClusterTest.java b/config-model/src/test/java/com/yahoo/vespa/model/content/ContentClusterTest.java index 9f17a1c4142..6b293c955ca 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/content/ContentClusterTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/content/ContentClusterTest.java @@ -14,6 +14,7 @@ import com.yahoo.container.ComponentsConfig; import com.yahoo.messagebus.routing.RoutingTableSpec; import com.yahoo.metrics.MetricsmanagerConfig; import com.yahoo.vespa.config.content.AllClustersBucketSpacesConfig; +import com.yahoo.vespa.config.content.DistributionConfig; import com.yahoo.vespa.config.content.FleetcontrollerConfig; import com.yahoo.vespa.config.content.StorDistributionConfig; import com.yahoo.vespa.config.content.StorFilestorConfig; @@ -99,12 +100,19 @@ public class ContentClusterTest extends ContentBaseTest { " </group>" + "</content>" ); + DistributionConfig.Builder distributionBuilder = new DistributionConfig.Builder(); + cc.getConfig(distributionBuilder); + DistributionConfig distributionConfig = distributionBuilder.build(); + assertEquals(15, distributionConfig.cluster("storage").redundancy()); + assertEquals(4, distributionConfig.cluster("storage").group().size()); + StorDistributionConfig.Builder storBuilder = new StorDistributionConfig.Builder(); cc.getConfig(storBuilder); StorDistributionConfig storConfig = new StorDistributionConfig(storBuilder); assertEquals(15, storConfig.initial_redundancy()); assertEquals(15, storConfig.redundancy()); assertEquals(3, storConfig.ready_copies()); + ProtonConfig.Builder protonBuilder = new ProtonConfig.Builder(); cc.getSearch().getConfig(protonBuilder); ProtonConfig protonConfig = new ProtonConfig(protonBuilder); @@ -132,12 +140,18 @@ public class ContentClusterTest extends ContentBaseTest { " </group>" + "</content>" ); + DistributionConfig.Builder distributionBuilder = new DistributionConfig.Builder(); + cc.getConfig(distributionBuilder); + DistributionConfig distributionConfig = distributionBuilder.build(); + assertEquals(5, distributionConfig.cluster("storage").redundancy()); + StorDistributionConfig.Builder storBuilder = new StorDistributionConfig.Builder(); cc.getConfig(storBuilder); StorDistributionConfig storConfig = new StorDistributionConfig(storBuilder); assertEquals(4, storConfig.initial_redundancy()); assertEquals(5, storConfig.redundancy()); assertEquals(3, storConfig.ready_copies()); + ProtonConfig.Builder protonBuilder = new ProtonConfig.Builder(); cc.getSearch().getConfig(protonBuilder); ProtonConfig protonConfig = new ProtonConfig(protonBuilder); @@ -163,8 +177,7 @@ public class ContentClusterTest extends ContentBaseTest { @Test public void testRedundancyDefaults() { - StorDistributionConfig.Builder builder = new StorDistributionConfig.Builder(); - parse( + ContentCluster cc = parse( "<content version=\"1.0\" id=\"storage\">\n" + " <documents/>" + " <group>" + @@ -173,8 +186,15 @@ public class ContentClusterTest extends ContentBaseTest { " <node hostalias=\"mockhost\" distribution-key=\"2\"/>\"" + " </group>" + "</content>" - ).getConfig(builder); + ); + + DistributionConfig.Builder distributionBuilder = new DistributionConfig.Builder(); + cc.getConfig(distributionBuilder); + DistributionConfig distributionConfig = distributionBuilder.build(); + assertEquals(3, distributionConfig.cluster("storage").redundancy()); + StorDistributionConfig.Builder builder = new StorDistributionConfig.Builder(); + cc.getConfig(builder); StorDistributionConfig config = new StorDistributionConfig(builder); assertEquals(2, config.initial_redundancy()); assertEquals(3, config.redundancy()); @@ -548,6 +568,13 @@ public class ContentClusterTest extends ContentBaseTest { "</content>" ); + DistributionConfig.Builder bob = new DistributionConfig.Builder(); + cluster.getConfig(bob); + DistributionConfig.Cluster.Group group = bob.build().cluster("test").group(0); + assertEquals("invalid", group.name()); + assertEquals("invalid", group.index()); + assertEquals(2, group.nodes().size()); + StorDistributionConfig.Builder builder = new StorDistributionConfig.Builder(); cluster.getConfig(builder); diff --git a/config-model/src/test/java/com/yahoo/vespa/model/content/IndexedHierarchicDistributionTest.java b/config-model/src/test/java/com/yahoo/vespa/model/content/IndexedHierarchicDistributionTest.java index d290d4ec953..80ab6745b79 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/content/IndexedHierarchicDistributionTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/content/IndexedHierarchicDistributionTest.java @@ -2,10 +2,6 @@ package com.yahoo.vespa.model.content; import com.yahoo.vespa.config.content.StorDistributionConfig; -import com.yahoo.config.model.test.MockRoot; -import com.yahoo.vespa.model.Host; -import com.yahoo.vespa.model.HostResource; -import com.yahoo.vespa.model.SimpleConfigProducer; import com.yahoo.vespa.model.content.cluster.ContentCluster; import com.yahoo.vespa.model.search.DispatchGroup; import com.yahoo.vespa.model.search.SearchInterface; @@ -17,9 +13,9 @@ import java.util.List; import java.util.Optional; import static com.yahoo.config.model.test.TestUtil.joinLines; -import static org.hamcrest.Matchers.containsString; import static com.yahoo.vespa.model.content.utils.ContentClusterUtils.createCluster; import static com.yahoo.vespa.model.content.utils.ContentClusterUtils.createClusterXml; +import static org.hamcrest.Matchers.containsString; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertThat; diff --git a/config-model/src/test/java/com/yahoo/vespa/model/content/StorageGroupTest.java b/config-model/src/test/java/com/yahoo/vespa/model/content/StorageGroupTest.java index cb457cabf6c..b9495d45e08 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/content/StorageGroupTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/content/StorageGroupTest.java @@ -2,13 +2,14 @@ package com.yahoo.vespa.model.content; import com.yahoo.config.model.test.MockRoot; +import com.yahoo.vespa.config.content.DistributionConfig; import com.yahoo.vespa.config.content.StorDistributionConfig; import com.yahoo.vespa.model.content.cluster.ContentCluster; import com.yahoo.vespa.model.content.utils.ContentClusterUtils; import org.junit.Test; import static org.junit.Assert.assertEquals; -import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; /** * Test for storage groups. @@ -21,7 +22,6 @@ public class StorageGroupTest { @Test public void testSingleGroup() throws Exception { - StorDistributionConfig.Builder builder = new StorDistributionConfig.Builder(); ContentCluster cluster = parse( "<content id=\"storage\">\n" + " <documents/>" + @@ -32,8 +32,6 @@ public class StorageGroupTest { "</content>" ); - cluster.getConfig(builder); - assertEquals("content", cluster.getStorageNodes().getChildren().get("0").getServicePropertyString("clustertype")); assertEquals("storage", cluster.getStorageNodes().getChildren().get("0").getServicePropertyString("clustername")); assertEquals("0", cluster.getStorageNodes().getChildren().get("0").getServicePropertyString("index")); @@ -42,6 +40,8 @@ public class StorageGroupTest { assertEquals("storage", cluster.getDistributorNodes().getChildren().get("0").getServicePropertyString("clustername")); assertEquals("0", cluster.getDistributorNodes().getChildren().get("0").getServicePropertyString("index")); + StorDistributionConfig.Builder builder = new StorDistributionConfig.Builder(); + cluster.getConfig(builder); StorDistributionConfig config = new StorDistributionConfig(builder); assertEquals(1, config.group().size()); @@ -51,6 +51,17 @@ public class StorageGroupTest { assertEquals(0, config.group(0).nodes(0).index()); assertEquals(1, config.group(0).nodes(1).index()); //assertNotNull(cluster.getRootGroup().getNodes().get(0).getHost()); + + DistributionConfig.Builder distributionBuilder = new DistributionConfig.Builder(); + cluster.getConfig(distributionBuilder); + DistributionConfig.Cluster clusterConfig = distributionBuilder.build().cluster("storage"); + + assertEquals(1, clusterConfig.group().size()); + assertEquals("invalid", clusterConfig.group(0).index()); + assertEquals("invalid", clusterConfig.group(0).name()); + assertEquals(2, clusterConfig.group(0).nodes().size()); + assertEquals(0, clusterConfig.group(0).nodes(0).index()); + assertEquals(1, clusterConfig.group(0).nodes(1).index()); } @Test @@ -70,15 +81,14 @@ public class StorageGroupTest { " </group>\n" + "</cluster>" ); - assertTrue(false); + fail(); } catch (Exception e) { } } @Test public void testNestedGroups() throws Exception { - StorDistributionConfig.Builder builder = new StorDistributionConfig.Builder(); - parse( + ContentCluster cluster = parse( "<content version=\"1.0\" id=\"storage\">\n" + " <redundancy>4</redundancy>" + " <documents/>" + @@ -101,8 +111,10 @@ public class StorageGroupTest { " </group>\n" + " </group>\n" + "</content>" - ).getConfig(builder); + ); + StorDistributionConfig.Builder builder = new StorDistributionConfig.Builder(); + cluster.getConfig(builder); StorDistributionConfig config = new StorDistributionConfig(builder); assertEquals(5, config.group().size()); @@ -128,12 +140,39 @@ public class StorageGroupTest { assertEquals(5, config.group(4).nodes(1).index()); assertEquals("1|*", config.group(0).partitions()); + + DistributionConfig.Builder distributionBuilder = new DistributionConfig.Builder(); + cluster.getConfig(distributionBuilder); + DistributionConfig.Cluster clusterConfig = distributionBuilder.build().cluster("storage"); + + assertEquals(5, clusterConfig.group().size()); + assertEquals("invalid", clusterConfig.group(0).index()); + assertEquals("0", clusterConfig.group(1).index()); + assertEquals("1", clusterConfig.group(2).index()); + assertEquals("1.0", clusterConfig.group(3).index()); + assertEquals("1.1", clusterConfig.group(4).index()); + assertEquals("invalid", clusterConfig.group(0).name()); + assertEquals("sub1", clusterConfig.group(1).name()); + assertEquals("sub2", clusterConfig.group(2).name()); + assertEquals("sub3", clusterConfig.group(3).name()); + assertEquals("sub4", clusterConfig.group(4).name()); + assertEquals(2, clusterConfig.group(1).nodes().size()); + assertEquals(0, clusterConfig.group(1).nodes(0).index()); + assertEquals(1, clusterConfig.group(1).nodes(1).index()); + assertEquals(0, clusterConfig.group(2).nodes().size()); + assertEquals(2, clusterConfig.group(3).nodes().size()); + assertEquals(2, clusterConfig.group(3).nodes(0).index()); + assertEquals(3, clusterConfig.group(3).nodes(1).index()); + assertEquals(2, clusterConfig.group(4).nodes().size()); + assertEquals(4, clusterConfig.group(4).nodes(0).index()); + assertEquals(5, clusterConfig.group(4).nodes(1).index()); + + assertEquals("1|*", clusterConfig.group(0).partitions()); } @Test public void testGroupCapacity() throws Exception { - StorDistributionConfig.Builder builder = new StorDistributionConfig.Builder(); - parse( + ContentCluster cluster = parse( "<content version=\"1.0\" id=\"storage\">\n" + " <redundancy>2</redundancy>" + " <documents/>" + @@ -149,13 +188,25 @@ public class StorageGroupTest { " </group>\n" + " </group>\n" + "</content>" - ).getConfig(builder); + ); + StorDistributionConfig.Builder builder = new StorDistributionConfig.Builder(); + cluster.getConfig(builder); StorDistributionConfig config = new StorDistributionConfig(builder); assertEquals(3, config.group().size()); assertEquals(5.5, config.group(0).capacity(), 0.001); assertEquals(2, config.group(1).capacity(), 0.001); assertEquals(3.5, config.group(2).capacity(), 0.001); + + DistributionConfig.Builder distributionBuilder = new DistributionConfig.Builder(); + cluster.getConfig(distributionBuilder); + DistributionConfig.Cluster clusterConfig = distributionBuilder.build().cluster("storage"); + + assertEquals(3, clusterConfig.group().size()); + assertEquals(5.5, clusterConfig.group(0).capacity(), 0.001); + assertEquals(2, clusterConfig.group(1).capacity(), 0.001); + assertEquals(3.5, clusterConfig.group(2).capacity(), 0.001); } + } diff --git a/config-model/src/test/java/com/yahoo/vespa/model/routing/test/RoutingTestCase.java b/config-model/src/test/java/com/yahoo/vespa/model/routing/test/RoutingTestCase.java index 9e7370a933c..d2c66b92834 100755 --- a/config-model/src/test/java/com/yahoo/vespa/model/routing/test/RoutingTestCase.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/routing/test/RoutingTestCase.java @@ -5,12 +5,20 @@ import com.yahoo.config.ConfigInstance; import com.yahoo.documentapi.messagebus.protocol.DocumentrouteselectorpolicyConfig; import com.yahoo.io.IOUtils; import com.yahoo.messagebus.MessagebusConfig; +import com.yahoo.messagebus.documentapi.DocumentProtocolPoliciesConfig; import com.yahoo.vespa.model.VespaModel; import com.yahoo.vespa.model.test.utils.VespaModelCreatorWithFilePkg; import org.junit.Ignore; import org.junit.Test; -import java.io.*; +import java.io.BufferedReader; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.io.FileWriter; +import java.io.FilenameFilter; +import java.io.IOException; +import java.io.PrintWriter; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -96,6 +104,10 @@ public class RoutingTestCase { model.getConfig(drB, ""); DocumentrouteselectorpolicyConfig dr = new DocumentrouteselectorpolicyConfig(drB); assertConfigFileContains(application, files, "documentrouteselectorpolicy.cfg", dr); + + DocumentProtocolPoliciesConfig.Builder policies = new DocumentProtocolPoliciesConfig.Builder(); + model.getConfig(policies, ""); + assertConfigFileContains(application, files, "document-protocol-policies.cfg", policies.build()); } else { StringBuilder msg = new StringBuilder(); for (String error : errors) { |