diff options
20 files changed, 42 insertions, 147 deletions
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 2ef4fea9d7a..44bcb12957a 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 @@ -25,7 +25,7 @@ public class MultiOverrideProcessorTest { private static final String input = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + "<services version=\"1.0\" xmlns:deploy=\"vespa\">\n" + - " <container id='qrserver' version='1.0'>\n" + + " <container id='default' version='1.0'>\n" + " <component id=\"comp-B\" class=\"com.yahoo.ls.MyComponent\" bundle=\"lsbe-hv\">\n" + " <config name=\"ls.config.resource-pool\">\n" + " <resource>\n" + @@ -50,7 +50,7 @@ public class MultiOverrideProcessorTest { private static final String inputWithIds = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + "<services version=\"1.0\" xmlns:deploy=\"vespa\">\n" + - " <container id='qrserver' version='1.0'>\n" + + " <container id='default' version='1.0'>\n" + " <component id=\"comp-B\" class=\"com.yahoo.ls.MyComponent\" bundle=\"lsbe-hv\">\n" + " <config name=\"ls.config.resource-pool\">\n" + " <resource>\n" + @@ -77,7 +77,7 @@ public class MultiOverrideProcessorTest { String expected = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + "<services version=\"1.0\" xmlns:deploy=\"vespa\">\n" + - " <container id='qrserver' version='1.0'>\n" + + " <container id='default' version='1.0'>\n" + " <component id=\"comp-B\" class=\"com.yahoo.ls.MyComponent\" bundle=\"lsbe-hv\">\n" + " <config name=\"ls.config.resource-pool\">\n" + " <resource>\n" + @@ -98,7 +98,7 @@ public class MultiOverrideProcessorTest { String expected = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n" + "<services version=\"1.0\" xmlns:deploy=\"vespa\">\n" + - " <container id='qrserver' version='1.0'>\n" + + " <container id='default' version='1.0'>\n" + " <component id=\"comp-B\" class=\"com.yahoo.ls.MyComponent\" bundle=\"lsbe-hv\">\n" + " <config name=\"ls.config.resource-pool\">\n" + " <resource>\n" + diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/VespaDomBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/VespaDomBuilder.java index 96e2e1d5ebd..c6fa7b8a69d 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/VespaDomBuilder.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/VespaDomBuilder.java @@ -193,7 +193,7 @@ public class VespaDomBuilder extends VespaModelBuilder { } /** - * The SimpleConfigProducer is the producer for elements such as qrservers, gateways. + * The SimpleConfigProducer is the producer for elements such as container. * Must support overrides for that too, hence this builder * * @author vegardh diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/Container.java b/config-model/src/main/java/com/yahoo/vespa/model/container/Container.java index 3d6332a9773..3f01ac6a103 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/Container.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/Container.java @@ -207,7 +207,7 @@ public abstract class Container extends AbstractService implements } /** - * First Qrserver or container must run on ports familiar to the user. + * First container must run on ports familiar to the user. */ @Override public boolean requiresWantedPort() { diff --git a/config-model/src/test/cfg/admin/adminconfigbaseport/hosts.xml b/config-model/src/test/cfg/admin/adminconfigbaseport/hosts.xml deleted file mode 100644 index dfc17c11183..00000000000 --- a/config-model/src/test/cfg/admin/adminconfigbaseport/hosts.xml +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8" ?> -<!-- Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. --> -<hosts> - <host name="localhost"> - <alias>adminserver</alias> - </host> -</hosts> diff --git a/config-model/src/test/cfg/admin/adminconfigbaseport/services.xml b/config-model/src/test/cfg/admin/adminconfigbaseport/services.xml deleted file mode 100644 index ba2c2ea42da..00000000000 --- a/config-model/src/test/cfg/admin/adminconfigbaseport/services.xml +++ /dev/null @@ -1,17 +0,0 @@ -<?xml version="1.0" encoding="utf-8" ?> -<!-- Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. --> -<services> - - <admin version="2.0"> - <adminserver hostalias="adminserver" baseport="9999"/> - <adminserver hostalias="adminserver"/> - <logserver hostalias="adminserver"/> - </admin> - - <search version="1.0"> - <qrservers> - <qrserver hostalias="adminserver" baseport="4080"/> - </qrservers> - </search> - -</services> diff --git a/config-model/src/test/cfg/application/app_qrserverandgw/hosts.xml b/config-model/src/test/cfg/application/app_qrserverandgw/hosts.xml deleted file mode 100644 index 3c78eba2e68..00000000000 --- a/config-model/src/test/cfg/application/app_qrserverandgw/hosts.xml +++ /dev/null @@ -1,7 +0,0 @@ -<?xml version="1.0" encoding="utf-8" ?> -<!-- Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. --> -<hosts> - <host name="localhost"> - <alias>node0</alias> - </host> -</hosts> diff --git a/config-model/src/test/cfg/application/app_qrserverandgw/schemas/message.sd b/config-model/src/test/cfg/application/app_qrserverandgw/schemas/message.sd deleted file mode 100644 index 40457c9e636..00000000000 --- a/config-model/src/test/cfg/application/app_qrserverandgw/schemas/message.sd +++ /dev/null @@ -1,9 +0,0 @@ -# Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -search message { - - document message { - field foo type string { - indexing: summary - } - } -} diff --git a/config-model/src/test/cfg/application/app_qrserverandgw/services.xml b/config-model/src/test/cfg/application/app_qrserverandgw/services.xml deleted file mode 100644 index fbcd698035e..00000000000 --- a/config-model/src/test/cfg/application/app_qrserverandgw/services.xml +++ /dev/null @@ -1,29 +0,0 @@ -<?xml version="1.0" encoding="utf-8" ?> -<!-- Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. --> - -<services version="1.0"> - - <admin version="2.0"> - <adminserver hostalias="node0"/> - </admin> - - <container version="1.0"> - <nodes> - <node hostalias="node0"/> - </nodes> - <document-api/> - <search/> - </container> - - <content version="1.0" id="message"> - <redundancy>1</redundancy> - <documents> - <document type="message" mode="index"/> - </documents> - <nodes> - <node hostalias="node0" distribution-key="0" /> - </nodes> - </content> - - -</services> diff --git a/config-model/src/test/java/com/yahoo/config/model/QrserverAndGatewayPortAllocationTest.java b/config-model/src/test/java/com/yahoo/config/model/QrserverAndGatewayPortAllocationTest.java deleted file mode 100644 index 5e696682e98..00000000000 --- a/config-model/src/test/java/com/yahoo/config/model/QrserverAndGatewayPortAllocationTest.java +++ /dev/null @@ -1,32 +0,0 @@ -// Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.config.model; - -import com.yahoo.vespa.model.VespaModel; -import com.yahoo.vespa.model.container.Container; -import com.yahoo.vespa.model.container.ApplicationContainer; -import com.yahoo.vespa.model.test.utils.VespaModelCreatorWithFilePkg; -import org.junit.jupiter.api.Test; - -import java.util.List; - -import static org.junit.jupiter.api.Assertions.assertEquals; - -/** - * Tests that qrserver is assigned port Defaults.getDefaults().vespaWebServicePort() even if there is a HTTP gateway configured earlier in - * vespa-services.xml - * - * @author hmusum - */ -public class QrserverAndGatewayPortAllocationTest { - - @Test - void testPorts() { - String appDir = "src/test/cfg/application/app_qrserverandgw/"; - VespaModelCreatorWithFilePkg creator = new VespaModelCreatorWithFilePkg(appDir); - VespaModel vespaModel = creator.create(); - List<ApplicationContainer> qrservers = vespaModel.getContainerClusters().get("container").getContainers(); - assertEquals(1, qrservers.size()); - assertEquals(Container.BASEPORT, qrservers.get(0).getSearchPort()); - } - -} 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 ac621f1ebfc..1aa010020f5 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 @@ -107,7 +107,7 @@ public class VespaModelTestCase { @Test void testHostsConfig() { - VespaModel model = getVespaModel(TESTDIR + "app_qrserverandgw"); + VespaModel model = getVespaModel(TESTDIR + "app_nohosts"); LogdConfig config = getLogdConfig(model, ""); assertEquals(config.logserver().host(), HostName.getLocalhost()); assertNotNull(config); diff --git a/config-model/src/test/schema-test-files/hosts.xml b/config-model/src/test/schema-test-files/hosts.xml index cbbab9c3fe2..0ca814c819d 100755 --- a/config-model/src/test/schema-test-files/hosts.xml +++ b/config-model/src/test/schema-test-files/hosts.xml @@ -6,13 +6,13 @@ <alias>host1</alias> <alias>configserver</alias> <alias>logserver</alias> - <alias>qrserver</alias> + <alias>container</alias> <alias>distributor</alias> <alias>feeder</alias> <alias>rtx</alias> <alias>tld</alias> - <alias>rtc-1</alias> - <alias>rtc-2</alias> + <alias>searchnode-1</alias> + <alias>searchnode-2</alias> </host> <host name="example.yahoo.com"> diff --git a/config-model/src/test/schema-test-files/services.xml b/config-model/src/test/schema-test-files/services.xml index df87d2b9f3d..b32849bb55f 100644 --- a/config-model/src/test/schema-test-files/services.xml +++ b/config-model/src/test/schema-test-files/services.xml @@ -11,8 +11,8 @@ <logserver hostalias="logserver" /> <slobroks> <slobrok hostalias="configserver" /> - <slobrok hostalias="qrserver" /> - <slobrok hostalias="rtc-1" /> + <slobrok hostalias="container" /> + <slobrok hostalias="searchnode-1" /> </slobroks> <metrics> diff --git a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/rpc/IntegrationTester.java b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/rpc/IntegrationTester.java index 961c8f91223..859c3c3dd10 100644 --- a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/rpc/IntegrationTester.java +++ b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/rpc/IntegrationTester.java @@ -38,7 +38,7 @@ public class IntegrationTester implements AutoCloseable { static final String MONITORING_SYSTEM = "test-system"; static final ConsumerId CUSTOM_CONSUMER_ID = toConsumerId("custom-consumer"); - static final String SERVICE_1_CONFIG_ID = "container/qrserver.0"; + static final String SERVICE_1_CONFIG_ID = "container/default.0"; static final String SERVICE_2_CONFIG_ID = "storage/cluster.storage/storage/0"; private final RpcConnector connector; @@ -104,7 +104,7 @@ public class IntegrationTester implements AutoCloseable { private VespaServicesConfig servicesConfig() { return new VespaServicesConfig.Builder() - .service(createService(toServiceId("qrserver"), SERVICE_1_CONFIG_ID, httpPort())) + .service(createService(toServiceId("container"), SERVICE_1_CONFIG_ID, httpPort())) .service(createService(toServiceId("storagenode"), SERVICE_2_CONFIG_ID, httpPort())) .build(); } diff --git a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/rpc/RpcMetricsTest.java b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/rpc/RpcMetricsTest.java index a52e1daf878..cedf7542233 100644 --- a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/rpc/RpcMetricsTest.java +++ b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/rpc/RpcMetricsTest.java @@ -106,10 +106,10 @@ public class RpcMetricsTest { assertEquals("#Services should be 1 for config id " + SERVICE_1_CONFIG_ID, 1, services.size()); - VespaService qrserver = services.get(0); - assertEquals(MONITORING_SYSTEM + VespaService.SEPARATOR + "qrserver", qrserver.getMonitoringName().id); + VespaService container = services.get(0); + assertEquals(MONITORING_SYSTEM + VespaService.SEPARATOR + "container", container.getMonitoringName().id); - Metrics metrics = qrserver.getMetrics(); + Metrics metrics = container.getMetrics(); assertEquals("Fetched number of metrics is not correct", 2, metrics.size()); Metric m = getMetric("foo.count", metrics); assertNotNull("Did not find expected metric with name 'foo.count'", m); @@ -117,7 +117,7 @@ public class RpcMetricsTest { assertNotNull("Did not find expected metric with name 'bar.count'", m2); try (RpcClient rpcClient = new RpcClient(tester.rpcPort())) { - verifyMetricsFromRpcRequest(qrserver, rpcClient); + verifyMetricsFromRpcRequest(container, rpcClient); services = tester.vespaServices().getInstancesById(SERVICE_2_CONFIG_ID); assertEquals("#Services should be 1 for config id " + SERVICE_2_CONFIG_ID, 1, services.size()); diff --git a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/ConfigSentinelClientTest.java b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/ConfigSentinelClientTest.java index 0ace697d545..fb93f04af74 100644 --- a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/ConfigSentinelClientTest.java +++ b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/ConfigSentinelClientTest.java @@ -10,7 +10,6 @@ import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; import static org.junit.Assert.assertEquals; - /** * @author Unknown */ @@ -22,18 +21,18 @@ public class ConfigSentinelClientTest { List<VespaService> services = new ArrayList<>(); VespaService docproc = new VespaService("docprocservice", "docproc/cluster.x.indexing/0"); VespaService searchnode4 = new VespaService("searchnode4", "search/cluster.x/g0/c1/r1"); - VespaService qrserver = new VespaService("qrserver", "container/qrserver.0"); + VespaService container = new VespaService("container", "container/default.0"); services.add(searchnode4); - services.add(qrserver); + services.add(container); services.add(docproc); try (MockConfigSentinelClient client = new MockConfigSentinelClient(configsentinel)) { client.updateServiceStatuses(services); - assertEquals(6520, qrserver.getPid()); - assertEquals("RUNNING", qrserver.getState()); - assertTrue(qrserver.isAlive()); + assertEquals(6520, container.getPid()); + assertEquals("RUNNING", container.getState()); + assertTrue(container.isAlive()); assertEquals(6534, searchnode4.getPid()); assertEquals("RUNNING", searchnode4.getState()); assertTrue(searchnode4.isAlive()); @@ -50,16 +49,16 @@ public class ConfigSentinelClientTest { assertEquals("RUNNING", docproc.getState()); assertTrue(docproc.isAlive()); - //qrserver has yet not been checked - assertTrue(qrserver.isAlive()); + // container has yet not been checked + assertTrue(container.isAlive()); client.updateServiceStatuses(services); assertEquals(100, docproc.getPid()); assertEquals("RUNNING", docproc.getState()); assertTrue(docproc.isAlive()); - //qrserver is no longer running on this node - so should be false - assertFalse(qrserver.isAlive()); + // container is no longer running on this node - so should be false + assertFalse(container.isAlive()); } } @@ -81,8 +80,7 @@ public class ConfigSentinelClientTest { VespaService container = VespaService.create("container", "get/container.0", -1); - VespaService containerClusterController = - VespaService.create("container-clustercontroller", "get/container.0", -1); + VespaService containerClusterController = VespaService.create("container-clustercontroller", "get/container.0", -1); VespaService notPresent = VespaService.create("dummy","fake", -1); diff --git a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/ConfigSentinelDummy.java b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/ConfigSentinelDummy.java index 4af3c934198..5d21fb46ae3 100644 --- a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/ConfigSentinelDummy.java +++ b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/ConfigSentinelDummy.java @@ -20,7 +20,7 @@ public class ConfigSentinelDummy { + "slobrok state=RUNNING mode=AUTO pid=6519 exitstatus=0 autostart=TRUE autorestart=TRUE id=\"client\"\n" + "searchnode3 state=RUNNING mode=AUTO pid=6529 exitstatus=0 autostart=TRUE autorestart=TRUE id=\"search/cluster.x/g0/c1/r0\"\n" + "searchnode state=RUNNING mode=AUTO pid=6526 exitstatus=0 autostart=TRUE autorestart=TRUE id=\"search/cluster.x/g0/c0/r0\"\n" - + "qrserver state=RUNNING mode=AUTO pid=6520 exitstatus=0 autostart=TRUE autorestart=TRUE id=\"container/qrserver.0\"\n" + + "container state=RUNNING mode=AUTO pid=6520 exitstatus=0 autostart=TRUE autorestart=TRUE id=\"container/default.0\"\n" + "\n"; @@ -37,7 +37,7 @@ public class ConfigSentinelDummy { + "fleetcontroller state=RUNNING mode=AUTO pid=6543 exitstatus=0 autostart=TRUE autorestart=TRUE id=\"storage/cluster.storage/fleetcontroller/0\"\n" + "storagenode state=RUNNING mode=AUTO pid=6539 exitstatus=0 autostart=TRUE autorestart=TRUE id=\"storage/cluster.storage/storage/0\"\n" + "searchnode4 state=RUNNING mode=AUTO pid=6534 exitstatus=0 autostart=TRUE autorestart=TRUE id=\"search/cluster.x/g0/c1/r1\"\n" - + "qrserver2 state=RUNNING mode=AUTO pid=6521 exitstatus=0 autostart=TRUE autorestart=TRUE id=\"container/qrserver.1\"\n" + + "container2 state=RUNNING mode=AUTO pid=6521 exitstatus=0 autostart=TRUE autorestart=TRUE id=\"container/default.1\"\n" + "logserver state=RUNNING mode=AUTO pid=6518 exitstatus=0 autostart=TRUE autorestart=TRUE id=\"admin/logserver\"\n" + "logd state=RUNNING mode=AUTO pid=6517 exitstatus=0 autostart=TRUE autorestart=TRUE id=\"hosts/dell-bl5s7.trondheim.corp.yahoo.com/logd\"\n" + "searchnode2 state=RUNNING mode=AUTO pid=6527 exitstatus=0 autostart=TRUE autorestart=TRUE id=\"search/cluster.x/g0/c0/r1\"\n" diff --git a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/MockConfigSentinelClient.java b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/MockConfigSentinelClient.java index 3f0d36b0c1a..14cfd2ccf3c 100644 --- a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/MockConfigSentinelClient.java +++ b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/MockConfigSentinelClient.java @@ -1,16 +1,14 @@ // Copyright Yahoo. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package ai.vespa.metricsproxy.service; -import java.util.logging.Logger; - /** * Mock config sentinel * * @author hmusum */ public class MockConfigSentinelClient extends ConfigSentinelClient implements AutoCloseable { + private final ConfigSentinelDummy configSentinel; - private final static Logger log = Logger.getLogger(MockConfigSentinelClient.class.getPackage().getName()); public MockConfigSentinelClient(ConfigSentinelDummy configSentinel) { super(); diff --git a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/VespaServiceTest.java b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/VespaServiceTest.java index 6c0e1865dcd..1e9e067ec0e 100644 --- a/metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/VespaServiceTest.java +++ b/metrics-proxy/src/test/java/ai/vespa/metricsproxy/service/VespaServiceTest.java @@ -36,18 +36,18 @@ public class VespaServiceTest { @Test public void testService() { - VespaService service = new VespaService("qrserver", "container/qrserver.0"); - assertEquals("qrserver", service.getServiceName()); - assertEquals("qrserver", service.getInstanceName()); + VespaService service = new VespaService("container", "container/container.0"); + assertEquals("container", service.getServiceName()); + assertEquals("container", service.getInstanceName()); assertEquals(-1, service.getPid()); - assertEquals("container/qrserver.0", service.getConfigId()); + assertEquals("container/container.0", service.getConfigId()); - service = VespaService.create("qrserver2", "container/qrserver.0", -1); - assertEquals("qrserver", service.getServiceName()); - assertEquals("qrserver2", service.getInstanceName()); + service = VespaService.create("container2", "container/container.0", -1); + assertEquals("container", service.getServiceName()); + assertEquals("container2", service.getInstanceName()); assertEquals(-1, service.getPid()); - assertEquals("container/qrserver.0", service.getConfigId()); + assertEquals("container/container.0", service.getConfigId()); } @Test diff --git a/metrics-proxy/src/test/resources/rpc-json-output-check.json b/metrics-proxy/src/test/resources/rpc-json-output-check.json index 701a06d82b2..4cd553e91f7 100644 --- a/metrics-proxy/src/test/resources/rpc-json-output-check.json +++ b/metrics-proxy/src/test/resources/rpc-json-output-check.json @@ -1 +1 @@ -{"metrics":[{"status_code":1,"application":"test-system.qrserver","dimensions":{"metrictype":"health","instance":"qrserver"},"status_msg":"SOMETHING FAILED"}]}
\ No newline at end of file +{"metrics":[{"status_code":1,"application":"test-system.container","dimensions":{"metrictype":"health","instance":"container"},"status_msg":"SOMETHING FAILED"}]}
\ No newline at end of file diff --git a/vespalog/src/logctl/logctl.cpp b/vespalog/src/logctl/logctl.cpp index 478e5e471fb..4cf44e9cd22 100644 --- a/vespalog/src/logctl/logctl.cpp +++ b/vespalog/src/logctl/logctl.cpp @@ -41,8 +41,8 @@ usage(const char *name) "are controlled:\n" " x. : Matches only component x\n" " x : Matches component x and all its sub-components\n\n" - "Example: %s qrserver:log all=on,spam=off,debug=off : For service\n" - "qrserver, set log and all sub-components of log to enable all\n" + "Example: %s container:log all=on,spam=off,debug=off : For service\n" + "container, set log and all sub-components of log to enable all\n" "except spam and debug.\n\n", name, name, name); } |