diff options
-rw-r--r-- | configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/CombinedLegacyRegistry.java | 38 | ||||
-rw-r--r-- | configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileDBHandler.java | 46 | ||||
-rw-r--r-- | configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileDistributionImpl.java (renamed from configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/CombinedLegacyDistribution.java) | 19 | ||||
-rw-r--r-- | configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileDistributionProvider.java | 44 | ||||
-rw-r--r-- | configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/PreparedModelsBuilder.java | 5 | ||||
-rw-r--r-- | configserver/src/main/java/com/yahoo/vespa/config/server/session/FileDistributionFactory.java | 21 | ||||
-rw-r--r-- | configserver/src/test/java/com/yahoo/vespa/config/server/TestComponentRegistry.java | 2 | ||||
-rw-r--r-- | configserver/src/test/java/com/yahoo/vespa/config/server/session/MockFileDistributionFactory.java | 14 |
8 files changed, 15 insertions, 174 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/CombinedLegacyRegistry.java b/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/CombinedLegacyRegistry.java deleted file mode 100644 index 1fe72e27461..00000000000 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/CombinedLegacyRegistry.java +++ /dev/null @@ -1,38 +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.config.server.filedistribution; - -import com.yahoo.config.FileReference; -import com.yahoo.config.application.api.FileRegistry; - -import java.util.List; - -public class CombinedLegacyRegistry implements FileRegistry { - private final FileDBRegistry legacy; - private final FileDBRegistry future; - - CombinedLegacyRegistry(FileDBRegistry legacy, FileDBRegistry future) { - this.legacy = legacy; - this.future = future; - } - @Override - public FileReference addFile(String relativePath) { - FileReference reference = legacy.addFile(relativePath); - return future.addFile(relativePath, reference); - } - - @Override - public FileReference addUri(String uri) { - FileReference reference = future.addUri(uri); - return reference; - } - - @Override - public String fileSourceHost() { - return future.fileSourceHost(); - } - - @Override - public List<Entry> export() { - return future.export(); - } -} diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileDBHandler.java b/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileDBHandler.java deleted file mode 100644 index 8a0125ce33c..00000000000 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileDBHandler.java +++ /dev/null @@ -1,46 +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.config.server.filedistribution; - -import com.yahoo.config.FileReference; -import com.yahoo.config.model.api.FileDistribution; -import com.yahoo.vespa.filedistribution.FileDistributionManager; - -import java.util.*; - -/** - * Implements invoker of filedistribution using manager with JNI. - * - * @author Tony Vaagenes - * @author Ulf Lilleengen - */ -public class FileDBHandler implements FileDistribution { - private final FileDistributionManager manager; - - public FileDBHandler(FileDistributionManager manager) { - this.manager = manager; - } - - @Override - public void sendDeployedFiles(String hostName, Set<FileReference> fileReferences) { - List<String> referencesAsString = new ArrayList<>(); - for (FileReference reference : fileReferences) { - referencesAsString.add(reference.value()); - } - manager.setDeployedFiles(hostName, referencesAsString); - } - - @Override - public void startDownload(String hostName, int port, Set<FileReference> fileReferences) { - throw new UnsupportedOperationException("Not valid for this Filedistribution implementation"); - } - - @Override - public void removeDeploymentsThatHaveDifferentApplicationId(Collection<String> targetHostnames) { - manager.removeDeploymentsThatHaveDifferentApplicationId(targetHostnames); - } - - @Override - public void reloadDeployFileDistributor() { - manager.reloadDeployFileDistributor(); - } -} diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/CombinedLegacyDistribution.java b/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileDistributionImpl.java index 571f70c848f..b7567769afd 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/CombinedLegacyDistribution.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileDistributionImpl.java @@ -18,38 +18,33 @@ import java.util.logging.Logger; /** * @author baldersheim */ -public class CombinedLegacyDistribution implements FileDistribution { - private final static Logger log = Logger.getLogger(CombinedLegacyDistribution.class.getName()); +public class FileDistributionImpl implements FileDistribution { + private final static Logger log = Logger.getLogger(FileDistributionImpl.class.getName()); private final Supervisor supervisor; - private final FileDistribution legacy; - private final boolean disableFileDistributor; - CombinedLegacyDistribution(Supervisor supervisor, FileDBHandler legacy, boolean disableFileDistributor) { + FileDistributionImpl(Supervisor supervisor) { this.supervisor = supervisor; - this.legacy = legacy; - this.disableFileDistributor = disableFileDistributor; } @Override public void sendDeployedFiles(String hostName, Set<FileReference> fileReferences) { - legacy.sendDeployedFiles(hostName, fileReferences); + // Nothing do do, legacy handler not in use anymore } @Override public void startDownload(String hostName, int port, Set<FileReference> fileReferences) { - if (disableFileDistributor) - startDownloadingFileReferences(hostName, port, fileReferences); + startDownloadingFileReferences(hostName, port, fileReferences); } @Override public void reloadDeployFileDistributor() { - legacy.reloadDeployFileDistributor(); + // Nothing do do, legacy handler not in use anymore } @Override public void removeDeploymentsThatHaveDifferentApplicationId(Collection<String> targetHostnames) { - legacy.removeDeploymentsThatHaveDifferentApplicationId(targetHostnames); + // Nothing do do, legacy handler not in use anymore } // Notifies config proxy which file references it should start downloading. It's OK if the call does not succeed, diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileDistributionProvider.java b/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileDistributionProvider.java index 117bf3e236b..9cbc842d8c2 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileDistributionProvider.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileDistributionProvider.java @@ -1,14 +1,11 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.config.server.filedistribution; -import com.yahoo.config.FileReference; import com.yahoo.config.model.api.FileDistribution; import com.yahoo.config.application.api.FileRegistry; import com.yahoo.jrt.Supervisor; -import com.yahoo.vespa.filedistribution.FileDistributionManager; import java.io.File; -import java.util.concurrent.locks.Lock; /** * Provides file distribution registry and invoker. @@ -20,45 +17,10 @@ public class FileDistributionProvider { private final FileRegistry fileRegistry; private final FileDistribution fileDistribution; - static private class ManagerWrapper implements AddFileInterface { - - private final FileDistributionManager manager; - ManagerWrapper(FileDistributionManager manager) { - this.manager = manager; - } - - @Override - public FileReference addUri(String uri, String relativePath) { - throw new IllegalStateException("addUri is not possible with legacy filedistribution."); - } - - @Override - public FileReference addUri(String uri, String relativePath, FileReference reference) { - throw new IllegalStateException("addUri is not possible with legacy filedistribution."); - } - - @Override - public FileReference addFile(String relativePath) { - return new FileReference(manager.addFile(relativePath)); - } - - @Override - public FileReference addFile(String relativePath, FileReference reference) { - throw new IllegalStateException("addFile with external reference is not possible with legacy filedistribution."); - } - } - - public FileDistributionProvider(Supervisor supervisor, File applicationDir, String zooKeepersSpec, - String applicationId, Lock fileDistributionLock, - boolean disableFileDistributor) { + public FileDistributionProvider(Supervisor supervisor, File applicationDir) { ensureDirExists(FileDistribution.getDefaultFileDBPath()); - final FileDistributionManager manager = new FileDistributionManager( - FileDistribution.getDefaultFileDBPath(), applicationDir, - zooKeepersSpec, applicationId, fileDistributionLock); - this.fileDistribution = new CombinedLegacyDistribution(supervisor, new FileDBHandler(manager), disableFileDistributor); - this.fileRegistry = new CombinedLegacyRegistry(new FileDBRegistry(new ManagerWrapper(manager)), - new FileDBRegistry(new ApplicationFileManager(applicationDir, new FileDirectory()))); - + this.fileDistribution = new FileDistributionImpl(supervisor); + this.fileRegistry = new FileDBRegistry(new ApplicationFileManager(applicationDir, new FileDirectory())); } // For testing only diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/PreparedModelsBuilder.java b/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/PreparedModelsBuilder.java index b3ade24603c..c265e0f6c2e 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/PreparedModelsBuilder.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/PreparedModelsBuilder.java @@ -86,10 +86,7 @@ public class PreparedModelsBuilder extends ModelsBuilder<PreparedModelsBuilder.P Instant now) { Version modelVersion = modelFactory.getVersion(); log.log(LogLevel.DEBUG, "Building model " + modelVersion + " for " + applicationId); - FileDistributionProvider fileDistributionProvider = fileDistributionFactory.createProvider( - context.getServerDBSessionDir(), - applicationId, - properties.disableFileDistributor()); + FileDistributionProvider fileDistributionProvider = fileDistributionFactory.createProvider(context.getServerDBSessionDir()); // Use empty on non-hosted systems, use already allocated hosts if available, create connection to a host provisioner otherwise Optional<HostProvisioner> hostProvisioner = createHostProvisioner(allocatedHosts); diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/session/FileDistributionFactory.java b/configserver/src/main/java/com/yahoo/vespa/config/server/session/FileDistributionFactory.java index 02c854f4130..12cc76afc6b 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/session/FileDistributionFactory.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/session/FileDistributionFactory.java @@ -1,16 +1,12 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.config.server.session; -import com.google.inject.Inject; import com.yahoo.config.provision.ApplicationId; import com.yahoo.jrt.Supervisor; import com.yahoo.jrt.Transport; -import com.yahoo.vespa.config.server.filedistribution.FileDistributionLock; import com.yahoo.vespa.config.server.filedistribution.FileDistributionProvider; -import com.yahoo.vespa.curator.Curator; import java.io.File; -import java.util.concurrent.locks.Lock; /** * Factory for creating providers that are used to interact with file distribution. @@ -20,23 +16,10 @@ import java.util.concurrent.locks.Lock; @SuppressWarnings("WeakerAccess") public class FileDistributionFactory { - private static final String lockPath = "/vespa/filedistribution/lock"; - private final String zkSpec; - private final Lock lock; private final Supervisor supervisor = new Supervisor(new Transport()); - @Inject - public FileDistributionFactory(Curator curator) { - this(curator, curator.zooKeeperEnsembleConnectionSpec()); - } - - public FileDistributionFactory(Curator curator, String zkSpec) { - this.lock = new FileDistributionLock(curator, lockPath); - this.zkSpec = zkSpec; - } - - public FileDistributionProvider createProvider(File applicationPackage, ApplicationId applicationId, boolean disableFileDistributor) { - return new FileDistributionProvider(supervisor, applicationPackage, zkSpec, applicationId.serializedForm(), lock, disableFileDistributor); + public FileDistributionProvider createProvider(File applicationPackage) { + return new FileDistributionProvider(supervisor, applicationPackage); } @Override diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/TestComponentRegistry.java b/configserver/src/test/java/com/yahoo/vespa/config/server/TestComponentRegistry.java index faf310f9106..3b56b5b35bf 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/TestComponentRegistry.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/TestComponentRegistry.java @@ -147,7 +147,7 @@ public class TestComponentRegistry implements GlobalComponentRegistry { final PermanentApplicationPackage permApp = this.permanentApplicationPackage .orElse(new PermanentApplicationPackage(configserverConfig)); FileDistributionFactory fileDistributionFactory = this.fileDistributionFactory - .orElse(new MockFileDistributionFactory(curator)); + .orElse(new MockFileDistributionFactory()); HostProvisionerProvider hostProvisionerProvider = hostProvisioner.isPresent() ? HostProvisionerProvider.withProvisioner(hostProvisioner.get()) : HostProvisionerProvider.empty(); diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/session/MockFileDistributionFactory.java b/configserver/src/test/java/com/yahoo/vespa/config/server/session/MockFileDistributionFactory.java index d32b3a9e1a6..9d8b7c5cc00 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/session/MockFileDistributionFactory.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/session/MockFileDistributionFactory.java @@ -1,11 +1,8 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.config.server.session; -import com.yahoo.config.provision.ApplicationId; import com.yahoo.vespa.config.server.filedistribution.FileDistributionProvider; import com.yahoo.vespa.config.server.filedistribution.MockFileDistributionProvider; -import com.yahoo.vespa.curator.Curator; -import com.yahoo.vespa.curator.mock.MockCurator; import java.io.File; @@ -16,17 +13,8 @@ public class MockFileDistributionFactory extends FileDistributionFactory { public final MockFileDistributionProvider mockFileDistributionProvider = new MockFileDistributionProvider(); - // Prevent instantiation without supplied curator instance - private MockFileDistributionFactory() { - super(new MockCurator(), ""); - } - - public MockFileDistributionFactory(Curator curator) { - super(curator, ""); - } - @Override - public FileDistributionProvider createProvider(File applicationFile, ApplicationId applicationId, boolean disableFileDistributor) { + public FileDistributionProvider createProvider(File applicationFile) { return mockFileDistributionProvider; } } |