From f48635bfa721cc710e580327f27fe10f94dab5b1 Mon Sep 17 00:00:00 2001 From: Martin Polden Date: Mon, 17 Jun 2024 12:54:29 +0200 Subject: Ensure isHostedVespa=true in hosted tests --- .../com/yahoo/vespa/config/server/deploy/HostedDeployTest.java | 8 ++++++-- .../vespa/config/server/http/v2/ApplicationApiHandlerTest.java | 4 ++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/deploy/HostedDeployTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/deploy/HostedDeployTest.java index 512f4dff6b7..a82052b6356 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/deploy/HostedDeployTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/deploy/HostedDeployTest.java @@ -22,7 +22,6 @@ import com.yahoo.config.provision.DockerImage; import com.yahoo.config.provision.Environment; import com.yahoo.config.provision.RegionName; import com.yahoo.config.provision.Zone; -import com.yahoo.container.ComponentsConfig; import com.yahoo.slime.SlimeUtils; import com.yahoo.test.ManualClock; import com.yahoo.vespa.config.server.MockConfigConvergenceChecker; @@ -35,7 +34,6 @@ import com.yahoo.vespa.config.server.http.v2.PrepareResult; import com.yahoo.vespa.config.server.maintenance.PendingRestartsMaintainer; import com.yahoo.vespa.config.server.model.TestModelFactory; import com.yahoo.vespa.config.server.session.PrepareParams; -import com.yahoo.vespa.model.VespaModel; import com.yahoo.vespa.model.application.validation.change.VespaReindexAction; import com.yahoo.vespa.model.application.validation.change.VespaRestartAction; import org.junit.Rule; @@ -77,6 +75,7 @@ public class HostedDeployTest { @Test public void testRedeployWithVersion() { DeployTester tester = new DeployTester.Builder(temporaryFolder) + .hostedConfigserverConfig(Zone.defaultZone()) .modelFactory(createHostedModelFactory(Version.fromString("4.5.6"), Clock.systemUTC())) .build(); tester.deployApp("src/test/apps/hosted/", "4.5.6"); @@ -90,6 +89,7 @@ public class HostedDeployTest { @Test public void testRedeploy() { DeployTester tester = new DeployTester.Builder(temporaryFolder) + .hostedConfigserverConfig(Zone.defaultZone()) .modelFactory(createHostedModelFactory()) .build(); ApplicationId appId = tester.applicationId(); @@ -105,6 +105,7 @@ public class HostedDeployTest { @Test public void testReDeployWithWantedDockerImageRepositoryAndAthenzDomain() { DeployTester tester = new DeployTester.Builder(temporaryFolder) + .hostedConfigserverConfig(Zone.defaultZone()) .modelFactory(createHostedModelFactory(Version.fromString("4.5.6"), Clock.systemUTC())) .build(); String dockerImageRepository = "docker.foo.com:4443/bar/baz"; @@ -125,6 +126,7 @@ public class HostedDeployTest { public void testRedeployWithTenantSecretStores() { List tenantSecretStores = List.of(new TenantSecretStore("foo", "123", "role")); DeployTester tester = new DeployTester.Builder(temporaryFolder) + .hostedConfigserverConfig(Zone.defaultZone()) .modelFactory(createHostedModelFactory(Version.fromString("4.5.6"), Clock.systemUTC())) .build(); tester.deployApp("src/test/apps/hosted/", new PrepareParams.Builder() @@ -141,6 +143,7 @@ public class HostedDeployTest { public void testDeployOnUnknownVersion() { List modelFactories = List.of(createHostedModelFactory(Version.fromString("1.0.0"))); DeployTester tester = new DeployTester.Builder(temporaryFolder) + .hostedConfigserverConfig(Zone.defaultZone()) .modelFactories(modelFactories) .build(); @@ -561,6 +564,7 @@ public class HostedDeployTest { public void testRedeployWithCloudAccount() { CloudAccount cloudAccount = CloudAccount.from("012345678912"); DeployTester tester = new DeployTester.Builder(temporaryFolder) + .hostedConfigserverConfig(Zone.defaultZone()) .modelFactory(createHostedModelFactory(Version.fromString("4.5.6"), Clock.systemUTC())) .build(); tester.deployApp("src/test/apps/hosted/", new PrepareParams.Builder() diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ApplicationApiHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ApplicationApiHandlerTest.java index d4aa0676c4f..25e4e004a61 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ApplicationApiHandlerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ApplicationApiHandlerTest.java @@ -86,7 +86,7 @@ class ApplicationApiHandlerTest { public Path dbDir, defsDir, refsDir; @BeforeEach - public void setupRepo() throws IOException { + public void setupRepo() { configserverConfig = new ConfigserverConfig.Builder() .hostedVespa(true) .configServerDBDir(dbDir.toString()) @@ -113,7 +113,7 @@ class ApplicationApiHandlerTest { Zone.defaultZone()); } - private HttpResponse put(long sessionId, Map parameters) throws IOException { + private HttpResponse put(long sessionId, Map parameters) { var request = com.yahoo.container.jdisc.HttpRequest.createTestRequest("http://host:123/application/v2/tenant/" + tenant + "/prepareandactivate/" + sessionId, Method.PUT, InputStream.nullInputStream(), -- cgit v1.2.3 From a652953784ab80f37722f881aa9437ee6b5d62ea Mon Sep 17 00:00:00 2001 From: Martin Polden Date: Mon, 17 Jun 2024 12:55:23 +0200 Subject: Set endpoints in non-overloaded method --- .../vespa/config/server/deploy/DeployTester.java | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/deploy/DeployTester.java b/configserver/src/test/java/com/yahoo/vespa/config/server/deploy/DeployTester.java index 68add64ddd9..ec000951684 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/deploy/DeployTester.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/deploy/DeployTester.java @@ -139,6 +139,13 @@ public class DeployTester { * Do the initial "deploy" with the existing API-less code as the deploy API doesn't support first deploys yet. */ public PrepareResult deployApp(String applicationPath, String vespaVersion) { + return deployApp(applicationPath, new PrepareParams.Builder().vespaVersion(vespaVersion)); + } + + /** + * Do the initial "deploy" with the existing API-less code as the deploy API doesn't support first deploys yet. + */ + public PrepareResult deployApp(String applicationPath, PrepareParams.Builder paramsBuilder) { String endpoints = """ [ { @@ -151,15 +158,9 @@ public class DeployTester { } ] """; - return deployApp(applicationPath, new PrepareParams.Builder().containerEndpoints(endpoints).vespaVersion(vespaVersion)); - } - - /** - * Do the initial "deploy" with the existing API-less code as the deploy API doesn't support first deploys yet. - */ - public PrepareResult deployApp(String applicationPath, PrepareParams.Builder paramsBuilder) { - paramsBuilder.applicationId(applicationId) - .timeoutBudget(new TimeoutBudget(clock, Duration.ofSeconds(60))); + paramsBuilder.applicationId(applicationId) + .timeoutBudget(new TimeoutBudget(clock, Duration.ofSeconds(60))) + .containerEndpoints(endpoints); return applicationRepository.deploy(new File(applicationPath), paramsBuilder.build()); } -- cgit v1.2.3 From cda9cb3321a4fb7e12e40f61d66174205c0ee3cd Mon Sep 17 00:00:00 2001 From: Martin Polden Date: Mon, 17 Jun 2024 12:57:48 +0200 Subject: Add container on logserver in non-hosted environment --- .../com/yahoo/config/model/admin/AdminModel.java | 2 +- .../vespa/model/admin/LogserverContainer.java | 4 +-- .../model/builder/xml/dom/DomAdminV2Builder.java | 27 ++++++++++++++-- .../config/model/deploy/SystemModelTestCase.java | 12 +++++--- .../com/yahoo/vespa/model/admin/AdminTestCase.java | 36 ++++++++++++---------- .../metricsproxy/MetricsProxyContainerTest.java | 2 +- .../change/ConfigValueChangeValidatorTest.java | 7 +++-- .../model/builder/xml/dom/ContentBuilderTest.java | 4 +-- .../builder/xml/dom/DomAdminV2BuilderTest.java | 12 ++++++-- .../vespa/model/content/cluster/ClusterTest.java | 6 ++-- .../yahoo/vespa/model/test/VespaModelTestCase.java | 8 ++--- .../config/server/ApplicationRepositoryTest.java | 5 ++- 12 files changed, 79 insertions(+), 46 deletions(-) diff --git a/config-model/src/main/java/com/yahoo/config/model/admin/AdminModel.java b/config-model/src/main/java/com/yahoo/config/model/admin/AdminModel.java index e2c6b788b02..4ef591cda9f 100644 --- a/config-model/src/main/java/com/yahoo/config/model/admin/AdminModel.java +++ b/config-model/src/main/java/com/yahoo/config/model/admin/AdminModel.java @@ -84,7 +84,7 @@ public class AdminModel extends ConfigModel { } TreeConfigProducer parent = modelContext.getParentProducer(); ModelContext.Properties properties = modelContext.getDeployState().getProperties(); - DomAdminV2Builder domBuilder = new DomAdminV2Builder(modelContext.getApplicationType(), + DomAdminV2Builder domBuilder = new DomAdminV2Builder(modelContext, properties.multitenant(), properties.configServerSpecs()); model.admin = domBuilder.build(modelContext.getDeployState(), parent, adminElement); diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/LogserverContainer.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/LogserverContainer.java index a513cc673dd..db9f97451b8 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/admin/LogserverContainer.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/LogserverContainer.java @@ -8,14 +8,12 @@ import com.yahoo.vespa.model.container.Container; /** * Container that should be running on same host as the logserver. Sets up a handler for getting logs from logserver. - * Only in use in hosted Vespa. */ public class LogserverContainer extends Container { public LogserverContainer(TreeConfigProducer parent, DeployState deployState) { super(parent, "" + 0, 0, deployState); - if (deployState.isHosted() && deployState.getProperties().applicationId().instance().isTester()) - useDynamicPorts(); + useDynamicPorts(); } @Override diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV2Builder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV2Builder.java index 692de1769d3..a5cf9df45a1 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV2Builder.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV2Builder.java @@ -12,15 +12,18 @@ import com.yahoo.vespa.model.SimpleConfigProducer; import com.yahoo.vespa.model.admin.Admin; import com.yahoo.vespa.model.admin.Configserver; import com.yahoo.vespa.model.admin.Logserver; +import com.yahoo.vespa.model.admin.LogserverContainer; +import com.yahoo.vespa.model.admin.LogserverContainerCluster; import com.yahoo.vespa.model.admin.Slobrok; import com.yahoo.vespa.model.admin.clustercontroller.ClusterControllerCluster; import com.yahoo.vespa.model.admin.clustercontroller.ClusterControllerContainer; import com.yahoo.vespa.model.admin.clustercontroller.ClusterControllerContainerCluster; import com.yahoo.vespa.model.admin.otel.OpenTelemetryCollector; -import com.yahoo.vespa.model.admin.otel.OpenTelemetryConfigGenerator; import com.yahoo.vespa.model.builder.xml.dom.VespaDomBuilder.DomConfigProducerBuilderBase; import com.yahoo.vespa.model.container.Container; +import com.yahoo.vespa.model.container.ContainerModel; import org.w3c.dom.Element; + import java.util.ArrayList; import java.util.List; import java.util.Objects; @@ -35,10 +38,13 @@ public class DomAdminV2Builder extends DomAdminBuilderBase { private static final String ATTRIBUTE_CLUSTER_CONTROLLER_STANDALONE_ZK = "standalone-zookeeper"; - public DomAdminV2Builder(ConfigModelContext.ApplicationType applicationType, + private final ConfigModelContext context; + + public DomAdminV2Builder(ConfigModelContext context, boolean multitenant, List configServerSpecs) { - super(applicationType, multitenant, configServerSpecs); + super(context.getApplicationType(), multitenant, configServerSpecs); + this.context = context; } private void addOtelcol(TreeConfigProducer parent, DeployState deployState, HostResource hostResource) { @@ -52,6 +58,7 @@ public class DomAdminV2Builder extends DomAdminBuilderBase { List configservers = parseConfigservers(deployState, admin, adminE); var logserver = parseLogserver(deployState, admin, adminE); admin.setLogserver(logserver); + createContainerOnLogserverHost(deployState, admin, logserver.getHostResource()); if (deployState.featureFlags().logserverOtelCol()) { // for manual testing addOtelcol(admin, deployState, logserver.getHostResource()); @@ -65,6 +72,20 @@ public class DomAdminV2Builder extends DomAdminBuilderBase { addLoggingSpecs(new ModelElement(adminE).child("logging"), admin); } + private void createContainerOnLogserverHost(DeployState deployState, Admin admin, HostResource hostResource) { + LogserverContainerCluster logServerCluster = new LogserverContainerCluster(admin, "logs", deployState); + ContainerModel logserverClusterModel = new ContainerModel(context.withParent(admin).withId(logServerCluster.getSubId())); + logserverClusterModel.setCluster(logServerCluster); + + LogserverContainer container = new LogserverContainer(logServerCluster, deployState); + container.setHostResource(hostResource); + container.initService(deployState); + logServerCluster.addContainer(container); + admin.addAndInitializeService(deployState, hostResource, container); + admin.setLogserverContainerCluster(logServerCluster); + context.getConfigModelRepoAdder().add(logserverClusterModel); + } + private List parseConfigservers(DeployState deployState, Admin admin, Element adminE) { List configservers; if (multitenant) diff --git a/config-model/src/test/java/com/yahoo/config/model/deploy/SystemModelTestCase.java b/config-model/src/test/java/com/yahoo/config/model/deploy/SystemModelTestCase.java index f9f74546a00..8a184e414d7 100644 --- a/config-model/src/test/java/com/yahoo/config/model/deploy/SystemModelTestCase.java +++ b/config-model/src/test/java/com/yahoo/config/model/deploy/SystemModelTestCase.java @@ -62,7 +62,7 @@ public class SystemModelTestCase { VespaModel vespaModel = getVespaModelDoNotValidateXml(TESTDIR + "simpleconfig/"); assertNotNull(vespaModel); - assertEquals(4, vespaModel.configModelRepo().asMap().size(), "There are two instances of the simple model + Routing and AdminModel (set up implicitly)"); + assertEquals(5, vespaModel.configModelRepo().asMap().size(), "There are two instances of the simple model + Routing, Logs and AdminModel (set up implicitly)"); assertNotNull(vespaModel.configModelRepo().asMap().get("simple"), "One gets the default name as there is no explicit id"); assertNotNull(vespaModel.configModelRepo().asMap().get("second"), "The other gets the explicit id as name"); @@ -116,9 +116,9 @@ public class SystemModelTestCase { assertEquals(host1, host2); assertEquals(host2, host3); - // all three host aliases are for the same host, so the number of services should be 3 + 8 - // (3 simpleservices and logd, configproxy, config sentinel, admin server config server, slobrok, logserver and metricsproxy) - assertEquals(10, host1.getServices().size()); + // all three host aliases are for the same host, so the number of services should be 3 + 9 + // (3 simpleservices and logd, configproxy, config sentinel, admin server config server, slobrok, logserver, logserver-container and metricsproxy) + assertEquals(11, host1.getServices().size()); assertNotNull(host1.getService("simpleservice")); assertNotNull(host1.getService("simpleservice2")); @@ -145,7 +145,7 @@ public class SystemModelTestCase { assertNotNull(vespaModel); ApplicationConfigProducerRoot root = vespaModel.getVespa(); - assertEquals(5, vespaModel.configModelRepo().asMap().size()); + assertEquals(6, vespaModel.configModelRepo().asMap().size()); assertTrue(vespaModel.configModelRepo().asMap().containsKey("simple")); assertTrue(vespaModel.configModelRepo().asMap().containsKey("api")); assertTrue(root.getConfigIds().contains("simple/simpleservice.0")); @@ -155,6 +155,8 @@ public class SystemModelTestCase { // Verify that configModelRegistry iterates in dependency order Iterator i = vespaModel.configModelRepo().iterator(); ConfigModel plugin = i.next(); + assertEquals("logs", plugin.getId()); + plugin = i.next(); assertEquals("admin", plugin.getId()); plugin = i.next(); assertEquals("simple", plugin.getId()); 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 adf570c4664..96c6b1f99eb 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 @@ -50,8 +50,8 @@ public class AdminTestCase { void testAdmin20() { VespaModel vespaModel = getVespaModel(TESTDIR + "adminconfig20"); - // Verify that the admin plugin has been loaded (always loads routing). - assertEquals(2, vespaModel.configModelRepo().asMap().size()); + // Verify that the admin plugin has been loaded (always loads 'routing' and 'logs') + assertEquals(3, vespaModel.configModelRepo().asMap().size()); ApplicationConfigProducerRoot root = vespaModel.getVespa(); assertNotNull(root); @@ -81,10 +81,10 @@ public class AdminTestCase { StateserverConfig.Builder ssb = new StateserverConfig.Builder(); vespaModel.getConfig(ssb, "admin/slobrok.0"); - assertEquals(19100, new StateserverConfig(ssb).httpport()); + assertEquals(19103, new StateserverConfig(ssb).httpport()); vespaModel.getConfig(ssb, "admin/slobrok.1"); - assertEquals(19102, new StateserverConfig(ssb).httpport()); + assertEquals(19105, new StateserverConfig(ssb).httpport()); LogdConfig.Builder lb = new LogdConfig.Builder(); vespaModel.getConfig(lb, "admin/slobrok.0"); @@ -98,12 +98,13 @@ public class AdminTestCase { SentinelConfig.Builder b = new SentinelConfig.Builder(); vespaModel.getConfig(b, localhostConfigId); SentinelConfig sentinelConfig = new SentinelConfig(b); - assertEquals(5, sentinelConfig.service().size()); + assertEquals(6, sentinelConfig.service().size()); assertEquals("logserver", sentinelConfig.service(0).name()); - assertEquals("slobrok", sentinelConfig.service(1).name()); - assertEquals("slobrok2", sentinelConfig.service(2).name()); - assertEquals(METRICS_PROXY_CONTAINER.serviceName, sentinelConfig.service(3).name()); - assertEquals("logd", sentinelConfig.service(4).name()); + assertEquals("logserver-container", sentinelConfig.service(1).name()); + assertEquals("slobrok", sentinelConfig.service(2).name()); + assertEquals("slobrok2", sentinelConfig.service(3).name()); + assertEquals(METRICS_PROXY_CONTAINER.serviceName, sentinelConfig.service(4).name()); + assertEquals("logd", sentinelConfig.service(5).name()); } /** @@ -114,8 +115,8 @@ public class AdminTestCase { void testOnlyAdminserver() { VespaModel vespaModel = getVespaModel(TESTDIR + "simpleadminconfig20"); - // Verify that the admin plugin has been loaded (always loads routing). - assertEquals(2, vespaModel.configModelRepo().asMap().size()); + // Verify that the admin plugin has been loaded (always loads 'routing' and 'logs') + assertEquals(3, vespaModel.configModelRepo().asMap().size()); ApplicationConfigProducerRoot root = vespaModel.getVespa(); assertNotNull(root); @@ -134,11 +135,12 @@ public class AdminTestCase { SentinelConfig.Builder b = new SentinelConfig.Builder(); vespaModel.getConfig(b, localhostConfigId); SentinelConfig sentinelConfig = new SentinelConfig(b); - assertEquals(4, sentinelConfig.service().size()); + assertEquals(5, sentinelConfig.service().size()); assertEquals("logserver", sentinelConfig.service(0).name()); - assertEquals("slobrok", sentinelConfig.service(1).name()); - assertEquals(METRICS_PROXY_CONTAINER.serviceName, sentinelConfig.service(2).name()); - assertEquals("logd", sentinelConfig.service(3).name()); + assertEquals("logserver-container", sentinelConfig.service(1).name()); + assertEquals("slobrok", sentinelConfig.service(2).name()); + assertEquals(METRICS_PROXY_CONTAINER.serviceName, sentinelConfig.service(3).name()); + assertEquals("logd", sentinelConfig.service(4).name()); assertEquals(-1, sentinelConfig.service(0).affinity().cpuSocket()); assertTrue(sentinelConfig.service(0).preShutdownCommand().isEmpty()); @@ -175,8 +177,8 @@ public class AdminTestCase { void testMultipleConfigServers() { VespaModel vespaModel = getVespaModel(TESTDIR + "multipleconfigservers"); - // Verify that the admin plugin has been loaded (always loads routing). - assertEquals(2, vespaModel.configModelRepo().asMap().size()); + // Verify that the admin plugin has been loaded (always loads 'routing' and 'logs') + assertEquals(3, vespaModel.configModelRepo().asMap().size()); ApplicationConfigProducerRoot root = vespaModel.getVespa(); assertNotNull(root); diff --git a/config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerTest.java b/config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerTest.java index ac431f081ed..0acacc340eb 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/admin/metricsproxy/MetricsProxyContainerTest.java @@ -150,7 +150,7 @@ public class MetricsProxyContainerTest { @Test void vespa_services_config_has_all_services() { VespaServicesConfig vespaServicesConfig = getVespaServicesConfig(hostedServicesWithContent()); - assertEquals(10, vespaServicesConfig.service().size()); + assertEquals(11, vespaServicesConfig.service().size()); for (var service : vespaServicesConfig.service()) { if (service.configId().equals("admin/cluster-controllers/0")) { 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 f68a1da7dfb..0f7113748dd 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 @@ -57,10 +57,11 @@ public class ConfigValueChangeValidatorTest { createVespaModel(createQrStartConfigSegment(true, 2096)), createVespaModel(createQrStartConfigSegment(false, 2096)) ); - assertEquals(3, changes.size()); + assertEquals(4, changes.size()); assertComponentsEquals(changes, "default/container.0", 0); - assertComponentsEquals(changes, "admin/cluster-controllers/0", 1); - assertComponentsEquals(changes, "admin/metrics/localhost", 2); + assertComponentsEquals(changes, "admin/logs/0", 1); + assertComponentsEquals(changes, "admin/cluster-controllers/0", 2); + assertComponentsEquals(changes, "admin/metrics/localhost", 3); } @Test diff --git a/config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/ContentBuilderTest.java b/config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/ContentBuilderTest.java index 3144748e7cc..052d32269ef 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/ContentBuilderTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/ContentBuilderTest.java @@ -157,7 +157,7 @@ public class ContentBuilderTest extends DomBuilderTest { assertEquals("clu/storage/0", c.getRootGroup().getNodes().get(0).getConfigId()); // Due to reuse. assertEquals(1, c.getRoot().hostSystem().getHosts().size()); HostResource h = c.getRoot().hostSystem().getHost("mockhost"); - String [] expectedServices = {"configserver", "logserver", "logd", "container-clustercontroller", "metricsproxy-container", "slobrok", "configproxy", "config-sentinel", "container", "storagenode", "searchnode", "distributor"}; + String [] expectedServices = {"configserver", "logserver", "logserver-container", "logd", "container-clustercontroller", "metricsproxy-container", "slobrok", "configproxy", "config-sentinel", "container", "storagenode", "searchnode", "distributor"}; assertServices(h, expectedServices); assertEquals("clu/storage/0", h.getService("storagenode").getConfigId()); assertEquals("clu/search/cluster.clu/0", h.getService("searchnode").getConfigId()); @@ -205,7 +205,7 @@ public class ContentBuilderTest extends DomBuilderTest { HostResource h = cluster.getRoot().hostSystem().getHost("mockhost"); String [] expectedServices = { "logd", "configproxy", "config-sentinel", "configserver", "container", "logserver", - "slobrok", "storagenode", "distributor", "searchnode", + "logserver-container", "slobrok", "storagenode", "distributor", "searchnode", CLUSTERCONTROLLER_CONTAINER.serviceName, METRICS_PROXY_CONTAINER.serviceName }; assertServices(h, expectedServices); diff --git a/config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV2BuilderTest.java b/config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV2BuilderTest.java index 0e616661191..feeff452a91 100755 --- a/config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV2BuilderTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV2BuilderTest.java @@ -17,6 +17,7 @@ import com.yahoo.vespa.model.admin.monitoring.Monitoring; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; import org.w3c.dom.Element; + import java.util.ArrayList; import java.util.List; @@ -196,14 +197,21 @@ public class DomAdminV2BuilderTest extends DomBuilderTest { assertEquals(1, admin.getConfigservers().size()); } + @Test + void containerOnLogserver() { + Admin admin = buildAdmin(servicesAdminNoAdminServerOrConfigServer()); + assertTrue(admin.getLogServerContainerCluster().isPresent()); + assertEquals("logs", admin.getLogServerContainerCluster().get().getName()); + } + private Admin buildAdmin(Element xml) { return buildAdmin(xml, false, new ArrayList<>()); } private Admin buildAdmin(Element xml, boolean multitenant, List configServerSpecs) { DeployState deployState = DeployState.createTestState(); - final DomAdminV2Builder domAdminBuilder = - new DomAdminV2Builder(ConfigModelContext.ApplicationType.DEFAULT, multitenant, configServerSpecs); + ConfigModelContext context = ConfigModelContext.create(deployState, null, (m) -> {}, root, "foo"); + DomAdminV2Builder domAdminBuilder = new DomAdminV2Builder(context, multitenant, configServerSpecs); Admin admin = domAdminBuilder.build(deployState, root, xml); admin.addPerHostServices(root.hostSystem().getHosts(), deployState); return admin; diff --git a/config-model/src/test/java/com/yahoo/vespa/model/content/cluster/ClusterTest.java b/config-model/src/test/java/com/yahoo/vespa/model/content/cluster/ClusterTest.java index 8b83c941631..2a81f2da286 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/content/cluster/ClusterTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/content/cluster/ClusterTest.java @@ -111,9 +111,9 @@ public class ClusterTest { assertEquals(1, nodesConfig.node(1).key()); assertEquals(2, nodesConfig.node(2).key()); - assertEquals(19106, nodesConfig.node(0).port()); - assertEquals(19118, nodesConfig.node(1).port()); - assertEquals(19130, nodesConfig.node(2).port()); + assertEquals(19109, nodesConfig.node(0).port()); + assertEquals(19121, nodesConfig.node(1).port()); + assertEquals(19133, nodesConfig.node(2).port()); assertEquals(0, nodesConfig.node(0).group()); assertEquals(0, nodesConfig.node(1).group()); diff --git a/config-model/src/test/java/com/yahoo/vespa/model/test/VespaModelTestCase.java b/config-model/src/test/java/com/yahoo/vespa/model/test/VespaModelTestCase.java index c7d9ae6b818..2fda76d0d82 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/test/VespaModelTestCase.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/test/VespaModelTestCase.java @@ -20,9 +20,6 @@ import com.yahoo.config.model.test.MockApplicationPackage; import com.yahoo.config.model.test.TestDriver; import com.yahoo.config.provision.AllocatedHosts; import com.yahoo.config.provision.ApplicationId; -import com.yahoo.config.provision.Environment; -import com.yahoo.config.provision.RegionName; -import com.yahoo.config.provision.Zone; import com.yahoo.document.config.DocumentmanagerConfig; import com.yahoo.messagebus.MessagebusConfig; import com.yahoo.net.HostName; @@ -37,6 +34,7 @@ import com.yahoo.vespa.model.test.utils.VespaModelCreatorWithMockPkg; import org.junit.jupiter.api.Disabled; import org.junit.jupiter.api.Test; import org.xml.sax.SAXException; + import java.io.File; import java.io.IOException; import java.io.StringReader; @@ -265,9 +263,9 @@ public class VespaModelTestCase { assertEquals(1, admin.getConfigservers().size()); Set hosts = model.getHosts(); assertEquals(1, hosts.size()); - //logd, config proxy, sentinel, config server, slobrok, log server + // logd, config proxy, sentinel, config server, slobrok, logserver, logserver container HostInfo host = hosts.iterator().next(); - assertEquals(7, host.getServices().size()); + assertEquals(8, host.getServices().size()); new LogdConfig((LogdConfig.Builder) model.getConfig(new LogdConfig.Builder(), "admin/model")); } diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/ApplicationRepositoryTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/ApplicationRepositoryTest.java index f1bf7a918e7..b5c1d9779c9 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/ApplicationRepositoryTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/ApplicationRepositoryTest.java @@ -547,7 +547,10 @@ public class ApplicationRepositoryTest { list.add(new NetworkPorts.Allocation(19100, "container", "container/container.0", "http/1")); list.add(new NetworkPorts.Allocation(19101, "container", "container/container.0", "messaging")); list.add(new NetworkPorts.Allocation(19102, "container", "container/container.0", "rpc/admin")); - list.add(new NetworkPorts.Allocation(19103, "slobrok", "admin/slobrok.0", "http")); + list.add(new NetworkPorts.Allocation(19103, "logserver-container", "admin/logs/0", "http")); + list.add(new NetworkPorts.Allocation(19104, "logserver-container", "admin/logs/0", "http/1")); + list.add(new NetworkPorts.Allocation(19105, "logserver-container", "admin/logs/0", "rpc/admin")); + list.add(new NetworkPorts.Allocation(19106, "slobrok", "admin/slobrok.0", "http")); AllocatedHosts info = session.getAllocatedHosts(); assertNotNull(info); -- cgit v1.2.3