diff options
author | Arne Juul <arnej@yahoo-inc.com> | 2018-09-12 05:56:26 +0000 |
---|---|---|
committer | gjoranv <gv@oath.com> | 2019-01-21 15:09:21 +0100 |
commit | f1791b7a17aa7d4cf6989fad48ebb3fc4e4ef93c (patch) | |
tree | 2ddc9f878dedf677d307704c1be0c4b1b5ce7b8e | |
parent | e94b3caeea0d2b93154e7183dba974862015c473 (diff) |
use existing container cluster if possible
6 files changed, 30 insertions, 34 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/content/Content.java b/config-model/src/main/java/com/yahoo/vespa/model/content/Content.java index 8d0824f89e5..79619ac0c1f 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/content/Content.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/content/Content.java @@ -238,10 +238,8 @@ public class Content extends ConfigModel { IndexedSearchCluster indexedSearchCluster = content.getCluster().getSearch().getIndexed(); if (indexedSearchCluster.hasExplicitIndexingCluster()) { setExistingIndexingCluster(indexedSearchCluster, content.containers); - } else if (content.isHosted) { - setContainerAsIndexingCluster(indexedSearchCluster, content, modelContext, root); } else { - createImplicitIndexingCluster(indexedSearchCluster, content, modelContext, root); + setContainerAsIndexingCluster(indexedSearchCluster, content, modelContext, root); } } diff --git a/config-model/src/test/java/com/yahoo/vespa/model/admin/AdminTestCase.java b/config-model/src/test/java/com/yahoo/vespa/model/admin/AdminTestCase.java index 9cafe6541e4..93f87ef033b 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/admin/AdminTestCase.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/admin/AdminTestCase.java @@ -218,14 +218,8 @@ public class AdminTestCase { public void testContainerMetricsSnapshotInterval() { VespaModel vespaModel = getVespaModel(TESTDIR + "metricconfig"); - ContainerCluster docprocCluster = vespaModel.getContainerClusters().get("cluster.music.indexing"); - HealthMonitorConfig.Builder builder = new HealthMonitorConfig.Builder(); - docprocCluster.getConfig(builder); - HealthMonitorConfig docprocConfig = new HealthMonitorConfig(builder); - assertEquals(60, (int) docprocConfig.snapshot_interval()); - ContainerCluster qrCluster = vespaModel.getContainerClusters().get("container"); - builder = new HealthMonitorConfig.Builder(); + HealthMonitorConfig.Builder builder = new HealthMonitorConfig.Builder(); qrCluster.getConfig(builder); HealthMonitorConfig qrClusterConfig = new HealthMonitorConfig(builder); assertEquals(60, (int) qrClusterConfig.snapshot_interval()); diff --git a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/ConfigValueChangeValidatorTest.java b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/ConfigValueChangeValidatorTest.java index f9944f563c4..2456113f40d 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/ConfigValueChangeValidatorTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/application/validation/change/ConfigValueChangeValidatorTest.java @@ -58,10 +58,9 @@ public class ConfigValueChangeValidatorTest { createVespaModel(createQrStartConfigSegment(true, 2096)), createVespaModel(createQrStartConfigSegment(false, 2096)) ); - assertEquals(3, changes.size()); + assertEquals(2, changes.size()); assertComponentsEquals(changes, "default/container.0", 0); assertComponentsEquals(changes, "admin/cluster-controllers/0", 1); - assertComponentsEquals(changes, "docproc/cluster.basicsearch.indexing/0", 2); } @Test diff --git a/config-model/src/test/java/com/yahoo/vespa/model/content/IndexedTest.java b/config-model/src/test/java/com/yahoo/vespa/model/content/IndexedTest.java index 731544bb30e..11abe13712a 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/content/IndexedTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/content/IndexedTest.java @@ -151,8 +151,8 @@ public class IndexedTest extends ContentBaseTest { DocumentProtocol protocol = (DocumentProtocol) routing.getProtocols().get(0); RoutingTableSpec spec = protocol.getRoutingTableSpec(); assertEquals(2, spec.getNumHops()); - assertEquals("docproc/cluster.test.indexing/chain.indexing", spec.getHop(0).getName()); - assertEquals("indexing", spec.getHop(1).getName()); + assertEquals("indexing", spec.getHop(0).getName()); + assertEquals("jdisc/chain.indexing", spec.getHop(1).getName()); RouteSpec r; r = spec.getRoute(0); @@ -174,7 +174,7 @@ public class IndexedTest extends ContentBaseTest { r = spec.getRoute(4); assertEquals("test-index", r.getName()); assertEquals(2, r.getNumHops()); - assertEquals("docproc/cluster.test.indexing/chain.indexing", r.getHop(0)); + assertEquals("jdisc/chain.indexing", r.getHop(0)); assertEquals("[Content:cluster=test]", r.getHop(1)); } @Test @@ -281,7 +281,7 @@ public class IndexedTest extends ContentBaseTest { @Test public void requireThatIndexingDocprocGetsConfigIdBasedOnDistributionKey() { VespaModel model = getIndexedVespaModel(); - ContainerCluster cluster = model.getContainerClusters().get("cluster.test.indexing"); - assertEquals("docproc/cluster.test.indexing/3", cluster.getContainers().get(0).getConfigId()); + ContainerCluster cluster = model.getContainerClusters().get("jdisc"); + assertEquals("jdisc/container.0", cluster.getContainers().get(0).getConfigId()); } } diff --git a/config-model/src/test/java/com/yahoo/vespa/model/content/IndexingAndDocprocRoutingTest.java b/config-model/src/test/java/com/yahoo/vespa/model/content/IndexingAndDocprocRoutingTest.java index 9cdb2606241..d8ebe4650f9 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/content/IndexingAndDocprocRoutingTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/content/IndexingAndDocprocRoutingTest.java @@ -42,8 +42,9 @@ public class IndexingAndDocprocRoutingTest extends ContentBaseTest { SearchClusterSpec searchCluster = new SearchClusterSpec(CLUSTERNAME, null, null); searchCluster.searchDefs.add(new SearchDefSpec("music", "artist", "album")); VespaModel model = getIndexedContentVespaModel(Collections.<DocprocClusterSpec>emptyList(), Arrays.asList(searchCluster)); - assertIndexing(model, new DocprocClusterSpec(CLUSTERNAME + ".indexing", new DocprocChainSpec("docproc/cluster." + CLUSTERNAME + ".indexing/chain.indexing"))); - assertFeedingRoute(model, CLUSTERNAME, "docproc/cluster." + CLUSTERNAME + ".indexing/chain.indexing"); +System.out.println("line 37"); + assertIndexing(model, new DocprocClusterSpec("jdisc", new DocprocChainSpec("jdisc/chain.indexing"))); + assertFeedingRoute(model, CLUSTERNAME, "jdisc/chain.indexing"); } @Test @@ -54,8 +55,9 @@ public class IndexingAndDocprocRoutingTest extends ContentBaseTest { searchCluster.searchDefs.add(new SearchDefSpec("music", "artist", "album")); searchCluster.searchDefs.add(new SearchDefSpec("book", "author", "title")); VespaModel model = getIndexedContentVespaModel(Collections.<DocprocClusterSpec>emptyList(), Arrays.asList(searchCluster)); - assertIndexing(model, new DocprocClusterSpec(CLUSTERNAME + ".indexing", new DocprocChainSpec("docproc/cluster." + CLUSTERNAME + ".indexing/chain.indexing"))); - assertFeedingRoute(model, CLUSTERNAME, "docproc/cluster." + CLUSTERNAME + ".indexing/chain.indexing"); +System.out.println("line 49"); + assertIndexing(model, new DocprocClusterSpec("jdisc", new DocprocChainSpec("jdisc/chain.indexing"))); + assertFeedingRoute(model, CLUSTERNAME, "jdisc/chain.indexing"); } @Test @@ -71,12 +73,12 @@ public class IndexingAndDocprocRoutingTest extends ContentBaseTest { VespaModel model = getIndexedContentVespaModel(Collections.<DocprocClusterSpec>emptyList(), Arrays.asList(musicCluster, booksCluster)); +System.out.println("line 66"); assertIndexing(model, - new DocprocClusterSpec(MUSIC + ".indexing", new DocprocChainSpec("docproc/cluster." + MUSIC + ".indexing/chain.indexing")), - new DocprocClusterSpec(BOOKS + ".indexing", new DocprocChainSpec("docproc/cluster." + BOOKS + ".indexing/chain.indexing"))); + new DocprocClusterSpec("jdisc", new DocprocChainSpec("jdisc/chain.indexing"))); - assertFeedingRoute(model, MUSIC, "docproc/cluster." + MUSIC + ".indexing/chain.indexing"); - assertFeedingRoute(model, BOOKS, "docproc/cluster." + BOOKS + ".indexing/chain.indexing"); + assertFeedingRoute(model, MUSIC, "jdisc/chain.indexing"); + assertFeedingRoute(model, BOOKS, "jdisc/chain.indexing"); } @@ -241,6 +243,9 @@ public class IndexingAndDocprocRoutingTest extends ContentBaseTest { private void assertIndexing(VespaModel model, DocprocClusterSpec... expectedDocprocClusters) { Map<String, ContainerCluster> docprocClusters = getDocprocClusters(model); +for (Map.Entry<String, ContainerCluster> entry : docprocClusters.entrySet()) { +System.out.println("got docproc cluster: "+entry.getKey()); +} assertThat(docprocClusters.size(), is(expectedDocprocClusters.length)); for (DocprocClusterSpec expectedDocprocCluster : expectedDocprocClusters) { @@ -254,6 +259,7 @@ public class IndexingAndDocprocRoutingTest extends ContentBaseTest { List<String> actualDocprocChains = new ArrayList<>(); for (DocprocChain chain : chains) { actualDocprocChains.add(chain.getServiceName()); +System.out.println("cluster "+docprocCluster.getName()+" with docproc chain: "+chain.getServiceName()); } List<String> expectedDocprocChainStrings = new ArrayList<>(); for (DocprocChainSpec spec : expectedDocprocCluster.chains) { diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/SuperModelControllerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/SuperModelControllerTest.java index 0595be3230f..713026a3497 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/SuperModelControllerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/SuperModelControllerTest.java @@ -105,7 +105,7 @@ public class SuperModelControllerTest { assertThat(lbc.tenants("t1").applications().size(), is(2)); assertThat(lbc.tenants("t2").applications().size(), is(1)); assertThat(lbc.tenants("t2").applications("minetooadvancedapp:prod:default:default").hosts().size(), is(1)); - assertQrServer(lbc.tenants("t2").applications("minetooadvancedapp:prod:default:default")); + assertContainer(lbc.tenants("t2").applications("minetooadvancedapp:prod:default:default")); } @Test @@ -140,21 +140,23 @@ public class SuperModelControllerTest { return ApplicationId.from(tenantName, ApplicationName.from(applicationName), InstanceName.defaultName()); } - private void assertQrServer(Applications app) { + private void assertContainer(Applications app) { String host = app.hosts().keySet().iterator().next(); Applications.Hosts hosts = app.hosts(host); assertThat(hosts.hostname(), is(host)); for (Map.Entry<String, Applications.Hosts.Services> e : app.hosts(host).services().entrySet()) { - System.out.println(e); - if ("qrserver".equals(e.getKey())) { + System.out.println(e.getKey()); + if ("container".equals(e.getKey())) { Applications.Hosts.Services s = e.getValue(); - assertThat(s.type(), is("qrserver")); + System.out.println(s); + assertThat(s.type(), is("container")); assertThat(s.ports().size(), is(4)); + assertThat(s.ports().get(0).number(), is(8000)); assertThat(s.index(), is(0)); return; } } - org.junit.Assert.fail("No qrserver service in config"); + org.junit.Assert.fail("No container service in config"); } private DeployState createDeployState(File applicationPackage, ApplicationId applicationId) { @@ -170,6 +172,3 @@ public class SuperModelControllerTest { } } - - - |