diff options
author | Harald Musum <musum@oath.com> | 2018-02-08 19:37:05 +0100 |
---|---|---|
committer | Harald Musum <musum@oath.com> | 2018-02-08 19:37:05 +0100 |
commit | ffe07ba0f546772a59d6b270d55b4887082a9d85 (patch) | |
tree | 22637e88795a5a65a7fdea408639cf57d0de3800 /config-model/src/main/java/com | |
parent | 3c9e0d13bba065539e389d005dceeb21e5a74803 (diff) |
Remove filedistributorservice
Diffstat (limited to 'config-model/src/main/java/com')
13 files changed, 20 insertions, 208 deletions
diff --git a/config-model/src/main/java/com/yahoo/config/model/admin/AdminModel.java b/config-model/src/main/java/com/yahoo/config/model/admin/AdminModel.java index 5912b476783..d2ffe10677b 100644 --- a/config-model/src/main/java/com/yahoo/config/model/admin/AdminModel.java +++ b/config-model/src/main/java/com/yahoo/config/model/admin/AdminModel.java @@ -78,8 +78,7 @@ public class AdminModel extends ConfigModel { DomAdminV2Builder domBuilder = new DomAdminV2Builder(modelContext.getApplicationType(), modelContext.getDeployState().getFileRegistry(), properties.multitenant(), - properties.configServerSpecs(), - modelContext.getDeployState().disableFiledistributor()); + properties.configServerSpecs()); model.admin = domBuilder.build(parent, adminElement); // TODO: Is required since other models depend on admin. if (parent instanceof ApplicationConfigProducerRoot) { @@ -108,8 +107,7 @@ public class AdminModel extends ConfigModel { DomAdminV4Builder domBuilder = new DomAdminV4Builder(modelContext, properties.multitenant(), properties.configServerSpecs(), - model.getContainerModels(), - modelContext.getDeployState().disableFiledistributor()); + model.getContainerModels()); model.admin = domBuilder.build(parent, adminElement); // TODO: Is required since other models depend on admin. if (parent instanceof ApplicationConfigProducerRoot) { diff --git a/config-model/src/main/java/com/yahoo/config/model/test/MockRoot.java b/config-model/src/main/java/com/yahoo/config/model/test/MockRoot.java index da034619d94..a3429c0471d 100644 --- a/config-model/src/main/java/com/yahoo/config/model/test/MockRoot.java +++ b/config-model/src/main/java/com/yahoo/config/model/test/MockRoot.java @@ -149,7 +149,7 @@ public class MockRoot extends AbstractConfigProducerRoot { try { Document doc = XmlHelper.getDocumentBuilder().parse(new InputSource(new StringReader(servicesXml))); setAdmin(new DomAdminV2Builder(ConfigModelContext.ApplicationType.DEFAULT, deployState.getFileRegistry(), - false, new ArrayList<>(), deployState.disableFiledistributor()). + false, new ArrayList<>()). build(this, XML.getChildren(doc.getDocumentElement(), "admin").get(0))); } catch (SAXException | IOException e) { throw new RuntimeException(e); 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 eaa4f18e35a..68030cd47da 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 @@ -22,7 +22,6 @@ import com.yahoo.vespa.model.filedistribution.DummyFileDistributionConfigProduce import com.yahoo.vespa.model.filedistribution.FileDistributionConfigProducer; import com.yahoo.vespa.model.filedistribution.FileDistributionConfigProvider; import com.yahoo.vespa.model.filedistribution.FileDistributor; -import com.yahoo.vespa.model.filedistribution.FileDistributorService; import java.io.Serializable; import java.util.ArrayList; @@ -229,23 +228,13 @@ public class Admin extends AbstractConfigProducer implements Serializable { FileDistributionConfigProvider configProvider = new FileDistributionConfigProvider(fileDistributor, - fileDistribution.getOptions(), host == deployHost, host.getHost()); - if (fileDistribution.getOptions().disableFiledistributor()) { - DummyFileDistributionConfigProducer dummyFileDistributionConfigProducer = - new DummyFileDistributionConfigProducer(fileDistribution, - host.getHost().getHostname(), - configProvider); - fileDistribution.addFileDistributionConfigProducer(host.getHost(), dummyFileDistributionConfigProducer); - } else { - FileDistributorService fds = new FileDistributorService(fileDistribution, - host.getHost().getHostname(), - configProvider); - fds.setHostResource(host); - fds.initService(); - fileDistribution.addFileDistributionConfigProducer(host.getHost(), fds); - } + DummyFileDistributionConfigProducer dummyFileDistributionConfigProducer = + new DummyFileDistributionConfigProducer(fileDistribution, + host.getHost().getHostname(), + configProvider); + fileDistribution.addFileDistributionConfigProducer(host.getHost(), dummyFileDistributionConfigProducer); } private boolean deployHostIsMissing(HostResource deployHost) { diff --git a/config-model/src/main/java/com/yahoo/vespa/model/admin/FileDistributionOptions.java b/config-model/src/main/java/com/yahoo/vespa/model/admin/FileDistributionOptions.java index 8b39a1ecb94..22855709208 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/admin/FileDistributionOptions.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/admin/FileDistributionOptions.java @@ -12,10 +12,6 @@ import com.yahoo.cloud.config.filedistribution.FiledistributorConfig; */ public class FileDistributionOptions implements FiledistributorConfig.Producer { - public static FileDistributionOptions defaultOptions() { - return new FileDistributionOptions(); - } - private FileDistributionOptions() { } 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 83e905929d2..64cbcaafd9f 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 @@ -37,16 +37,14 @@ public abstract class DomAdminBuilderBase extends VespaDomBuilder.DomConfigProdu private final ApplicationType applicationType; private final List<ConfigServerSpec> configServerSpecs; private final FileRegistry fileRegistry; - private final boolean disableFiledistributor; protected final boolean multitenant; DomAdminBuilderBase(ApplicationType applicationType, FileRegistry fileRegistry, boolean multitenant, - List<ConfigServerSpec> configServerSpecs, boolean disableFiledistributor) { + List<ConfigServerSpec> configServerSpecs) { this.applicationType = applicationType; this.fileRegistry = fileRegistry; this.multitenant = multitenant; this.configServerSpecs = configServerSpecs; - this.disableFiledistributor = disableFiledistributor; } List<Configserver> getConfigServersFromSpec(AbstractConfigProducer parent) { @@ -71,7 +69,7 @@ public abstract class DomAdminBuilderBase extends VespaDomBuilder.DomConfigProdu .buildMetrics(XML.getChild(adminElement, "metrics")); Map<String, MetricsConsumer> legacyMetricsConsumers = DomMetricBuilderHelper .buildMetricsConsumers(XML.getChild(adminElement, "metric-consumers")); - FileDistributionConfigProducer fileDistributionConfigProducer = getFileDistributionConfigProducer(parent, adminElement); + FileDistributionConfigProducer fileDistributionConfigProducer = getFileDistributionConfigProducer(parent); Admin admin = new Admin(parent, monitoring, metrics, legacyMetricsConsumers, multitenant, fileDistributionConfigProducer); doBuildAdmin(admin, adminElement); @@ -80,11 +78,8 @@ public abstract class DomAdminBuilderBase extends VespaDomBuilder.DomConfigProdu 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")); - return new FileDistributionConfigProducer.Builder(fileDistributionOptions).build(parent, fileRegistry, configServerSpecs); + private FileDistributionConfigProducer getFileDistributionConfigProducer(AbstractConfigProducer parent) { + return new FileDistributionConfigProducer.Builder().build(parent, fileRegistry, configServerSpecs); } private Element getChildWithFallback(Element parent, String childName, String alternativeChildName) { 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 d966f3b49f6..da8c73c0958 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 @@ -37,9 +37,8 @@ public class DomAdminV2Builder extends DomAdminBuilderBase { public DomAdminV2Builder(ConfigModelContext.ApplicationType applicationType, FileRegistry fileRegistry, boolean multitenant, - List<ConfigServerSpec> configServerSpecs, - boolean disableFiledistributor) { - super(applicationType, fileRegistry, multitenant, configServerSpecs, disableFiledistributor); + List<ConfigServerSpec> configServerSpecs) { + super(applicationType, fileRegistry, multitenant, configServerSpecs); } @Override 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 1f7c1ba676c..cc9957144f3 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 @@ -32,9 +32,9 @@ public class DomAdminV4Builder extends DomAdminBuilderBase { private final ConfigModelContext context; public DomAdminV4Builder(ConfigModelContext context, boolean multitenant, List<ConfigServerSpec> configServerSpecs, - Collection<ContainerModel> containerModels, boolean disableFiledistributor) { + Collection<ContainerModel> containerModels) { super(context.getApplicationType(), context.getDeployState().getFileRegistry(), multitenant, - configServerSpecs, disableFiledistributor); + configServerSpecs); this.containerModels = containerModels; this.context = context; } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomFileDistributionOptionsBuilder.java b/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomFileDistributionOptionsBuilder.java deleted file mode 100644 index 9cbdd00899b..00000000000 --- a/config-model/src/main/java/com/yahoo/vespa/model/builder/xml/dom/DomFileDistributionOptionsBuilder.java +++ /dev/null @@ -1,53 +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.builder.xml.dom; - -import com.yahoo.binaryprefix.BinaryScaledAmount; -import com.yahoo.text.XML; -import com.yahoo.vespa.model.admin.FileDistributionOptions; -import org.w3c.dom.Element; - -import java.util.Optional; - -/** - * Builds file distribution options. - * - * @author Tony Vaagenes - * @author hmusum - */ -public class DomFileDistributionOptionsBuilder { - private final FileDistributionOptions fileDistributionOptions; - - public DomFileDistributionOptionsBuilder(FileDistributionOptions fileDistributionOptions) { - this.fileDistributionOptions = fileDistributionOptions; - } - - private static void throwExceptionForElementInFileDistribution(String subElement, String reason) { - throw new RuntimeException("In element '" + subElement + "' contained in 'filedistribution': " + reason); - } - - private Optional<BinaryScaledAmount> getAmount(String name, Element fileDistributionElement) { - Element optionElement = XML.getChild(fileDistributionElement, name); - try { - if (optionElement != null) { - String valueString = XML.getValue(optionElement); - return Optional.of(BinaryScaledAmountParser.parse(valueString)); - } - } catch (NumberFormatException e) { - throwExceptionForElementInFileDistribution(name, "Expected a valid number. (Message = " + e.getMessage() + ")."); - } - return Optional.empty(); - } - - public FileDistributionOptions build(Element fileDistributionElement) { - if (fileDistributionElement != null) { - getAmount("uploadbitrate", fileDistributionElement).ifPresent(fileDistributionOptions::uploadBitRate); - getAmount("downloadbitrate", fileDistributionElement).ifPresent(fileDistributionOptions::downloadBitRate); - Element disable = XML.getChild(fileDistributionElement, "disabled"); - if (disable == null) disable = XML.getChild(fileDistributionElement, "disableFiledistributor"); - if (disable != null) { - fileDistributionOptions.disableFiledistributor(Boolean.valueOf(XML.getValue(disable))); - } - } - return fileDistributionOptions; - } -} 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 index 1b1e66594d1..d4993d01d1c 100644 --- 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 @@ -1,7 +1,6 @@ // 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.FiledistributorConfig; import com.yahoo.cloud.config.filedistribution.FiledistributorrpcConfig; import com.yahoo.cloud.config.filedistribution.FilereferencesConfig; import com.yahoo.config.model.producer.AbstractConfigProducer; @@ -12,7 +11,6 @@ import com.yahoo.config.model.producer.AbstractConfigProducer; * Dummy file distribution config producer, needed for serving file distribution config when there is no FiledistributorService. */ public class DummyFileDistributionConfigProducer extends AbstractConfigProducer implements - FiledistributorConfig.Producer, FiledistributorrpcConfig.Producer, FilereferencesConfig.Producer { @@ -26,11 +24,6 @@ public class DummyFileDistributionConfigProducer extends AbstractConfigProducer } @Override - public void getConfig(FiledistributorConfig.Builder builder) { - configProvider.getConfig(builder); - } - - @Override public void getConfig(FiledistributorrpcConfig.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 85b937fee19..9441b787b09 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 @@ -5,7 +5,6 @@ import com.yahoo.config.application.api.FileRegistry; import com.yahoo.config.model.api.ConfigServerSpec; import com.yahoo.config.model.producer.AbstractConfigProducer; import com.yahoo.vespa.model.Host; -import com.yahoo.vespa.model.admin.FileDistributionOptions; import java.util.IdentityHashMap; import java.util.List; @@ -20,37 +19,25 @@ public class FileDistributionConfigProducer extends AbstractConfigProducer { private final Map<Host, AbstractConfigProducer> fileDistributionConfigProducers = new IdentityHashMap<>(); private final FileDistributor fileDistributor; - private final FileDistributionOptions options; - private FileDistributionConfigProducer(AbstractConfigProducer parent, FileDistributor fileDistributor, FileDistributionOptions options) { + private FileDistributionConfigProducer(AbstractConfigProducer parent, FileDistributor fileDistributor) { super(parent, "filedistribution"); this.fileDistributor = fileDistributor; - this.options = options; } public FileDistributor getFileDistributor() { return fileDistributor; } - public FileDistributionOptions getOptions() { - return options; - } - public void addFileDistributionConfigProducer(Host host, AbstractConfigProducer fileDistributionConfigProducer) { fileDistributionConfigProducers.put(host, fileDistributionConfigProducer); } public static class Builder { - private final FileDistributionOptions options; - - public Builder(FileDistributionOptions fileDistributionOptions) { - this.options = fileDistributionOptions; - } - public FileDistributionConfigProducer build(AbstractConfigProducer ancestor, FileRegistry fileRegistry, List<ConfigServerSpec> configServerSpec) { FileDistributor fileDistributor = new FileDistributor(fileRegistry, configServerSpec); - return new FileDistributionConfigProducer(ancestor, fileDistributor, options); + return new FileDistributionConfigProducer(ancestor, fileDistributor); } } 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 a78eb1f74f9..ffba56fa17f 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 @@ -1,45 +1,31 @@ // 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.FiledistributorConfig; import com.yahoo.cloud.config.filedistribution.FiledistributorrpcConfig; import com.yahoo.cloud.config.filedistribution.FilereferencesConfig; import com.yahoo.config.FileReference; -import com.yahoo.config.model.api.FileDistribution; import com.yahoo.vespa.model.ConfigProxy; import com.yahoo.vespa.model.Host; -import com.yahoo.vespa.model.admin.FileDistributionOptions; import java.util.Collection; public class FileDistributionConfigProvider { private final FileDistributor fileDistributor; - private final FileDistributionOptions fileDistributionOptions; private final boolean sendAllFiles; private final Host host; public FileDistributionConfigProvider(FileDistributor fileDistributor, - FileDistributionOptions fileDistributionOptions, boolean sendAllFiles, Host host) { this.fileDistributor = fileDistributor; - this.fileDistributionOptions = fileDistributionOptions; this.sendAllFiles = sendAllFiles; this.host = host; } - public void getConfig(FiledistributorConfig.Builder builder) { - fileDistributionOptions.getConfig(builder); - builder.torrentport(FileDistributorService.BASEPORT + 1); - builder.stateport(FileDistributorService.BASEPORT + 2); - builder.hostname(host.getHostname()); - builder.filedbpath(FileDistribution.getDefaultFileDBPath().toString()); - } - public void getConfig(FiledistributorrpcConfig.Builder builder) { // If disabled config proxy should act as file distributor, so use config proxy port - int port = (fileDistributionOptions.disableFiledistributor()) ? ConfigProxy.BASEPORT : FileDistributorService.BASEPORT; + int port = ConfigProxy.BASEPORT; builder.connectionspec("tcp/" + host.getHostname() + ":" + port); } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/filedistribution/FileDistributorService.java b/config-model/src/main/java/com/yahoo/vespa/model/filedistribution/FileDistributorService.java deleted file mode 100644 index 986334125d2..00000000000 --- a/config-model/src/main/java/com/yahoo/vespa/model/filedistribution/FileDistributorService.java +++ /dev/null @@ -1,73 +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.FiledistributorConfig; -import com.yahoo.cloud.config.filedistribution.FiledistributorrpcConfig; -import com.yahoo.cloud.config.filedistribution.FilereferencesConfig; -import com.yahoo.config.model.producer.AbstractConfigProducer; -import com.yahoo.vespa.model.AbstractService; - -/** - * @author Tony Vaagenes - * - * Config is produced by {@link FileDistributionConfigProvider} - */ -public class FileDistributorService extends AbstractService implements - FiledistributorConfig.Producer, - FiledistributorrpcConfig.Producer, - FilereferencesConfig.Producer { - - final static int BASEPORT = 19092; - - private final FileDistributionConfigProvider configProvider; - - public FileDistributorService(AbstractConfigProducer parent, String hostname, FileDistributionConfigProvider configProvider) { - super(parent, hostname); - this.configProvider = configProvider; - portsMeta.on(0).tag("rpc"); - portsMeta.on(1).tag("torrent"); - portsMeta.on(2).tag("http").tag("state"); - setProp("clustertype", "filedistribution"); - setProp("clustername", "admin"); - } - - @Override - public String getStartupCommand() { - return "exec $ROOT/sbin/vespa-filedistributor" + " --configid " + getConfigId(); - } - - @Override - public boolean getAutostartFlag() { - return true; - } - - @Override - public boolean getAutorestartFlag() { - return true; - } - - @Override - public int getPortCount() { - return 3; - } - - @Override - public int getWantedPort() { - return BASEPORT; - } - - @Override - public void getConfig(FiledistributorConfig.Builder builder) { - configProvider.getConfig(builder); - } - - @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/search/SearchNode.java b/config-model/src/main/java/com/yahoo/vespa/model/search/SearchNode.java index 8420a1f4b91..df5c2c9c173 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 @@ -21,7 +21,6 @@ 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.FileDistributorService; import org.w3c.dom.Element; import java.util.HashMap; @@ -230,11 +229,7 @@ public class SearchNode extends AbstractService implements FileDistributionConfigProducer fileDistribution = getRoot().getFileDistributionConfigProducer(); if (fileDistribution != null) { AbstractConfigProducer configProducer = fileDistribution.getConfigProducer(getHost()); - // TODO: Hack, will be fixed when FileDistributorService is gone - if (configProducer instanceof DummyFileDistributionConfigProducer) - ((DummyFileDistributionConfigProducer) configProducer).getConfig(builder); - else - ((FileDistributorService) configProducer).getConfig(builder); + ((DummyFileDistributionConfigProducer) configProducer).getConfig(builder); } } |