diff options
author | Harald Musum <musum@verizonmedia.com> | 2021-08-25 15:47:36 +0200 |
---|---|---|
committer | Harald Musum <musum@verizonmedia.com> | 2021-08-25 15:47:36 +0200 |
commit | 33452d0e50820b43ae57b3e1438664857323840b (patch) | |
tree | e402ad46f4b60b5c5d224ae1fafd09f4a2ac7277 /config-model | |
parent | 2aea4b1dfb55cd84ba6dad77ede5a89754a0c8cf (diff) |
Cleanup
* Create FileDistributionConfigProducer later
* Simplify creating DefaultMonitoring
Diffstat (limited to 'config-model')
5 files changed, 31 insertions, 33 deletions
diff --git a/config-model/src/main/java/com/yahoo/searchdefinition/derived/RawRankProfile.java b/config-model/src/main/java/com/yahoo/searchdefinition/derived/RawRankProfile.java index fee73a03ae6..792965314c5 100644 --- a/config-model/src/main/java/com/yahoo/searchdefinition/derived/RawRankProfile.java +++ b/config-model/src/main/java/com/yahoo/searchdefinition/derived/RawRankProfile.java @@ -6,7 +6,6 @@ import com.google.common.collect.ImmutableList; import com.yahoo.collections.Pair; import com.yahoo.compress.Compressor; import com.yahoo.config.model.api.ModelContext; -import com.yahoo.config.model.deploy.TestProperties; import com.yahoo.search.query.profile.QueryProfileRegistry; import com.yahoo.searchdefinition.OnnxModel; import com.yahoo.searchdefinition.LargeRankExpressions; @@ -324,7 +323,7 @@ public class RawRankProfile implements RankProfilesConfig.Producer { } /** Derives the properties this produces */ - public List<Pair<String, String>> derive(LargeRankExpressions largeRankExpressions) { + public List<Pair<String, String>> derive(LargeRankExpressions largeRankExpressions) { List<Pair<String, String>> properties = new ArrayList<>(); for (RankProfile.RankProperty property : rankProperties) { if (RankingExpression.propertyName(RankProfile.FIRST_PHASE).equals(property.getName())) { diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java index 8e2f0e50c6d..e2b35d24b2c 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java @@ -86,14 +86,13 @@ public class Admin extends AbstractConfigProducer<Admin> implements Serializable Monitoring monitoring, Metrics metrics, boolean multitenant, - FileDistributionConfigProducer fileDistributionConfigProducer, boolean isHostedVespa) { super(parent, "admin"); this.isHostedVespa = isHostedVespa; this.monitoring = monitoring; this.metrics = metrics; this.multitenant = multitenant; - this.fileDistribution = fileDistributionConfigProducer; + this.fileDistribution = new FileDistributionConfigProducer(parent); } public Configserver getConfigserver() { return defaultConfigserver; } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/DefaultMonitoring.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/DefaultMonitoring.java index e53f92822b5..0f15790aecf 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/DefaultMonitoring.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/DefaultMonitoring.java @@ -1,7 +1,8 @@ -// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.model.admin.monitoring; import java.util.Objects; +import java.util.Optional; /** * Monitoring service properties @@ -10,14 +11,21 @@ import java.util.Objects; */ public class DefaultMonitoring implements Monitoring { + public static final int DEFAULT_MONITORING_INTERVAL = 1; // in minutes + private static final String DEFAULT_MONITORING_CLUSTER_NAME = "vespa"; + private final Integer interval; private final String clustername; - public DefaultMonitoring(String clustername, Integer interval) { + public DefaultMonitoring() { + this(DEFAULT_MONITORING_CLUSTER_NAME, Optional.empty()); + } + + public DefaultMonitoring(String clustername, Optional<Integer> interval) { Objects.requireNonNull(clustername); Objects.requireNonNull(interval); this.clustername = clustername; - this.interval = interval; + this.interval = interval.orElse(DEFAULT_MONITORING_INTERVAL); } @Override 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 4f69fde8ebd..4c4c1679edb 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,4 +1,4 @@ -// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +// Copyright Verizon Media. 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; @@ -19,11 +19,11 @@ import com.yahoo.vespa.model.admin.monitoring.Monitoring; import com.yahoo.vespa.model.admin.monitoring.builder.Metrics; import com.yahoo.vespa.model.admin.monitoring.builder.PredefinedMetricSets; import com.yahoo.vespa.model.admin.monitoring.builder.xml.MetricsBuilder; -import com.yahoo.vespa.model.filedistribution.FileDistributionConfigProducer; import org.w3c.dom.Element; import java.util.ArrayList; import java.util.List; +import java.util.Optional; /** * A base class for admin model builders, to support common functionality across versions. @@ -33,9 +33,6 @@ import java.util.List; */ public abstract class DomAdminBuilderBase extends VespaDomBuilder.DomConfigProducerBuilder<Admin> { - private static final int DEFAULT_INTERVAL = 1; // in minutes - private static final String DEFAULT_CLUSTER_NAME = "vespa"; - private final ApplicationType applicationType; protected final List<ConfigServerSpec> configServerSpecs; protected final boolean multitenant; @@ -68,9 +65,7 @@ public abstract class DomAdminBuilderBase extends VespaDomBuilder.DomConfigProdu Monitoring monitoring = getMonitoring(XML.getChild(adminElement,"monitoring"), deployState.isHosted()); Metrics metrics = new MetricsBuilder(applicationType, PredefinedMetricSets.get()) .buildMetrics(XML.getChild(adminElement, "metrics")); - FileDistributionConfigProducer fileDistributionConfigProducer = getFileDistributionConfigProducer(parent); - - Admin admin = new Admin(parent, monitoring, metrics, multitenant, fileDistributionConfigProducer, deployState.isHosted()); + Admin admin = new Admin(parent, monitoring, metrics, multitenant, deployState.isHosted()); admin.setApplicationType(applicationType); doBuildAdmin(deployState, admin, adminElement); new ModelConfigProvider(admin); @@ -78,34 +73,30 @@ public abstract class DomAdminBuilderBase extends VespaDomBuilder.DomConfigProdu return admin; } - private FileDistributionConfigProducer getFileDistributionConfigProducer(AbstractConfigProducer<?> parent) { - return new FileDistributionConfigProducer(parent); - } - protected abstract void doBuildAdmin(DeployState deployState, Admin admin, Element adminE); private Monitoring getMonitoring(Element monitoringElement, boolean isHosted) { - if (monitoringElement == null) return new DefaultMonitoring(DEFAULT_CLUSTER_NAME, DEFAULT_INTERVAL); + if (monitoringElement == null) return new DefaultMonitoring(); + if (isHosted && applicationType.equals(ApplicationType.DEFAULT)) throw new IllegalArgumentException("The 'monitoring' element cannot be used on hosted Vespa."); - Integer minutes = getMonitoringInterval(monitoringElement); - if (minutes == null) - minutes = DEFAULT_INTERVAL; + Optional<Integer> minutes = getMonitoringInterval(monitoringElement); return new DefaultMonitoring(monitoringElement.getAttribute("systemname"), minutes); } - private Integer getMonitoringInterval(Element monitoringE) { - Integer minutes = null; + private Optional<Integer> getMonitoringInterval(Element monitoringE) { String seconds = monitoringE.getAttribute("interval").trim(); if ( ! seconds.isEmpty()) { - minutes = Integer.parseInt(seconds) / 60; - if (!(minutes == 1 || minutes == 5)) { - throw new IllegalArgumentException("The only allowed values for 'interval' attribute in '" + monitoringE.getTagName() + - "' element is 60 or 300."); + int m = Integer.parseInt(seconds) / 60; + if ( ! List.of(1, 5).contains(m)) { + throw new IllegalArgumentException("The only allowed values for 'interval' attribute in '" + + monitoringE.getTagName() + "' element is 60 or 300."); } + return Optional.of(m); } - return minutes; + + return Optional.empty(); } void addLogForwarders(ModelElement logForwardingElement, Admin admin) { diff --git a/config-model/src/test/java/com/yahoo/vespa/model/content/utils/ContentClusterUtils.java b/config-model/src/test/java/com/yahoo/vespa/model/content/utils/ContentClusterUtils.java index 10802dfc311..837900cf67d 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/content/utils/ContentClusterUtils.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/content/utils/ContentClusterUtils.java @@ -14,7 +14,6 @@ import com.yahoo.vespa.model.admin.Admin; import com.yahoo.vespa.model.admin.monitoring.DefaultMonitoring; import com.yahoo.vespa.model.admin.monitoring.builder.Metrics; import com.yahoo.vespa.model.content.cluster.ContentCluster; -import com.yahoo.vespa.model.filedistribution.FileDistributionConfigProducer; import org.w3c.dom.Document; import java.util.Collections; @@ -58,8 +57,10 @@ public class ContentClusterUtils { public static ContentCluster createCluster(String clusterXml, MockRoot root) { Document doc = XML.getDocument(clusterXml); - Admin admin = new Admin(root, new DefaultMonitoring("vespa", 60), new Metrics(), false, - new FileDistributionConfigProducer(root), + Admin admin = new Admin(root, + new DefaultMonitoring(), + new Metrics(), + false, root.getDeployState().isHosted()); ConfigModelContext context = ConfigModelContext.create(null, root.getDeployState(), null,null, root, null); |