From 95ab64d0a42f0fbe00f5afb60d9ac0b5ffc6c110 Mon Sep 17 00:00:00 2001 From: jonmv Date: Tue, 24 May 2022 18:47:06 +0200 Subject: Set up logserver-container on tester nodes --- .../model/builder/xml/dom/DomAdminV4Builder.java | 27 +++++++++++----------- 1 file changed, 14 insertions(+), 13 deletions(-) (limited to 'config-model') diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV4Builder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV4Builder.java index 9072b5d9cfe..dae2f7e8cb8 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV4Builder.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV4Builder.java @@ -72,21 +72,22 @@ public class DomAdminV4Builder extends DomAdminBuilderBase { } private void assignLogserver(DeployState deployState, NodesSpecification nodesSpecification, Admin admin) { - if (nodesSpecification.minResources().nodes() > 1) throw new IllegalArgumentException("You can only request a single log server"); - if (nodesSpecification.isDedicated()) { - Collection hosts = allocateHosts(admin.hostSystem(), "logserver", nodesSpecification); - if (hosts.isEmpty()) return; // No log server can be created (and none is needed) + if (nodesSpecification.minResources().nodes() > 1) + throw new IllegalArgumentException("You can only request a single log server"); + + Collection hosts = List.of(); + if (nodesSpecification.isDedicated()) + hosts = allocateHosts(admin.hostSystem(), "logserver", nodesSpecification); + else if (containerModels.iterator().hasNext()) + hosts = sortedContainerHostsFrom(containerModels.iterator().next(), nodesSpecification.minResources().nodes(), false); + else + context.getDeployLogger().logApplicationPackage(Level.INFO, "No container host available to use for running logserver"); - Logserver logserver = createLogserver(deployState, admin, hosts); - createContainerOnLogserverHost(deployState, admin, logserver.getHostResource()); - } else if (containerModels.iterator().hasNext()) { - List hosts = sortedContainerHostsFrom(containerModels.iterator().next(), nodesSpecification.minResources().nodes(), false); - if (hosts.isEmpty()) return; // No log server can be created (and none is needed) + if (hosts.isEmpty()) return; // No log server can be created (and none is needed) - createLogserver(deployState, admin, hosts); - } else { - context.getDeployLogger().logApplicationPackage(Level.INFO, "No container host available to use for running logserver"); - } + Logserver logserver = createLogserver(deployState, admin, hosts); + if (nodesSpecification.isDedicated() || deployState.isHosted() && deployState.getProperties().applicationId().instance().isTester()) + createContainerOnLogserverHost(deployState, admin, logserver.getHostResource()); } private NodesSpecification createNodesSpecificationForLogserver() { -- cgit v1.2.3