diff options
author | Harald Musum <musum@oath.com> | 2018-04-02 21:14:51 +0200 |
---|---|---|
committer | Harald Musum <musum@oath.com> | 2018-04-02 21:14:51 +0200 |
commit | 5f9f18ea151914f722c74b6b74a22e17ecf2a587 (patch) | |
tree | 2cd1f855371b391fb5cdeee9035b5012c1eded0e /config-model | |
parent | aed004eeb9ee3634cbb3e0dcd386aa9f31321092 (diff) |
Remove DummyFileDistributionConfigProducer, not needed anymore
Simplify and move code that produces config
Diffstat (limited to 'config-model')
7 files changed, 28 insertions, 67 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 711ea885a36..19c64d7903d 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 @@ -19,7 +19,6 @@ import com.yahoo.vespa.model.admin.monitoring.MetricsConsumer; import com.yahoo.vespa.model.admin.monitoring.Monitoring; import com.yahoo.vespa.model.admin.monitoring.builder.Metrics; import com.yahoo.vespa.model.container.ContainerCluster; -import com.yahoo.vespa.model.filedistribution.DummyFileDistributionConfigProducer; import com.yahoo.vespa.model.filedistribution.FileDistributionConfigProducer; import com.yahoo.vespa.model.filedistribution.FileDistributionConfigProvider; import com.yahoo.vespa.model.filedistribution.FileDistributor; @@ -230,14 +229,11 @@ public class Admin extends AbstractConfigProducer implements Serializable { } FileDistributionConfigProvider configProvider = - new FileDistributionConfigProvider(fileDistributor, + new FileDistributionConfigProvider(fileDistribution, + fileDistributor, host == deployHost, host.getHost()); - DummyFileDistributionConfigProducer dummyFileDistributionConfigProducer = - new DummyFileDistributionConfigProducer(fileDistribution, - host.getHost().getHostname(), - configProvider); - fileDistribution.addFileDistributionConfigProducer(host.getHost(), dummyFileDistributionConfigProducer); + fileDistribution.addFileDistributionConfigProducer(host.getHost(), configProvider); } private boolean deployHostIsMissing(HostResource deployHost) { 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 a78e9ad30fc..96e120cae92 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 @@ -25,9 +25,8 @@ import static com.yahoo.vespa.model.admin.monitoring.builder.PredefinedMetricSet /** * A base class for admin model builders, to support common functionality across versions. * - * @author lulf - * @author vegardh - * @since 5.12 + * @author Ulf Lilleengen + * @author Vegard Havdal */ public abstract class DomAdminBuilderBase extends VespaDomBuilder.DomConfigProducerBuilder<Admin> { @@ -80,7 +79,7 @@ public abstract class DomAdminBuilderBase extends VespaDomBuilder.DomConfigProdu } private FileDistributionConfigProducer getFileDistributionConfigProducer(AbstractConfigProducer parent) { - return new FileDistributionConfigProducer.Builder().build(parent, fileRegistry, configServerSpecs); + return new FileDistributionConfigProducer(parent, fileRegistry, configServerSpecs); } private Element getChildWithFallback(Element parent, String childName, String alternativeChildName) { diff --git a/config-model/src/main/java/com/yahoo/vespa/model/filedistribution/DummyFileDistributionConfigProducer.java b/config-model/src/main/java/com/yahoo/vespa/model/filedistribution/DummyFileDistributionConfigProducer.java deleted file mode 100644 index d4993d01d1c..00000000000 --- a/config-model/src/main/java/com/yahoo/vespa/model/filedistribution/DummyFileDistributionConfigProducer.java +++ /dev/null @@ -1,35 +0,0 @@ -// 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.filedistribution; - -import com.yahoo.cloud.config.filedistribution.FiledistributorrpcConfig; -import com.yahoo.cloud.config.filedistribution.FilereferencesConfig; -import com.yahoo.config.model.producer.AbstractConfigProducer; - -/** - * @author hmusum - * <p> - * Dummy file distribution config producer, needed for serving file distribution config when there is no FiledistributorService. - */ -public class DummyFileDistributionConfigProducer extends AbstractConfigProducer implements - FiledistributorrpcConfig.Producer, - FilereferencesConfig.Producer { - - private final FileDistributionConfigProvider configProvider; - - public DummyFileDistributionConfigProducer(AbstractConfigProducer parent, - String hostname, - FileDistributionConfigProvider configProvider) { - super(parent, hostname); - this.configProvider = configProvider; - } - - @Override - public void getConfig(FiledistributorrpcConfig.Builder builder) { - configProvider.getConfig(builder); - } - - @Override - public void getConfig(FilereferencesConfig.Builder builder) { - configProvider.getConfig(builder); - } -} diff --git a/config-model/src/main/java/com/yahoo/vespa/model/filedistribution/FileDistributionConfigProducer.java b/config-model/src/main/java/com/yahoo/vespa/model/filedistribution/FileDistributionConfigProducer.java index 9441b787b09..9662540e8df 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/filedistribution/FileDistributionConfigProducer.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/filedistribution/FileDistributionConfigProducer.java @@ -13,13 +13,17 @@ import java.util.Map; /** * @author hmusum * <p> - * File distribution config producer, delegates getting config to {@link DummyFileDistributionConfigProducer} (one per host) + * File distribution config producer, delegates getting config to {@link FileDistributionConfigProvider} (one per host) */ public class FileDistributionConfigProducer extends AbstractConfigProducer { - private final Map<Host, AbstractConfigProducer> fileDistributionConfigProducers = new IdentityHashMap<>(); + private final Map<Host, FileDistributionConfigProvider> fileDistributionConfigProviders = new IdentityHashMap<>(); private final FileDistributor fileDistributor; + public FileDistributionConfigProducer(AbstractConfigProducer ancestor, FileRegistry fileRegistry, List<ConfigServerSpec> configServerSpec) { + this(ancestor, new FileDistributor(fileRegistry, configServerSpec)); + } + private FileDistributionConfigProducer(AbstractConfigProducer parent, FileDistributor fileDistributor) { super(parent, "filedistribution"); this.fileDistributor = fileDistributor; @@ -29,20 +33,12 @@ public class FileDistributionConfigProducer extends AbstractConfigProducer { return fileDistributor; } - public void addFileDistributionConfigProducer(Host host, AbstractConfigProducer fileDistributionConfigProducer) { - fileDistributionConfigProducers.put(host, fileDistributionConfigProducer); - } - - public static class Builder { - - public FileDistributionConfigProducer build(AbstractConfigProducer ancestor, FileRegistry fileRegistry, List<ConfigServerSpec> configServerSpec) { - FileDistributor fileDistributor = new FileDistributor(fileRegistry, configServerSpec); - return new FileDistributionConfigProducer(ancestor, fileDistributor); - } + public void addFileDistributionConfigProducer(Host host, FileDistributionConfigProvider fileDistributionConfigProvider) { + fileDistributionConfigProviders.put(host, fileDistributionConfigProvider); } - public AbstractConfigProducer getConfigProducer(Host host) { - return fileDistributionConfigProducers.get(host); + public FileDistributionConfigProvider getConfigProducer(Host host) { + return fileDistributionConfigProviders.get(host); } } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/filedistribution/FileDistributionConfigProvider.java b/config-model/src/main/java/com/yahoo/vespa/model/filedistribution/FileDistributionConfigProvider.java index 34e242400d3..47ee546181a 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/filedistribution/FileDistributionConfigProvider.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/filedistribution/FileDistributionConfigProvider.java @@ -4,29 +4,35 @@ package com.yahoo.vespa.model.filedistribution; import com.yahoo.cloud.config.filedistribution.FiledistributorrpcConfig; import com.yahoo.cloud.config.filedistribution.FilereferencesConfig; import com.yahoo.config.FileReference; +import com.yahoo.config.model.producer.AbstractConfigProducer; import com.yahoo.vespa.model.ConfigProxy; import com.yahoo.vespa.model.Host; import java.util.Collection; -public class FileDistributionConfigProvider { +public class FileDistributionConfigProvider extends AbstractConfigProducer + implements FiledistributorrpcConfig.Producer, FilereferencesConfig.Producer { private final FileDistributor fileDistributor; private final boolean sendAllFiles; private final Host host; - public FileDistributionConfigProvider(FileDistributor fileDistributor, + public FileDistributionConfigProvider(AbstractConfigProducer parent, + FileDistributor fileDistributor, boolean sendAllFiles, Host host) { + super(parent, host.getHostname()); this.fileDistributor = fileDistributor; this.sendAllFiles = sendAllFiles; this.host = host; } + @Override public void getConfig(FiledistributorrpcConfig.Builder builder) { builder.connectionspec("tcp/" + host.getHostname() + ":" + ConfigProxy.BASEPORT); } + @Override public void getConfig(FilereferencesConfig.Builder builder) { for (FileReference reference : getFileReferences()) { builder.filereferences(reference.value()); diff --git a/config-model/src/main/java/com/yahoo/vespa/model/search/SearchNode.java b/config-model/src/main/java/com/yahoo/vespa/model/search/SearchNode.java index df5c2c9c173..e8f0c0de30a 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/search/SearchNode.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/search/SearchNode.java @@ -19,8 +19,8 @@ import com.yahoo.vespa.model.admin.monitoring.Monitoring; import com.yahoo.vespa.model.application.validation.RestartConfigs; import com.yahoo.vespa.model.builder.xml.dom.VespaDomBuilder; import com.yahoo.vespa.model.content.ContentNode; -import com.yahoo.vespa.model.filedistribution.DummyFileDistributionConfigProducer; import com.yahoo.vespa.model.filedistribution.FileDistributionConfigProducer; +import com.yahoo.vespa.model.filedistribution.FileDistributionConfigProvider; import org.w3c.dom.Element; import java.util.HashMap; @@ -228,8 +228,8 @@ public class SearchNode extends AbstractService implements public void getConfig(FiledistributorrpcConfig.Builder builder) { FileDistributionConfigProducer fileDistribution = getRoot().getFileDistributionConfigProducer(); if (fileDistribution != null) { - AbstractConfigProducer configProducer = fileDistribution.getConfigProducer(getHost()); - ((DummyFileDistributionConfigProducer) configProducer).getConfig(builder); + FileDistributionConfigProvider configProducer = fileDistribution.getConfigProducer(getHost()); + configProducer.getConfig(builder); } } 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 15acdf0737b..8e0c0d0b253 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 @@ -60,8 +60,7 @@ 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(), Collections.emptyMap(), false, - new FileDistributionConfigProducer.Builder() - .build(root, new MockFileRegistry(), null)); + new FileDistributionConfigProducer(root, new MockFileRegistry(), null)); ConfigModelContext context = ConfigModelContext.create(null, root.getDeployState(), null, root, null); return new ContentCluster.Builder(admin).build(Collections.emptyList(), context, doc.getDocumentElement()); |