summaryrefslogtreecommitdiffstats
path: root/config-model
diff options
context:
space:
mode:
authorHarald Musum <musum@oath.com>2017-11-30 08:59:48 +0100
committerHarald Musum <musum@oath.com>2017-11-30 08:59:48 +0100
commitbfa3ea645302120f4c786fd01d6d7940a3adc300 (patch)
tree17909c6954a5a4a6dc790e7acc06bcb6f8258a4b /config-model
parent5b5ac89485e6cd5995667bdf7f38d142bf634870 (diff)
Create Admin with filedistritbution config producer
Supply it in constructor instead of setting it afterwards
Diffstat (limited to 'config-model')
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/admin/Admin.java8
-rw-r--r--config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminBuilderBase.java15
-rw-r--r--config-model/src/test/java/com/yahoo/vespa/model/content/utils/ContentClusterUtils.java6
3 files changed, 16 insertions, 13 deletions
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 69e9a0e8585..2575cdb6237 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
@@ -59,12 +59,14 @@ public class Admin extends AbstractConfigProducer implements Serializable {
Monitoring monitoring,
Metrics metrics,
Map<String, MetricsConsumer> legacyMetricsConsumers,
- boolean multitenant) {
+ boolean multitenant,
+ FileDistributionConfigProducer fileDistributionConfigProducer) {
super(parent, "admin");
this.monitoring = monitoring;
this.metrics = metrics;
this.legacyMetricsConsumers = legacyMetricsConsumers;
this.multitenant = multitenant;
+ this.fileDistribution = fileDistributionConfigProducer;
}
public Configserver getConfigserver() {
@@ -148,10 +150,6 @@ public class Admin extends AbstractConfigProducer implements Serializable {
zooKeepersConfigProvider.getConfig(builder);
}
- public void setFileDistribution(FileDistributionConfigProducer fileDistribution) {
- this.fileDistribution = fileDistribution;
- }
-
public FileDistributionConfigProducer getFileDistributionConfigProducer() {
return fileDistribution;
}
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 c2ba2efac71..24e56472688 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
@@ -67,25 +67,26 @@ public abstract class DomAdminBuilderBase extends VespaDomBuilder.DomConfigProdu
@Override
protected Admin doBuild(AbstractConfigProducer parent, Element adminElement) {
Monitoring monitoring = getMonitoring(getChildWithFallback(adminElement, "monitoring", "yamas"));
-
Metrics metrics = new MetricsBuilder(applicationType, predefinedMetricSets)
.buildMetrics(XML.getChild(adminElement, "metrics"));
Map<String, MetricsConsumer> legacyMetricsConsumers = DomMetricBuilderHelper
.buildMetricsConsumers(XML.getChild(adminElement, "metric-consumers"));
+ FileDistributionConfigProducer fileDistributionConfigProducer = getFileDistributionConfigProducer(parent, adminElement);
- Admin admin = new Admin(parent, monitoring, metrics, legacyMetricsConsumers, multitenant);
-
+ Admin admin = new Admin(parent, monitoring, metrics, legacyMetricsConsumers, multitenant, fileDistributionConfigProducer);
doBuildAdmin(admin, adminElement);
-
new ModelConfigProvider(admin);
+ return admin;
+ }
+
+ private FileDistributionConfigProducer getFileDistributionConfigProducer(AbstractConfigProducer parent, Element adminElement) {
FileDistributionOptions fileDistributionOptions = FileDistributionOptions.defaultOptions();
fileDistributionOptions.disableFiledistributor(disableFiledistributor);
fileDistributionOptions = new DomFileDistributionOptionsBuilder(fileDistributionOptions).build(XML.getChild(adminElement, "filedistribution"));
- admin.setFileDistribution(new FileDistributionConfigProducer.Builder(fileDistributionOptions).build(parent, fileRegistry));
- return admin;
+ return new FileDistributionConfigProducer.Builder(fileDistributionOptions).build(parent, fileRegistry);
}
-
+
private Element getChildWithFallback(Element parent, String childName, String alternativeChildName) {
Element child = XML.getChild(parent, childName);
if (child != null) return child;
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 3a2633ed7b7..e557e3674b5 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
@@ -4,6 +4,7 @@ package com.yahoo.vespa.model.content.utils;
import com.yahoo.config.application.api.ApplicationPackage;
import com.yahoo.config.model.ConfigModelContext;
import com.yahoo.config.model.api.HostProvisioner;
+import com.yahoo.config.model.application.provider.MockFileRegistry;
import com.yahoo.config.model.deploy.DeployState;
import com.yahoo.config.model.provision.InMemoryProvisioner;
import com.yahoo.config.model.provision.SingleNodeProvisioner;
@@ -11,9 +12,11 @@ import com.yahoo.config.model.test.MockApplicationPackage;
import com.yahoo.config.model.test.MockRoot;
import com.yahoo.text.XML;
import com.yahoo.vespa.model.admin.Admin;
+import com.yahoo.vespa.model.admin.FileDistributionOptions;
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;
@@ -57,7 +60,8 @@ public class ContentClusterUtils {
public static ContentCluster createCluster(String clusterXml, MockRoot root) throws Exception {
Document doc = XML.getDocument(clusterXml);
- Admin admin = new Admin(root, new DefaultMonitoring("vespa", 60), new Metrics(), Collections.emptyMap(), false);
+ Admin admin = new Admin(root, new DefaultMonitoring("vespa", 60), new Metrics(), Collections.emptyMap(), false,
+ new FileDistributionConfigProducer.Builder(FileDistributionOptions.defaultOptions()).build(root, new MockFileRegistry()));
ConfigModelContext context = ConfigModelContext.create(null, root.getDeployState(), null, root, null);
return new ContentCluster.Builder(admin).build(Collections.emptyList(), context, doc.getDocumentElement());