diff options
author | Harald Musum <musum@verizonmedia.com> | 2021-08-30 22:52:42 +0200 |
---|---|---|
committer | Harald Musum <musum@verizonmedia.com> | 2021-08-30 22:52:42 +0200 |
commit | 54ded5d09374eb5f4fcb3a8d425224870df48f6f (patch) | |
tree | 9fd7bbd4dc06183ec56c146487f8c1df7bec5ff5 /configserver | |
parent | 8135dbf8ae320aea60dc3172cc6a29c294341a17 (diff) |
Simplify by getting rid of FileDistributionProvider
Diffstat (limited to 'configserver')
17 files changed, 111 insertions, 146 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileDBRegistry.java b/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileDBRegistry.java index 459d8e51853..6ce74b355a2 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileDBRegistry.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileDBRegistry.java @@ -1,4 +1,4 @@ -// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +// Copyright Verizon Media. 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.google.common.collect.ImmutableMap; @@ -35,6 +35,7 @@ public class FileDBRegistry implements FileRegistry { silenceNonExistingFiles = false; this.manager = manager; } + public static FileDBRegistry create(AddFileInterface manager, Reader persistedState) { try (BufferedReader reader = new BufferedReader(persistedState)) { String ignoredFileSourceHost = reader.readLine(); diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileDistributionFactory.java b/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileDistributionFactory.java index fd71afedec1..bb63b9947af 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileDistributionFactory.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileDistributionFactory.java @@ -3,8 +3,9 @@ package com.yahoo.vespa.config.server.filedistribution; import com.google.inject.Inject; import com.yahoo.cloud.config.ConfigserverConfig; -import com.yahoo.jrt.Supervisor; -import com.yahoo.jrt.Transport; +import com.yahoo.config.application.api.FileRegistry; +import com.yahoo.config.model.api.FileDistribution; +import com.yahoo.vespa.defaults.Defaults; import java.io.File; @@ -17,15 +18,26 @@ import java.io.File; public class FileDistributionFactory { protected final ConfigserverConfig configserverConfig; - private final Supervisor supervisor = new Supervisor(new Transport("filedistribution")); @Inject public FileDistributionFactory(ConfigserverConfig configserverConfig) { this.configserverConfig = configserverConfig; } - public FileDistributionProvider createProvider(File applicationPackage) { - return new FileDistributionProvider(applicationPackage, new FileDistributionImpl(configserverConfig, supervisor)); + public FileRegistry createFileRegistry(File applicationPackage) { + return new FileDBRegistry(new ApplicationFileManager(applicationPackage, new FileDirectory(getFileReferencesDir()))); + } + + public FileDistribution createFileDistribution() { + return new FileDistributionImpl(getFileReferencesDir()); + } + + public AddFileInterface createFileManager(File applicationDir) { + return new ApplicationFileManager(applicationDir, new FileDirectory(getFileReferencesDir())); + } + + protected File getFileReferencesDir() { + return new File(Defaults.getDefaults().underVespaHome(configserverConfig.fileReferencesDir())); } } diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileDistributionImpl.java b/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileDistributionImpl.java index 2eebbfa4acf..98fe5856adb 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileDistributionImpl.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileDistributionImpl.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. +// Copyright Verizon Media. 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.cloud.config.ConfigserverConfig; import com.yahoo.config.FileReference; import com.yahoo.config.model.api.FileDistribution; import com.yahoo.jrt.Request; @@ -10,26 +9,26 @@ import com.yahoo.jrt.Spec; import com.yahoo.jrt.StringArray; import com.yahoo.jrt.Supervisor; import com.yahoo.jrt.Target; -import java.util.logging.Level; -import com.yahoo.vespa.defaults.Defaults; +import com.yahoo.jrt.Transport; import java.io.File; import java.util.Set; +import java.util.logging.Level; import java.util.logging.Logger; /** * @author baldersheim */ public class FileDistributionImpl implements FileDistribution, RequestWaiter { + private final static Logger log = Logger.getLogger(FileDistributionImpl.class.getName()); private final static double rpcTimeout = 1.0; - private final Supervisor supervisor; + private final Supervisor supervisor = new Supervisor(new Transport("filedistribution")); private final File fileReferencesDir; - public FileDistributionImpl(ConfigserverConfig configserverConfig, Supervisor supervisor) { - this.fileReferencesDir = new File(Defaults.getDefaults().underVespaHome(configserverConfig.fileReferencesDir())); - this.supervisor = supervisor; + public FileDistributionImpl(File fileReferencesDir) { + this.fileReferencesDir = fileReferencesDir; } @Override 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 deleted file mode 100644 index 914d4f48571..00000000000 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileDistributionProvider.java +++ /dev/null @@ -1,60 +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.model.api.FileDistribution; -import com.yahoo.config.application.api.FileRegistry; - -import java.io.File; -import java.io.Reader; - -/** - * Provides file distribution registry and invoker. - * - * @author Ulf Lilleengen - */ -public class FileDistributionProvider { - - private final FileRegistry fileRegistry; - private final FileDistribution fileDistribution; - private final AddFileInterface fileManager; - - public FileDistributionProvider(File applicationDir, FileDistribution fileDistribution) { - this(new ApplicationFileManager(applicationDir, new FileDirectory(fileDistribution.getFileReferencesDir())), fileDistribution); - ensureDirExists(fileDistribution.getFileReferencesDir()); - } - - FileDistributionProvider(FileRegistry fileRegistry, FileDistribution fileDistribution) { - this(null, fileRegistry, fileDistribution); - } - - private FileDistributionProvider(AddFileInterface fileManager, FileDistribution fileDistribution) { - this(fileManager, new FileDBRegistry(fileManager), fileDistribution); - } - - private FileDistributionProvider(AddFileInterface fileManager, FileRegistry fileRegistry, FileDistribution fileDistribution) { - this.fileManager = fileManager; - this.fileRegistry = fileRegistry; - this.fileDistribution = fileDistribution; - } - - public FileRegistry getFileRegistry() { - return fileRegistry; - } - - public FileDistribution getFileDistribution() { - return fileDistribution; - } - - public FileRegistry createPregeneratedFileRegistry(Reader persistedState) { - return FileDBRegistry.create(fileManager, persistedState); - } - - private static void ensureDirExists(File dir) { - if (!dir.exists()) { - boolean success = dir.mkdirs(); - if (!success) - throw new RuntimeException("Could not create directory " + dir.getPath()); - } - } - -} diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/MockFileManager.java b/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/MockFileManager.java new file mode 100644 index 00000000000..da436505105 --- /dev/null +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/MockFileManager.java @@ -0,0 +1,34 @@ +// Copyright Verizon Media. 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 java.io.File; +import java.nio.ByteBuffer; + +/** + * @author hmusum + */ +public class MockFileManager implements AddFileInterface { + + @Override + public FileReference addUri(String uri, String relativePath) { + return null; + } + + @Override + public FileReference addFile(String relativePath) { + return null; + } + + @Override + public FileReference addFile(File file) { + return null; + } + + @Override + public FileReference addBlob(ByteBuffer blob, String relativePath) { + return null; + } + +} diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java index 20910ce882d..1c790e53643 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java @@ -34,7 +34,6 @@ import com.yahoo.vespa.config.server.configchange.ConfigChangeActions; import com.yahoo.vespa.config.server.deploy.ModelContextImpl; import com.yahoo.vespa.config.server.deploy.ZooKeeperDeployer; import com.yahoo.vespa.config.server.filedistribution.FileDistributionFactory; -import com.yahoo.vespa.config.server.filedistribution.FileDistributionProvider; import com.yahoo.vespa.config.server.host.HostValidator; import com.yahoo.vespa.config.server.http.InvalidApplicationException; import com.yahoo.vespa.config.server.modelfactory.ModelFactoryRegistry; @@ -103,10 +102,6 @@ public class SessionPreparer { this.flagSource = flagSource; } - public FileDistributionFactory getFileDistributionFactory() { - return fileDistributionFactory; - } - /** * Prepares a session (validates, builds model, writes to zookeeper and distributes files) * @@ -170,7 +165,7 @@ public class SessionPreparer { private PrepareResult prepareResult; private final PreparedModelsBuilder preparedModelsBuilder; - private final FileDistributionProvider fileDistributionProvider; + private final FileRegistry fileRegistry; Preparation(HostValidator<ApplicationId> hostValidator, DeployLogger logger, PrepareParams params, Optional<ApplicationSet> currentActiveApplicationSet, Path tenantPath, @@ -209,11 +204,11 @@ public class SessionPreparer { params.tenantSecretStores(), secretStore, params.operatorCertificates()); - this.fileDistributionProvider = fileDistributionFactory.createProvider(serverDbSessionDir); + this.fileRegistry = fileDistributionFactory.createFileRegistry(serverDbSessionDir); this.preparedModelsBuilder = new PreparedModelsBuilder(modelFactoryRegistry, permanentApplicationPackage, configDefinitionRepo, - fileDistributionProvider.getFileRegistry(), + fileRegistry, hostProvisionerProvider, curator, hostValidator, @@ -234,9 +229,8 @@ public class SessionPreparer { } Optional<FileReference> distributedApplicationPackage() { - FileRegistry fileRegistry = fileDistributionProvider.getFileRegistry(); FileReference fileReference = fileRegistry.addApplicationPackage(); - FileDistribution fileDistribution = fileDistributionProvider.getFileDistribution(); + FileDistribution fileDistribution = fileDistributionFactory.createFileDistribution(); log.log(Level.FINE, () -> "Distribute application package for " + applicationId + " (" + fileReference + ") to other config servers"); properties.configServerSpecs().stream() .filter(spec -> ! spec.getHostName().equals(HostName.getLocalhost())) diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionRepository.java b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionRepository.java index 398695a5d6e..ff9820ffb0c 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionRepository.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionRepository.java @@ -784,9 +784,12 @@ public class SessionRepository { } private SessionZooKeeperClient createSessionZooKeeperClient(long sessionId) { - String serverId = configserverConfig.serverId(); - return new SessionZooKeeperClient(curator, tenantName, sessionId, serverId, - fileDistributionFactory.createProvider(getSessionAppDir(sessionId)), maxNodeSize); + return new SessionZooKeeperClient(curator, + tenantName, + sessionId, + configserverConfig.serverId(), + fileDistributionFactory.createFileManager(getSessionAppDir(sessionId)), + maxNodeSize); } private File getAndValidateExistingSessionAppDir(long sessionId) { diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionZooKeeperClient.java b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionZooKeeperClient.java index 2d2712b3002..7cbc07bb5c2 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionZooKeeperClient.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionZooKeeperClient.java @@ -21,7 +21,8 @@ import com.yahoo.transaction.Transaction; import com.yahoo.vespa.config.server.UserConfigDefinitionRepo; import com.yahoo.vespa.config.server.deploy.ZooKeeperClient; import com.yahoo.vespa.config.server.deploy.ZooKeeperDeployer; -import com.yahoo.vespa.config.server.filedistribution.FileDistributionProvider; +import com.yahoo.vespa.config.server.filedistribution.AddFileInterface; +import com.yahoo.vespa.config.server.filedistribution.MockFileManager; import com.yahoo.vespa.config.server.tenant.OperatorCertificateSerializer; import com.yahoo.vespa.config.server.tenant.TenantRepository; import com.yahoo.vespa.config.server.tenant.TenantSecretStoreSerializer; @@ -69,20 +70,21 @@ public class SessionZooKeeperClient { private final Path sessionStatusPath; private final String serverId; // hostname private final int maxNodeSize; - private final FileDistributionProvider fileDistributionProvider; + private final AddFileInterface fileManager; - public SessionZooKeeperClient(Curator curator, TenantName tenantName, long sessionId, String serverId, FileDistributionProvider fileDistributionProvider, int maxNodeSize) { + public SessionZooKeeperClient(Curator curator, TenantName tenantName, long sessionId, String serverId, AddFileInterface fileManager, int maxNodeSize) { this.curator = curator; this.tenantName = tenantName; this.sessionPath = getSessionPath(tenantName, sessionId); this.serverId = serverId; this.sessionStatusPath = sessionPath.append(ZKApplication.SESSIONSTATE_ZK_SUBPATH); this.maxNodeSize = maxNodeSize; - this.fileDistributionProvider = fileDistributionProvider; + this.fileManager = fileManager; } - public SessionZooKeeperClient(Curator curator, TenantName tenantName, long sessionId, FileDistributionProvider fileDistributionProvider, String serverId) { - this(curator, tenantName, sessionId, serverId, fileDistributionProvider, 10 * 1024 * 1024); + // For testing only + public SessionZooKeeperClient(Curator curator, TenantName tenantName, long sessionId, String serverId) { + this(curator, tenantName, sessionId, serverId, new MockFileManager(), 10 * 1024 * 1024); } public void writeStatus(Session.Status sessionStatus) { @@ -141,7 +143,7 @@ public class SessionZooKeeperClient { } public ApplicationPackage loadApplicationPackage() { - return new ZKApplicationPackage(fileDistributionProvider, curator, sessionPath, maxNodeSize); + return new ZKApplicationPackage(fileManager, curator, sessionPath, maxNodeSize); } public ConfigDefinitionRepo getUserConfigDefinitions() { diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/zookeeper/ZKApplicationPackage.java b/configserver/src/main/java/com/yahoo/vespa/config/server/zookeeper/ZKApplicationPackage.java index 38bed8ee05d..25c4f024476 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/zookeeper/ZKApplicationPackage.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/zookeeper/ZKApplicationPackage.java @@ -19,7 +19,8 @@ import com.yahoo.path.Path; import com.yahoo.vespa.config.ConfigDefinition; import com.yahoo.vespa.config.ConfigDefinitionBuilder; import com.yahoo.vespa.config.ConfigDefinitionKey; -import com.yahoo.vespa.config.server.filedistribution.FileDistributionProvider; +import com.yahoo.vespa.config.server.filedistribution.AddFileInterface; +import com.yahoo.vespa.config.server.filedistribution.FileDBRegistry; import com.yahoo.vespa.config.util.ConfigUtils; import com.yahoo.vespa.curator.Curator; @@ -54,17 +55,17 @@ public class ZKApplicationPackage implements ApplicationPackage { public static final String allocatedHostsNode = "allocatedHosts"; private final ApplicationMetaData metaData; - public ZKApplicationPackage(FileDistributionProvider fileDistributionProvider, Curator curator, Path sessionPath, int maxNodeSize) { + public ZKApplicationPackage(AddFileInterface fileManager, Curator curator, Path sessionPath, int maxNodeSize) { verifyAppPath(curator, sessionPath); zkApplication = new ZKApplication(curator, sessionPath, maxNodeSize); metaData = readMetaDataFromLiveApp(zkApplication); - importFileRegistries(fileDistributionProvider); + importFileRegistries(fileManager); allocatedHosts = importAllocatedHosts(); } // For testing - ZKApplicationPackage(FileDistributionProvider fileDistributionProvider, Curator curator, Path sessionPath) { - this(fileDistributionProvider, curator, sessionPath, 10 * 1024 * 1024); + ZKApplicationPackage(AddFileInterface fileManager, Curator curator, Path sessionPath) { + this(fileManager, curator, sessionPath, 10 * 1024 * 1024); } private Optional<AllocatedHosts> importAllocatedHosts() { @@ -85,17 +86,16 @@ public class ZKApplicationPackage implements ApplicationPackage { } } - private void importFileRegistries(FileDistributionProvider fileDistributionProvider) { + private void importFileRegistries(AddFileInterface fileManager) { List<String> perVersionFileRegistryNodes = zkApplication.getChildren(Path.fromString(fileRegistryNode)); perVersionFileRegistryNodes - .forEach(version -> - fileRegistryMap.put(Version.fromString(version), - importFileRegistry(fileDistributionProvider, Joiner.on("/").join(fileRegistryNode, version)))); + .forEach(version -> fileRegistryMap.put(Version.fromString(version), + importFileRegistry(fileManager, Joiner.on("/").join(fileRegistryNode, version)))); } - private FileRegistry importFileRegistry(FileDistributionProvider fileDistributionProvider, String fileRegistryNode) { + private FileRegistry importFileRegistry(AddFileInterface fileManager, String fileRegistryNode) { try { - return fileDistributionProvider.createPregeneratedFileRegistry(zkApplication.getDataReader(Path.fromString(fileRegistryNode))); + return FileDBRegistry.create(fileManager, zkApplication.getDataReader(Path.fromString(fileRegistryNode))); } catch (Exception e) { throw new RuntimeException("Could not determine which files to distribute", e); } diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/ApplicationRepositoryTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/ApplicationRepositoryTest.java index 665b603acfc..1db8b9a2741 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/ApplicationRepositoryTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/ApplicationRepositoryTest.java @@ -473,7 +473,6 @@ public class ApplicationRepositoryTest { new SessionZooKeeperClient(curator, tenantName, sessionId, - tenantRepository.getFileDistributionFactory().createProvider(testApp), ConfigUtils.getCanonicalHostName())); sessionRepository.addLocalSession(localSession2); assertEquals(2, sessionRepository.getLocalSessions().size()); diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/filedistribution/MockFileDistributionFactory.java b/configserver/src/test/java/com/yahoo/vespa/config/server/filedistribution/MockFileDistributionFactory.java index af55dc6a90e..8dea796c485 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/filedistribution/MockFileDistributionFactory.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/filedistribution/MockFileDistributionFactory.java @@ -2,6 +2,7 @@ package com.yahoo.vespa.config.server.filedistribution; import com.yahoo.cloud.config.ConfigserverConfig; +import com.yahoo.config.application.api.FileRegistry; import java.io.File; @@ -15,8 +16,13 @@ public class MockFileDistributionFactory extends FileDistributionFactory { } @Override - public com.yahoo.vespa.config.server.filedistribution.FileDistributionProvider createProvider(File applicationFile) { - return new MockFileDistributionProvider(applicationFile, new File(configserverConfig.fileReferencesDir())); + public FileRegistry createFileRegistry(File applicationPackage) { + return new MockFileRegistry(applicationPackage, getFileReferencesDir().toPath()); + } + + @Override + public AddFileInterface createFileManager(File applicationDir) { + return new MockFileManager(); } } diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/filedistribution/MockFileDistributionProvider.java b/configserver/src/test/java/com/yahoo/vespa/config/server/filedistribution/MockFileDistributionProvider.java deleted file mode 100644 index 70b03fcdd36..00000000000 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/filedistribution/MockFileDistributionProvider.java +++ /dev/null @@ -1,16 +0,0 @@ -// Copyright Verizon Media. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.vespa.config.server.filedistribution; - -import java.io.File; - -/** - * @author hmusum - */ -public class MockFileDistributionProvider extends FileDistributionProvider { - - public MockFileDistributionProvider(File applicationDir, File fileReferencesDir) { - super(new MockFileRegistry(applicationDir, fileReferencesDir.toPath()), - new MockFileDistribution(fileReferencesDir)); - } - -} diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/filedistribution/MockFileRegistry.java b/configserver/src/test/java/com/yahoo/vespa/config/server/filedistribution/MockFileRegistry.java index 939838cba10..1c4ba0293f6 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/filedistribution/MockFileRegistry.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/filedistribution/MockFileRegistry.java @@ -3,7 +3,6 @@ package com.yahoo.vespa.config.server.filedistribution; import com.yahoo.config.FileReference; import com.yahoo.config.application.api.FileRegistry; -import net.jpountz.xxhash.XXHashFactory; import java.io.File; import java.io.IOException; diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionPreparerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionPreparerTest.java index cb3f94100d1..3fedddc93a7 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionPreparerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionPreparerTest.java @@ -188,7 +188,7 @@ public class SessionPreparerTest { HostRegistry hostValidator = new HostRegistry(); hostValidator.update(applicationId("foo"), Collections.singletonList("mytesthost")); preparer.prepare(hostValidator, new BaseDeployLogger(), new PrepareParams.Builder().applicationId(applicationId("default")).build(), - Optional.empty(), Instant.now(), app.getAppDir(), app, createSessionZooKeeperClient(app.getAppDir())); + Optional.empty(), Instant.now(), app.getAppDir(), app, createSessionZooKeeperClient()); } @Test @@ -203,7 +203,7 @@ public class SessionPreparerTest { hostValidator.update(applicationId, Collections.singletonList("mytesthost")); preparer.prepare(hostValidator, logger, new PrepareParams.Builder().applicationId(applicationId).build(), Optional.empty(), Instant.now(), app.getAppDir(), app, - createSessionZooKeeperClient(app.getAppDir())); + createSessionZooKeeperClient()); assertEquals(logged.toString(), ""); } @@ -212,7 +212,7 @@ public class SessionPreparerTest { PrepareParams params = new PrepareParams.Builder().applicationId(applicationId()).build(); int sessionId = 1; prepare(testApp, params); - assertThat(createSessionZooKeeperClient(testApp, sessionId).readApplicationId().get(), is(applicationId())); + assertThat(createSessionZooKeeperClient(sessionId).readApplicationId().get(), is(applicationId())); } @Test @@ -345,7 +345,7 @@ public class SessionPreparerTest { FilesApplicationPackage applicationPackage = getApplicationPackage(app); return preparer.prepare(new HostRegistry(), getLogger(), params, Optional.empty(), Instant.now(), applicationPackage.getAppDir(), - applicationPackage, createSessionZooKeeperClient(applicationPackage.getAppDir(), sessionId)); + applicationPackage, createSessionZooKeeperClient(sessionId)); } private FilesApplicationPackage getApplicationPackage(File testFile) throws IOException { @@ -369,12 +369,15 @@ public class SessionPreparerTest { ApplicationName.from(applicationName), InstanceName.defaultName()); } - private SessionZooKeeperClient createSessionZooKeeperClient(File appDir) { - return createSessionZooKeeperClient(appDir, 1); + private SessionZooKeeperClient createSessionZooKeeperClient() { + return createSessionZooKeeperClient(1); } - private SessionZooKeeperClient createSessionZooKeeperClient(File appDir, long sessionId) { - return new SessionZooKeeperClient(curator, applicationId().tenant(), sessionId, preparer.getFileDistributionFactory().createProvider(appDir), ConfigUtils.getCanonicalHostName()); + private SessionZooKeeperClient createSessionZooKeeperClient(long sessionId) { + return new SessionZooKeeperClient(curator, + applicationId().tenant(), + sessionId, + ConfigUtils.getCanonicalHostName()); } private Path sessionPath(long sessionId) { diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionRepositoryTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionRepositoryTest.java index 850c24fd3e6..c6105898794 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionRepositoryTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionRepositoryTest.java @@ -286,7 +286,6 @@ public class SessionRepositoryTest { SessionZooKeeperClient zkc = new SessionZooKeeperClient(curator, tenantName, sessionId, - tenantRepository.getFileDistributionFactory().createProvider(new File("dummy")), ConfigUtils.getCanonicalHostName()); zkc.createNewSession(Instant.now()); if (wait) { diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionZooKeeperClientTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionZooKeeperClientTest.java index b8b7abf2d72..57ef55cc890 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionZooKeeperClientTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionZooKeeperClientTest.java @@ -8,8 +8,6 @@ import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.TenantName; import com.yahoo.path.Path; import com.yahoo.text.Utf8; -import com.yahoo.vespa.config.server.filedistribution.FileDistributionProvider; -import com.yahoo.vespa.config.server.filedistribution.MockFileDistributionProvider; import com.yahoo.vespa.config.server.tenant.TenantRepository; import com.yahoo.vespa.config.util.ConfigUtils; import com.yahoo.vespa.curator.Curator; @@ -19,7 +17,6 @@ import org.junit.Rule; import org.junit.Test; import org.junit.rules.ExpectedException; -import java.io.File; import java.time.Instant; import java.util.List; import java.util.Optional; @@ -38,7 +35,6 @@ public class SessionZooKeeperClientTest { private static final TenantName tenantName = TenantName.defaultName(); private Curator curator; - private FileDistributionProvider fileDistributionProvider; @Rule public ExpectedException expectedException = ExpectedException.none(); @@ -47,7 +43,6 @@ public class SessionZooKeeperClientTest { public void setup() { curator = new MockCurator(); curator.create(sessionsPath()); - fileDistributionProvider = new MockFileDistributionProvider(new File("appdir"), new File("refdir")); } @Test @@ -176,7 +171,6 @@ public class SessionZooKeeperClientTest { SessionZooKeeperClient zkc = new SessionZooKeeperClient(curator, tenantName, sessionId, - fileDistributionProvider, ConfigUtils.getCanonicalHostName()); zkc.createNewSession(Instant.now()); return zkc; diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/zookeeper/ZKApplicationPackageTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/zookeeper/ZKApplicationPackageTest.java index fc365016450..b5c28fc4fe6 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/zookeeper/ZKApplicationPackageTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/zookeeper/ZKApplicationPackageTest.java @@ -14,8 +14,7 @@ import com.yahoo.config.provisioning.FlavorsConfig; import com.yahoo.io.IOUtils; import com.yahoo.path.Path; import com.yahoo.text.Utf8; -import com.yahoo.vespa.config.server.filedistribution.MockFileDistributionFactory; -import com.yahoo.vespa.config.server.filedistribution.MockFileDistributionProvider; +import com.yahoo.vespa.config.server.filedistribution.MockFileManager; import com.yahoo.vespa.curator.Curator; import com.yahoo.vespa.curator.mock.MockCurator; import org.junit.Before; @@ -36,10 +35,8 @@ import java.util.regex.Pattern; import static com.yahoo.config.provision.serialization.AllocatedHostsSerializer.toJson; import static com.yahoo.vespa.config.server.zookeeper.ZKApplication.META_ZK_PATH; import static com.yahoo.vespa.config.server.zookeeper.ZKApplication.USERAPP_ZK_SUBPATH; -import static org.hamcrest.CoreMatchers.is; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertThat; import static org.junit.Assert.assertTrue; public class ZKApplicationPackageTest { @@ -77,8 +74,7 @@ public class ZKApplicationPackageTest { @Test public void testBasicZKFeed() throws IOException { feed(curator, new File(APP)); - MockFileDistributionProvider fileDistributionProvider = new MockFileDistributionProvider(new File(APP), new File("references")); - ZKApplicationPackage zkApp = new ZKApplicationPackage(fileDistributionProvider, curator, Path.fromString("/0")); + ZKApplicationPackage zkApp = new ZKApplicationPackage(new MockFileManager(), curator, Path.fromString("/0")); assertTrue(Pattern.compile(".*<slobroks>.*",Pattern.MULTILINE+Pattern.DOTALL).matcher(IOUtils.readAll(zkApp.getServices())).matches()); assertTrue(Pattern.compile(".*<alias>.*",Pattern.MULTILINE+Pattern.DOTALL).matcher(IOUtils.readAll(zkApp.getHosts())).matches()); assertTrue(Pattern.compile(".*<slobroks>.*",Pattern.MULTILINE+Pattern.DOTALL).matcher(IOUtils.readAll(zkApp.getFile(Path.fromString("services.xml")).createReader())).matches()); |