aboutsummaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorHarald Musum <musum@verizonmedia.com>2021-08-25 15:47:36 +0200
committerHarald Musum <musum@verizonmedia.com>2021-08-25 15:47:36 +0200
commit33452d0e50820b43ae57b3e1438664857323840b (patch)
treee402ad46f4b60b5c5d224ae1fafd09f4a2ac7277 /config-model
parent2aea4b1dfb55cd84ba6dad77ede5a89754a0c8cf (diff)
Cleanup
* Create FileDistributionConfigProducer later * Simplify creating DefaultMonitoring
Diffstat (limited to 'config-model')
-rw-r--r--config-model/src/main/java/com/yahoo/searchdefinition/derived/RawRankProfile.java3
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java3
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/monitoring/DefaultMonitoring.java14
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminBuilderBase.java37
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/content/utils/ContentClusterUtils.java7
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);