diff options
author | Henning Baldersheim <balder@yahoo-inc.com> | 2021-08-17 14:19:32 +0200 |
---|---|---|
committer | Henning Baldersheim <balder@yahoo-inc.com> | 2021-08-17 14:19:32 +0200 |
commit | 76192bb1bd49c25bb9f0f2f105e2e8d06ab23341 (patch) | |
tree | d5f7b731aa314419c88491de0063a7096f06ea7e | |
parent | 8a553fc87a1fffa0b2ce939a7ecbc9274c9e75fe (diff) |
GC usages of fileSourceHost
13 files changed, 14 insertions, 57 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 3d3ebc90890..23ea5775caa 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 @@ -84,7 +84,6 @@ public class AdminModel extends ConfigModel { AbstractConfigProducer<?> parent = modelContext.getParentProducer(); ModelContext.Properties properties = modelContext.getDeployState().getProperties(); DomAdminV2Builder domBuilder = new DomAdminV2Builder(modelContext.getApplicationType(), - modelContext.getDeployState().getFileRegistry().fileSourceHost(), properties.multitenant(), properties.configServerSpecs()); model.admin = domBuilder.build(modelContext.getDeployState(), parent, adminElement); 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 12b6f902770..ad3e501d3f2 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 @@ -66,7 +66,7 @@ public class MockRoot extends AbstractConfigProducerRoot { super(rootConfigId); hostSystem = new HostSystem(this, "hostsystem", deployState.getProvisioner(), deployState.getDeployLogger()); this.deployState = deployState; - fileDistributor = new FileDistributor(deployState.getFileRegistry().fileSourceHost()); + fileDistributor = new FileDistributor(); } public FileDistributionConfigProducer getFileDistributionConfigProducer() { @@ -149,8 +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().fileSourceHost(), - false, new ArrayList<>()). + setAdmin(new DomAdminV2Builder(ConfigModelContext.ApplicationType.DEFAULT, false, new ArrayList<>()). build(deployState, 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/VespaModel.java b/config-model/src/main/java/com/yahoo/vespa/model/VespaModel.java index 15377a95e3c..623ddcc6f6c 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/VespaModel.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/VespaModel.java @@ -12,7 +12,6 @@ import com.yahoo.config.FileReference; import com.yahoo.config.application.api.ApplicationFile; import com.yahoo.config.application.api.ApplicationPackage; import com.yahoo.config.application.api.DeployLogger; -import com.yahoo.config.application.api.FileRegistry; import com.yahoo.config.application.api.ValidationId; import com.yahoo.config.application.api.ValidationOverrides; import com.yahoo.config.model.ApplicationConfigProducerRoot; @@ -276,7 +275,7 @@ public final class VespaModel extends AbstractConfigProducerRoot implements Seri /** Creates a mutable model with no services instantiated */ public static VespaModel createIncomplete(DeployState deployState) throws IOException, SAXException { return new VespaModel(new NullConfigModelRegistry(), deployState, false, - new FileDistributor(deployState.getFileRegistry().fileSourceHost())); + new FileDistributor()); } private void validateWrapExceptions() { 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 48cdbac8814..464129a9920 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 @@ -290,17 +290,8 @@ public class Admin extends AbstractConfigProducer<Admin> implements Serializable } private void addFileDistribution(HostResource host) { - FileDistributor fileDistributor = fileDistribution.getFileDistributor(); - HostResource hostResource = hostSystem().getHostByHostname(fileDistributor.fileSourceHost()); - if (hostResource == null && ! multitenant) - throw new IllegalArgumentException("Could not find " + fileDistributor.fileSourceHost() + - " in the application's " + hostSystem()); - FileDistributionConfigProvider configProvider = - new FileDistributionConfigProvider(fileDistribution, - fileDistributor, - false, - host.getHost()); + new FileDistributionConfigProvider(fileDistribution, fileDistribution.getFileDistributor(), host.getHost()); fileDistribution.addFileDistributionConfigProducer(host.getHost(), configProvider); } 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 c2c8b8e86cb..4f69fde8ebd 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 @@ -38,15 +38,12 @@ public abstract class DomAdminBuilderBase extends VespaDomBuilder.DomConfigProdu private final ApplicationType applicationType; protected final List<ConfigServerSpec> configServerSpecs; - private final String fileSourceHost; protected final boolean multitenant; DomAdminBuilderBase(ApplicationType applicationType, - String fileSourceHost, boolean multitenant, List<ConfigServerSpec> configServerSpecs) { this.applicationType = applicationType; - this.fileSourceHost = fileSourceHost; this.multitenant = multitenant; this.configServerSpecs = configServerSpecs; } @@ -82,7 +79,7 @@ public abstract class DomAdminBuilderBase extends VespaDomBuilder.DomConfigProdu } private FileDistributionConfigProducer getFileDistributionConfigProducer(AbstractConfigProducer<?> parent) { - return new FileDistributionConfigProducer(parent, fileSourceHost); + return new FileDistributionConfigProducer(parent); } protected abstract void doBuildAdmin(DeployState deployState, Admin admin, Element adminE); 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 ad24a324bbb..04c7db8e701 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 @@ -32,10 +32,9 @@ public class DomAdminV2Builder extends DomAdminBuilderBase { private static final String ATTRIBUTE_CLUSTER_CONTROLLER_STANDALONE_ZK = "standalone-zookeeper"; public DomAdminV2Builder(ConfigModelContext.ApplicationType applicationType, - String fileSourceHost, boolean multitenant, List<ConfigServerSpec> configServerSpecs) { - super(applicationType, fileSourceHost, multitenant, configServerSpecs); + super(applicationType, 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 ae54e9fecc4..c836c5557ea 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 @@ -36,8 +36,7 @@ public class DomAdminV4Builder extends DomAdminBuilderBase { public DomAdminV4Builder(ConfigModelContext context, boolean multitenant, List<ConfigServerSpec> configServerSpecs, Collection<ContainerModel> containerModels) { - super(context.getApplicationType(), context.getDeployState().getFileRegistry().fileSourceHost(), multitenant, - configServerSpecs); + super(context.getApplicationType(), multitenant, configServerSpecs); this.containerModels = containerModels; this.context = context; } 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 d29a2611ac7..9c7c6f650a6 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 @@ -17,13 +17,9 @@ public class FileDistributionConfigProducer extends AbstractConfigProducer<Abstr private final Map<Host, FileDistributionConfigProvider> fileDistributionConfigProviders = new IdentityHashMap<>(); private final FileDistributor fileDistributor; - public FileDistributionConfigProducer(AbstractConfigProducer<?> ancestor, String fileSourceHost) { - this(ancestor, new FileDistributor(fileSourceHost)); - } - - private FileDistributionConfigProducer(AbstractConfigProducer<?> parent, FileDistributor fileDistributor) { + public FileDistributionConfigProducer(AbstractConfigProducer<?> parent) { super(parent, "filedistribution"); - this.fileDistributor = fileDistributor; + this.fileDistributor = new FileDistributor(); } public FileDistributor getFileDistributor() { 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 47ee546181a..ad477a55584 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 @@ -14,16 +14,13 @@ public class FileDistributionConfigProvider extends AbstractConfigProducer implements FiledistributorrpcConfig.Producer, FilereferencesConfig.Producer { private final FileDistributor fileDistributor; - private final boolean sendAllFiles; private final Host host; public FileDistributionConfigProvider(AbstractConfigProducer parent, FileDistributor fileDistributor, - boolean sendAllFiles, Host host) { super(parent, host.getHostname()); this.fileDistributor = fileDistributor; - this.sendAllFiles = sendAllFiles; this.host = host; } @@ -34,16 +31,8 @@ public class FileDistributionConfigProvider extends AbstractConfigProducer @Override public void getConfig(FilereferencesConfig.Builder builder) { - for (FileReference reference : getFileReferences()) { + for (FileReference reference : fileDistributor.filesToSendToHost(host)) { builder.filereferences(reference.value()); } } - - private Collection<FileReference> getFileReferences() { - if (sendAllFiles) { - return fileDistributor.allFilesToSend(); - } else { - return fileDistributor.filesToSendToHost(host); - } - } } diff --git a/config-model/src/main/java/com/yahoo/vespa/model/filedistribution/FileDistributor.java b/config-model/src/main/java/com/yahoo/vespa/model/filedistribution/FileDistributor.java index b2e9cfeec85..ba306852d74 100644 --- a/config-model/src/main/java/com/yahoo/vespa/model/filedistribution/FileDistributor.java +++ b/config-model/src/main/java/com/yahoo/vespa/model/filedistribution/FileDistributor.java @@ -20,14 +20,11 @@ import java.util.Set; */ public class FileDistributor { - private final String fileSourceHost; /** A map from file reference to the hosts to which that file reference should be distributed */ private final Map<FileReference, Set<Host>> filesToHosts = new LinkedHashMap<>(); - public FileDistributor(String fileSourceHost) { - this.fileSourceHost = fileSourceHost; - } + public FileDistributor() { } public void sendFileReference(FileReference reference, Host host) { filesToHosts.computeIfAbsent(reference, k -> new HashSet<>()).add(host); @@ -52,11 +49,6 @@ public class FileDistributor { return hosts; } - /** Returns the host which is the source of the files */ - public String fileSourceHost() { - return fileSourceHost; - } - public Set<FileReference> allFilesToSend() { return Set.copyOf(filesToHosts.keySet()); } diff --git a/config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV2BuilderTest.java b/config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV2BuilderTest.java index e720238901b..3e87bdad1dc 100755 --- a/config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV2BuilderTest.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/builder/xml/dom/DomAdminV2BuilderTest.java @@ -210,9 +210,7 @@ public class DomAdminV2BuilderTest extends DomBuilderTest { private Admin buildAdmin(Element xml, boolean multitenant, List<ConfigServerSpec> configServerSpecs) { DeployState deployState = DeployState.createTestState(); final DomAdminV2Builder domAdminBuilder = - new DomAdminV2Builder(ConfigModelContext.ApplicationType.DEFAULT, - deployState.getFileRegistry().fileSourceHost(), multitenant, - configServerSpecs); + new DomAdminV2Builder(ConfigModelContext.ApplicationType.DEFAULT, multitenant, configServerSpecs); Admin admin = domAdminBuilder.build(deployState, root, xml); admin.addPerHostServices(root.hostSystem().getHosts(), deployState); return 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 9a74c328dd8..10802dfc311 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 @@ -9,7 +9,6 @@ import com.yahoo.config.model.provision.InMemoryProvisioner; import com.yahoo.config.model.provision.SingleNodeProvisioner; import com.yahoo.config.model.test.MockApplicationPackage; import com.yahoo.config.model.test.MockRoot; -import com.yahoo.net.HostName; import com.yahoo.text.XML; import com.yahoo.vespa.model.admin.Admin; import com.yahoo.vespa.model.admin.monitoring.DefaultMonitoring; @@ -60,7 +59,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(), false, - new FileDistributionConfigProducer(root, HostName.getLocalhost()), + new FileDistributionConfigProducer(root), root.getDeployState().isHosted()); ConfigModelContext context = ConfigModelContext.create(null, root.getDeployState(), null,null, root, null); diff --git a/config-model/src/test/java/com/yahoo/vespa/model/filedistribution/FileDistributorTestCase.java b/config-model/src/test/java/com/yahoo/vespa/model/filedistribution/FileDistributorTestCase.java index bd158aedea9..31b5308010a 100644 --- a/config-model/src/test/java/com/yahoo/vespa/model/filedistribution/FileDistributorTestCase.java +++ b/config-model/src/test/java/com/yahoo/vespa/model/filedistribution/FileDistributorTestCase.java @@ -22,7 +22,7 @@ public class FileDistributorTestCase { public void fileDistributor() { MockHosts hosts = new MockHosts(); FileRegistry fileRegistry = new MockFileRegistry(); - FileDistributor fileDistributor = new FileDistributor("mockhost"); + FileDistributor fileDistributor = new FileDistributor(); String file1 = "component/path1"; String file2 = "component/path2"; |