diff options
11 files changed, 46 insertions, 41 deletions
diff --git a/config-model/src/main/java/com/yahoo/vespa/model/Host.java b/config-model/src/main/java/com/yahoo/vespa/model/Host.java index ac56875270d..e0942bb845a 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/Host.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/Host.java @@ -7,6 +7,7 @@ import java.net.UnknownHostException; import java.util.*; import java.util.logging.Level; import com.yahoo.cloud.config.SentinelConfig; +import com.yahoo.config.application.api.DeployLogger; import com.yahoo.config.model.producer.AbstractConfigProducer; /** @@ -28,33 +29,36 @@ public final class Host extends AbstractConfigProducer<AbstractConfigProducer<?> * @param hostname hostname for this host. */ public Host(AbstractConfigProducer parent, String hostname) { - this(parent, hostname, false); + this(parent, hostname, false, parent.deployLogger()); } - private Host(AbstractConfigProducer parent, String hostname, boolean runsConfigServer) { + private Host(AbstractConfigProducer parent, String hostname, boolean runsConfigServer, DeployLogger deployLogger) { super(parent, hostname); Objects.requireNonNull(hostname, "The host name of a host cannot be null"); this.runsConfigServer = runsConfigServer; this.hostname = hostname; if (parent instanceof HostSystem) - checkName(hostname); + checkName(hostname, deployLogger); } - private void checkName(String hostname) { + private void checkName(String hostname, DeployLogger deployLogger) { // Give a warning if the host does not exist try { Object address = java.net.InetAddress.getByName(hostname); } catch (UnknownHostException e) { - deployLogger().log(Level.WARNING, "Unable to lookup IP address of host: " + hostname); + deployLogger.log(Level.WARNING, "Unable to lookup IP address of host: " + hostname); } if (! hostname.contains(".")) { - deployLogger().log(Level.WARNING, "Host named '" + hostname + "' may not receive any config " + + deployLogger.log(Level.WARNING, "Host named '" + hostname + "' may not receive any config " + "since it is not a canonical hostname"); } } - public static Host createConfigServerHost(AbstractConfigProducer parent, String hostname) { - return new Host(parent, hostname, true); + public static Host createConfigServerHost(DeployLogger deployLogger, AbstractConfigProducer parent, String hostname) { + return new Host(parent, hostname, true, deployLogger); + } + public static Host createHost(DeployLogger deployLogger, AbstractConfigProducer parent, String hostname) { + return new Host(parent, hostname, false, deployLogger); } // For testing diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminBuilderBase.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminBuilderBase.java index fd5516ba77a..a11a5c706c7 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminBuilderBase.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminBuilderBase.java @@ -1,6 +1,7 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.model.builder.xml.dom; +import com.yahoo.config.application.api.DeployLogger; import com.yahoo.config.model.ConfigModelContext.ApplicationType; import com.yahoo.config.model.api.ConfigServerSpec; import com.yahoo.config.model.deploy.DeployState; @@ -54,11 +55,11 @@ public abstract class DomAdminBuilderBase extends VespaDomBuilder.DomConfigProdu this.configServerSpecs = configServerSpecs; } - List<Configserver> getConfigServersFromSpec(AbstractConfigProducer parent) { + List<Configserver> getConfigServersFromSpec(DeployLogger deployLogger, AbstractConfigProducer parent) { List<Configserver> configservers = new ArrayList<>(); for (ConfigServerSpec spec : configServerSpecs) { HostSystem hostSystem = parent.getHostSystem(); - HostResource host = new HostResource(Host.createConfigServerHost(hostSystem, spec.getHostName())); + HostResource host = new HostResource(Host.createConfigServerHost(deployLogger, hostSystem, spec.getHostName())); hostSystem.addBoundHost(host); Configserver configserver = new Configserver(parent, spec.getHostName(), spec.getConfigServerPort()); configserver.setHostResource(host); @@ -77,7 +78,7 @@ public abstract class DomAdminBuilderBase extends VespaDomBuilder.DomConfigProdu Map<String, MetricsConsumer> legacyMetricsConsumers = DomMetricBuilderHelper .buildMetricsConsumers(XML.getChild(adminElement, "metric-consumers")); if (! legacyMetricsConsumers.isEmpty()) { - parent.deployLogger().log(WARNING, "Element 'metric-consumers' is deprecated and will be removed in Vespa 7. Use 'metrics' instead!"); + deployState.getDeployLogger().log(WARNING, "Element 'metric-consumers' is deprecated and will be removed in Vespa 7. Use 'metrics' instead!"); } FileDistributionConfigProducer fileDistributionConfigProducer = getFileDistributionConfigProducer(parent); 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 e38cc5da872..0c9f747b767 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 @@ -59,13 +59,13 @@ public class DomAdminV2Builder extends DomAdminBuilderBase { private List<Configserver> parseConfigservers(DeployState deployState, Admin admin, Element adminE) { List<Configserver> configservers; if (multitenant) { - configservers = getConfigServersFromSpec(admin); + configservers = getConfigServersFromSpec(deployState.getDeployLogger(), admin); } else { configservers = getConfigServers(deployState, admin, adminE); } int count = configservers.size(); if (count % 2 == 0) { - admin.deployLogger().log(Level.WARNING, "An even number (" + count + ") of config servers have been configured. " + + deployState.getDeployLogger().log(Level.WARNING, "An even number (" + count + ") of config servers have been configured. " + "This is discouraged, see doc for configuration server "); } return configservers; @@ -117,7 +117,7 @@ public class DomAdminV2Builder extends DomAdminBuilderBase { if (configserverE == null) { configserverE = XML.getChild(adminE, "adminserver"); } else { - parent.deployLogger().log(LogLevel.INFO, "Specifying configserver without parent element configservers in services.xml is deprecated"); + deployState.getDeployLogger().log(LogLevel.INFO, "Specifying configserver without parent element configservers in services.xml is deprecated"); } Configserver cfgs0 = new ConfigserverBuilder(0, configServerSpecs).build(deployState, configServers, configserverE); cfgs0.setProp("index", 0); 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 2e636478da2..331656c1eff 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 @@ -50,7 +50,7 @@ public class DomAdminV4Builder extends DomAdminBuilderBase { @Override protected void doBuildAdmin(DeployState deployState, Admin admin, Element w3cAdminElement) { ModelElement adminElement = new ModelElement(w3cAdminElement); - admin.addConfigservers(getConfigServersFromSpec(admin)); + admin.addConfigservers(getConfigServersFromSpec(deployState.getDeployLogger(), admin)); // Note: These two elements only exists in admin version 4.0 // This build handles admin version 3.0 by ignoring its content (as the content is not useful) diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomSearchTuningBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomSearchTuningBuilder.java index 4d122480cd0..25c8a204c26 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomSearchTuningBuilder.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomSearchTuningBuilder.java @@ -1,6 +1,7 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.model.builder.xml.dom; +import com.yahoo.config.application.api.DeployLogger; import com.yahoo.config.model.deploy.DeployState; import com.yahoo.text.XML; import com.yahoo.config.model.producer.AbstractConfigProducer; @@ -23,7 +24,7 @@ public class DomSearchTuningBuilder extends VespaDomBuilder.DomConfigProducerBui if (equals("dispatch", e)) { handleDispatch(e, tuning); } else if (equals("searchnode", e)) { - handleSearchNode(parent, e, tuning); + handleSearchNode(deployState.getDeployLogger(), parent, e, tuning); } } return tuning; @@ -58,13 +59,13 @@ public class DomSearchTuningBuilder extends VespaDomBuilder.DomConfigProducerBui } } - private void handleSearchNode(AbstractConfigProducer parent, Element spec, Tuning t) { + private void handleSearchNode(DeployLogger deployLogger, AbstractConfigProducer parent, Element spec, Tuning t) { t.searchNode = new Tuning.SearchNode(); for (Element e : XML.getChildren(spec)) { if (equals("requestthreads", e)) { handleRequestThreads(e, t.searchNode); } else if (equals("flushstrategy", e)) { - handleFlushStrategy(parent,e, t.searchNode); + handleFlushStrategy(deployLogger, parent,e, t.searchNode); } else if (equals("resizing", e)) { handleResizing(e, t.searchNode); } else if (equals("index", e)) { @@ -72,7 +73,7 @@ public class DomSearchTuningBuilder extends VespaDomBuilder.DomConfigProducerBui } else if (equals("attribute", e)) { handleAttribute(e, t.searchNode); } else if (equals("summary", e)) { - handleSummary(parent, e, t.searchNode); + handleSummary(deployLogger, parent, e, t.searchNode); } else if (equals("initialize", e)) { handleInitialize(e, t.searchNode); } else if (equals("feeding", e)) { @@ -95,15 +96,15 @@ public class DomSearchTuningBuilder extends VespaDomBuilder.DomConfigProducerBui } } - private void handleFlushStrategy(AbstractConfigProducer parent, Element spec, Tuning.SearchNode sn) { + private void handleFlushStrategy(DeployLogger deployLogger, AbstractConfigProducer parent, Element spec, Tuning.SearchNode sn) { for (Element e : XML.getChildren(spec)) { if (equals("native", e)) { - handleNativeStrategy(parent, e, sn); + handleNativeStrategy(deployLogger, parent, e, sn); } } } - private void handleNativeStrategy(AbstractConfigProducer parent, Element spec, Tuning.SearchNode sn) { + private void handleNativeStrategy(DeployLogger deployLogger, AbstractConfigProducer parent, Element spec, Tuning.SearchNode sn) { sn.strategy = new Tuning.SearchNode.FlushStrategy(); Tuning.SearchNode.FlushStrategy fs = sn.strategy; for (Element e : XML.getChildren(spec)) { @@ -128,7 +129,7 @@ public class DomSearchTuningBuilder extends VespaDomBuilder.DomConfigProducerBui } else if (equals("transactionlog", e)) { for (Element subElem : XML.getChildren(e)) { if (equals("maxentries", subElem)) { - parent.deployLogger().log(Level.WARNING, "Element 'transactionlog.maxentries is deprecated and ignored in 'native' flush strategy. Use 'transactionlog.maxsize' to limit by size."); + deployLogger.log(Level.WARNING, "Element 'transactionlog.maxentries is deprecated and ignored in 'native' flush strategy. Use 'transactionlog.maxsize' to limit by size."); } else if (equals("maxsize", subElem)) { fs.transactionLogMaxSize = asLong(subElem); } @@ -187,7 +188,7 @@ public class DomSearchTuningBuilder extends VespaDomBuilder.DomConfigProducerBui } } - private void handleSummary(AbstractConfigProducer parent, Element spec, Tuning.SearchNode sn) { + private void handleSummary(DeployLogger deployLogger, AbstractConfigProducer parent, Element spec, Tuning.SearchNode sn) { sn.summary = new Tuning.SearchNode.Summary(); for (Element e : XML.getChildren(spec)) { if (equals("io", e)) { @@ -200,31 +201,31 @@ public class DomSearchTuningBuilder extends VespaDomBuilder.DomConfigProducerBui } } } else if (equals("store", e)) { - handleSummaryStore(parent, e, sn.summary); + handleSummaryStore(deployLogger, parent, e, sn.summary); } } } - private void handleSummaryStore(AbstractConfigProducer parent, Element spec, Tuning.SearchNode.Summary s) { + private void handleSummaryStore(DeployLogger deployLogger, AbstractConfigProducer parent, Element spec, Tuning.SearchNode.Summary s) { s.store = new Tuning.SearchNode.Summary.Store(); for (Element e : XML.getChildren(spec)) { if (equals("cache", e)) { s.store.cache = new Tuning.SearchNode.Summary.Store.Component(); - handleSummaryStoreComponent(parent, e, s.store.cache); + handleSummaryStoreComponent(deployLogger, parent, e, s.store.cache); } else if (equals("logstore", e)) { - handleSummaryLogStore(parent, e, s.store); + handleSummaryLogStore(deployLogger, parent, e, s.store); } } } - private void handleSummaryStoreComponent(AbstractConfigProducer parent, Element spec, Tuning.SearchNode.Summary.Store.Component c) { + private void handleSummaryStoreComponent(DeployLogger deployLogger, AbstractConfigProducer parent, Element spec, Tuning.SearchNode.Summary.Store.Component c) { for (Element e : XML.getChildren(spec)) { if (equals("maxsize", e)) { c.maxSize = asLong(e); } else if (equals("maxsize-percent", e)) { c.maxSizePercent = asDouble(e); } else if (equals("maxentries", e)) { - parent.deployLogger().log(Level.WARNING, "Element 'maxentries is deprecated and ignored. Will only limit by size."); + deployLogger.log(Level.WARNING, "Element 'maxentries is deprecated and ignored. Will only limit by size."); } else if (equals("initialentries", e)) { c.initialEntries = asLong(e); } else if (equals("compression", e)) { @@ -244,24 +245,23 @@ public class DomSearchTuningBuilder extends VespaDomBuilder.DomConfigProducerBui } } - private void handleSummaryLogStore(AbstractConfigProducer parent, Element spec, Tuning.SearchNode.Summary.Store s) { + private void handleSummaryLogStore(DeployLogger deployLogger, AbstractConfigProducer parent, Element spec, Tuning.SearchNode.Summary.Store s) { s.logStore = new Tuning.SearchNode.Summary.Store.LogStore(); for (Element e : XML.getChildren(spec)) { if (equals("maxfilesize", e)) { s.logStore.maxFileSize = asLong(e); } else if (equals("maxdiskbloatfactor", e)) { - parent.deployLogger().log(Level.WARNING, + deployLogger.log(Level.WARNING, "Element 'maxdiskbloatfactor is deprecated and ignored." + " The min value from flush.memory.xxx.diskbloatfactor is used instead"); } else if (equals("minfilesizefactor", e)) { s.logStore.minFileSizeFactor = asDouble(e); } else if (equals("numthreads", e)) { - parent.deployLogger().log(Level.WARNING, - "Element 'numthreads is deprecated. Use feeding.concurrency instead."); + deployLogger.log(Level.WARNING, "Element 'numthreads is deprecated. Use feeding.concurrency instead."); s.logStore.numThreads = asInt(e); } else if (equals("chunk", e)) { s.logStore.chunk = new Tuning.SearchNode.Summary.Store.Component(true); - handleSummaryStoreComponent(parent, e, s.logStore.chunk); + handleSummaryStoreComponent(deployLogger, parent, e, s.logStore.chunk); } } } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/JettyConnectorBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/JettyConnectorBuilder.java index 3f32bc592de..02840ff380b 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/JettyConnectorBuilder.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/container/http/xml/JettyConnectorBuilder.java @@ -33,7 +33,7 @@ public class JettyConnectorBuilder extends VespaDomBuilder.DomConfigProducerBuil if (legacyServerConfig != null) { String configName = legacyServerConfig.getAttribute("name"); if (configName.equals("container.jdisc.config.http-server")) { - ancestor.deployLogger().log(Level.WARNING, "The config 'container.jdisc.config.http-server' is deprecated and will be removed in a later version of Vespa." + deployState.getDeployLogger().log(Level.WARNING, "The config 'container.jdisc.config.http-server' is deprecated and will be removed in a later version of Vespa." + " Please use 'jdisc.http.connector' instead, see http://docs.vespa.ai/documentation/jdisc/http-server-and-filters.html#configuring-jetty-server"); } else { legacyServerConfig = null; diff --git a/config-model/src/main/java/com/yahoo/vespa/model/content/ContentSearchCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/content/ContentSearchCluster.java index b2291f3daa9..ec9cfb8ae76 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/content/ContentSearchCluster.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/content/ContentSearchCluster.java @@ -201,7 +201,7 @@ public class ContentSearchCluster extends AbstractConfigProducer implements Prot // TODO: remove explicit building of user configs when the complete content model is built using builders. sc.getLocalSDS().add(new AbstractSearchCluster.SearchDefinitionSpec(searchDefinition, - UserConfigBuilder.build(e.getXml(), deployState, sc.getRoot().deployLogger()))); + UserConfigBuilder.build(e.getXml(), deployState, deployState.getDeployLogger()))); //need to get the document names from this sdfile sc.addDocumentNames(searchDefinition); } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/content/StorageGroup.java b/config-model/src/main/java/com/yahoo/vespa/model/content/StorageGroup.java index 98cd36c90fb..c035793f916 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/content/StorageGroup.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/content/StorageGroup.java @@ -210,7 +210,7 @@ public class StorageGroup { if (group.isPresent() && nodes.isPresent()) throw new IllegalStateException("Both group and nodes exists, only one of these tags is legal"); if (group.isPresent() && (group.get().getStringAttribute("name") != null || group.get().getIntegerAttribute("distribution-key") != null)) - owner.deployLogger().log(LogLevel.INFO, "'distribution-key' attribute on a content cluster's root group is ignored"); + deployState.getDeployLogger().log(LogLevel.INFO, "'distribution-key' attribute on a content cluster's root group is ignored"); GroupBuilder groupBuilder = collectGroup(group, nodes, null, null); if (owner.isHostedVespa()) { diff --git a/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java index c35bb468cbd..9aee78fabc1 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/content/cluster/ContentCluster.java @@ -325,7 +325,7 @@ public class ContentCluster extends AbstractConfigProducer implements if (clusterControllers == null) { List<HostResource> hosts = admin.getClusterControllerHosts(); if (hosts.size() > 1) { - admin.deployLogger().log(Level.INFO, "When having content cluster(s) and more than 1 config server it is recommended to configure cluster controllers explicitly."); + context.getDeployState().getDeployLogger().log(Level.INFO, "When having content cluster(s) and more than 1 config server it is recommended to configure cluster controllers explicitly."); } clusterControllers = createClusterControllers(admin, hosts, "cluster-controllers", false, context.getDeployState()); admin.setClusterControllers(clusterControllers); diff --git a/config-model/src/main/java/com/yahoo/vespa/model/search/IndexedSearchCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/search/IndexedSearchCluster.java index e0dffcbc537..dbc07c85dd5 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/search/IndexedSearchCluster.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/search/IndexedSearchCluster.java @@ -289,7 +289,7 @@ public class IndexedSearchCluster extends SearchCluster com.yahoo.searchdefinition.Search search = spec.getSearchDefinition().getSearch(); if ( ! (search instanceof DocumentOnlySearch)) { DocumentDatabase db = new DocumentDatabase(this, search.getName(), - new DerivedConfiguration(search, deployLogger(), + new DerivedConfiguration(search, deployState.getDeployLogger(), deployState.rankProfileRegistry(), deployState.getQueryProfiles().getRegistry(), deployState.getImportedModels())); diff --git a/config-model/src/main/java/com/yahoo/vespa/model/search/StreamingSearchCluster.java b/config-model/src/main/java/com/yahoo/vespa/model/search/StreamingSearchCluster.java index 7f177babf26..832f5bf7d6b 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/search/StreamingSearchCluster.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/search/StreamingSearchCluster.java @@ -102,7 +102,7 @@ public class StreamingSearchCluster extends SearchCluster implements if (!localSearch.getName().equals(docTypeName)) { throw new IllegalStateException("Mismatch between document type name (" + docTypeName + ") and name of search definition (" + localSearch.getName() + ")"); } - this.sdConfig = new DerivedConfiguration(localSearch, deployLogger(), + this.sdConfig = new DerivedConfiguration(localSearch, deployState.getDeployLogger(), deployState.rankProfileRegistry(), deployState.getQueryProfiles().getRegistry(), deployState.getImportedModels()); |