diff options
author | Harald Musum <musum@verizonmedia.com> | 2021-01-21 08:13:00 +0100 |
---|---|---|
committer | Harald Musum <musum@verizonmedia.com> | 2021-01-21 08:13:00 +0100 |
commit | 327eb2b09d667d8bdbf74355d9138450c4812614 (patch) | |
tree | d40c3e6215e6c8e87f776cfd669fd845efdd6fec /configserver | |
parent | f42cd4981459a081bb402384e4629b6815171db9 (diff) |
Move ConfigServerDB out of GlobalComponentRegistry
Diffstat (limited to 'configserver')
30 files changed, 101 insertions, 91 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/GlobalComponentRegistry.java b/configserver/src/main/java/com/yahoo/vespa/config/server/GlobalComponentRegistry.java index d0b50512958..4d25ff59436 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/GlobalComponentRegistry.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/GlobalComponentRegistry.java @@ -1,7 +1,6 @@ // 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; -import com.yahoo.cloud.config.ConfigserverConfig; import com.yahoo.config.model.api.ConfigDefinitionRepo; import com.yahoo.config.provision.Zone; import com.yahoo.vespa.config.server.modelfactory.ModelFactoryRegistry; @@ -22,5 +21,4 @@ public interface GlobalComponentRegistry { ModelFactoryRegistry getModelFactoryRegistry(); Zone getZone(); Clock getClock(); - ConfigServerDB getConfigServerDB(); } diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/InjectedGlobalComponentRegistry.java b/configserver/src/main/java/com/yahoo/vespa/config/server/InjectedGlobalComponentRegistry.java index 489e87249d6..154f735a56a 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/InjectedGlobalComponentRegistry.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/InjectedGlobalComponentRegistry.java @@ -21,20 +21,17 @@ public class InjectedGlobalComponentRegistry implements GlobalComponentRegistry private final RpcServer rpcServer; private final ConfigDefinitionRepo staticConfigDefinitionRepo; private final Zone zone; - private final ConfigServerDB configServerDB; @SuppressWarnings("WeakerAccess") @Inject public InjectedGlobalComponentRegistry(ModelFactoryRegistry modelFactoryRegistry, RpcServer rpcServer, ConfigDefinitionRepo staticConfigDefinitionRepo, - Zone zone, - ConfigServerDB configServerDB) { + Zone zone) { this.modelFactoryRegistry = modelFactoryRegistry; this.rpcServer = rpcServer; this.staticConfigDefinitionRepo = staticConfigDefinitionRepo; this.zone = zone; - this.configServerDB = configServerDB; } @Override @@ -54,7 +51,4 @@ public class InjectedGlobalComponentRegistry implements GlobalComponentRegistry @Override public Clock getClock() {return Clock.systemUTC();} - @Override - public ConfigServerDB getConfigServerDB() { return configServerDB; } - } diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/application/TenantApplications.java b/configserver/src/main/java/com/yahoo/vespa/config/server/application/TenantApplications.java index 09023d06ef5..90e3b233a74 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/application/TenantApplications.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/application/TenantApplications.java @@ -13,6 +13,7 @@ import com.yahoo.transaction.Transaction; import com.yahoo.vespa.config.ConfigKey; import com.yahoo.vespa.config.GetConfigRequest; import com.yahoo.vespa.config.protocol.ConfigResponse; +import com.yahoo.vespa.config.server.ConfigServerDB; import com.yahoo.vespa.config.server.GlobalComponentRegistry; import com.yahoo.vespa.config.server.NotFoundException; import com.yahoo.vespa.config.server.ReloadListener; @@ -101,7 +102,7 @@ public class TenantApplications implements RequestHandler, HostValidator<Applica componentRegistry.getReloadListener(), configserverConfig, hostRegistry, - new TenantFileSystemDirs(componentRegistry.getConfigServerDB(), tenantName), + new TenantFileSystemDirs(new ConfigServerDB(configserverConfig), tenantName), componentRegistry.getClock()); } 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 6cb59341acc..1b7f7a3b697 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 @@ -20,6 +20,7 @@ import com.yahoo.path.Path; import com.yahoo.transaction.AbstractTransaction; import com.yahoo.transaction.NestedTransaction; import com.yahoo.transaction.Transaction; +import com.yahoo.vespa.config.server.ConfigServerDB; import com.yahoo.vespa.config.server.GlobalComponentRegistry; import com.yahoo.vespa.config.server.TimeoutBudget; import com.yahoo.vespa.config.server.application.ApplicationSet; @@ -104,6 +105,7 @@ public class SessionRepository { private final SecretStore secretStore; private final HostProvisionerProvider hostProvisionerProvider; private final ConfigserverConfig configserverConfig; + private final ConfigServerDB configServerDB; public SessionRepository(TenantName tenantName, GlobalComponentRegistry componentRegistry, @@ -117,7 +119,8 @@ public class SessionRepository { ExecutorService zkCacheExecutor, SecretStore secretStore, HostProvisionerProvider hostProvisionerProvider, - ConfigserverConfig configserverConfig) { + ConfigserverConfig configserverConfig, + ConfigServerDB configServerDB) { this.tenantName = tenantName; this.componentRegistry = componentRegistry; this.configCurator = ConfigCurator.create(curator); @@ -129,7 +132,7 @@ public class SessionRepository { this.zkWatcherExecutor = command -> zkWatcherExecutor.execute(tenantName, command); this.permanentApplicationPackage = permanentApplicationPackage; this.flagSource = flagSource; - this.tenantFileSystemDirs = new TenantFileSystemDirs(componentRegistry.getConfigServerDB(), tenantName); + this.tenantFileSystemDirs = new TenantFileSystemDirs(configServerDB, tenantName); this.applicationRepo = applicationRepo; this.sessionPreparer = sessionPreparer; this.metrics = metrics; @@ -137,6 +140,7 @@ public class SessionRepository { this.secretStore = secretStore; this.hostProvisionerProvider = hostProvisionerProvider; this.configserverConfig = configserverConfig; + this.configServerDB = configServerDB; loadSessions(); // Needs to be done before creating cache below this.directoryCache = curator.createDirectoryCache(sessionsPath.getAbsolute(), false, false, zkCacheExecutor); @@ -727,7 +731,7 @@ public class SessionRepository { } private File getSessionAppDir(long sessionId) { - return new TenantFileSystemDirs(componentRegistry.getConfigServerDB(), tenantName).getUserApplicationDir(sessionId); + return new TenantFileSystemDirs(configServerDB, tenantName).getUserApplicationDir(sessionId); } private void updateSessionStateWatcher(long sessionId, RemoteSession remoteSession) { diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/TenantRepository.java b/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/TenantRepository.java index 6d1565dd256..df02bcd4ac4 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/TenantRepository.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/TenantRepository.java @@ -13,6 +13,7 @@ import com.yahoo.container.jdisc.secretstore.SecretStore; import com.yahoo.path.Path; import com.yahoo.text.Utf8; import com.yahoo.transaction.Transaction; +import com.yahoo.vespa.config.server.ConfigServerDB; import com.yahoo.vespa.config.server.GlobalComponentRegistry; import com.yahoo.vespa.config.server.application.PermanentApplicationPackage; import com.yahoo.vespa.config.server.application.TenantApplications; @@ -99,6 +100,7 @@ public class TenantRepository { private final SecretStore secretStore; private final HostProvisionerProvider hostProvisionerProvider; private final ConfigserverConfig configserverConfig; + private final ConfigServerDB configServerDB; private final ExecutorService bootstrapExecutor; private final ScheduledExecutorService checkForRemovedApplicationsService = new ScheduledThreadPoolExecutor(1, new DaemonThreadFactory("check for removed applications")); @@ -117,7 +119,8 @@ public class TenantRepository { FlagSource flagSource, SecretStore secretStore, HostProvisionerProvider hostProvisionerProvider, - ConfigserverConfig configserverConfig) { + ConfigserverConfig configserverConfig, + ConfigServerDB configServerDB) { this(componentRegistry, hostRegistry, curator, @@ -128,7 +131,8 @@ public class TenantRepository { Executors.newFixedThreadPool(1, ThreadFactoryFactory.getThreadFactory(TenantRepository.class.getName())), secretStore, hostProvisionerProvider, - configserverConfig); + configserverConfig, + configServerDB); } public TenantRepository(GlobalComponentRegistry componentRegistry, @@ -141,7 +145,8 @@ public class TenantRepository { ExecutorService zkCacheExecutor, SecretStore secretStore, HostProvisionerProvider hostProvisionerProvider, - ConfigserverConfig configserverConfig) { + ConfigserverConfig configserverConfig, + ConfigServerDB configServerDB) { this.componentRegistry = componentRegistry; this.hostRegistry = hostRegistry; this.configserverConfig = configserverConfig; @@ -157,6 +162,7 @@ public class TenantRepository { this.flagSource = flagSource; this.secretStore = secretStore; this.hostProvisionerProvider = hostProvisionerProvider; + this.configServerDB = configServerDB; curator.framework().getConnectionStateListenable().addListener(this::stateChanged); @@ -282,7 +288,7 @@ public class TenantRepository { componentRegistry.getReloadListener(), configserverConfig, hostRegistry, - new TenantFileSystemDirs(componentRegistry.getConfigServerDB(), tenantName), + new TenantFileSystemDirs(configServerDB, tenantName), componentRegistry.getClock()); PermanentApplicationPackage permanentApplicationPackage = new PermanentApplicationPackage(configserverConfig); SessionPreparer sessionPreparer = new SessionPreparer(componentRegistry.getModelFactoryRegistry(), @@ -307,7 +313,8 @@ public class TenantRepository { zkCacheExecutor, secretStore, hostProvisionerProvider, - configserverConfig); + configserverConfig, + configServerDB); log.log(Level.INFO, "Adding tenant '" + tenantName + "'" + ", created " + created); Tenant tenant = new Tenant(tenantName, sessionRepository, applicationRepo, applicationRepo, created); notifyNewTenant(tenant); 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 d91c00dbc11..0537cca4c30 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 @@ -123,7 +123,6 @@ public class ApplicationRepositoryTest { .fileReferencesDir(temporaryFolder.newFolder().getAbsolutePath()) .build(); TestComponentRegistry componentRegistry = new TestComponentRegistry.Builder() - .configServerConfig(configserverConfig) .clock(clock) .build(); InMemoryFlagSource flagSource = new InMemoryFlagSource(); diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/InjectedGlobalComponentRegistryTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/InjectedGlobalComponentRegistryTest.java index 63b292e6159..c5b1cd32d56 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/InjectedGlobalComponentRegistryTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/InjectedGlobalComponentRegistryTest.java @@ -57,8 +57,7 @@ public class InjectedGlobalComponentRegistryTest { new InjectedGlobalComponentRegistry(modelFactoryRegistry, rpcServer, defRepo, - zone, - new ConfigServerDB(configserverConfig)); + zone); } @Test 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 687d9e3be5e..defc4826bd3 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 @@ -1,7 +1,6 @@ // 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; -import com.yahoo.cloud.config.ConfigserverConfig; import com.yahoo.config.model.NullConfigModelRegistry; import com.yahoo.config.model.api.ConfigDefinitionRepo; import com.yahoo.config.provision.Zone; @@ -11,12 +10,9 @@ import com.yahoo.vespa.config.server.tenant.MockTenantListener; import com.yahoo.vespa.config.server.tenant.TenantListener; import com.yahoo.vespa.model.VespaModelFactory; -import java.nio.file.Files; import java.time.Clock; import java.util.Collections; -import static com.yahoo.yolean.Exceptions.uncheck; - /** * @author Ulf Lilleengen */ @@ -28,30 +24,22 @@ public class TestComponentRegistry implements GlobalComponentRegistry { private final ModelFactoryRegistry modelFactoryRegistry; private final Zone zone; private final Clock clock; - private final ConfigServerDB configServerDB; private TestComponentRegistry(ModelFactoryRegistry modelFactoryRegistry, ConfigDefinitionRepo defRepo, ReloadListener reloadListener, TenantListener tenantListener, Zone zone, - Clock clock, - ConfigserverConfig configserverConfig) { + Clock clock) { this.reloadListener = reloadListener; this.tenantListener = tenantListener; this.defRepo = defRepo; this.modelFactoryRegistry = modelFactoryRegistry; this.zone = zone; this.clock = clock; - this.configServerDB = new ConfigServerDB(configserverConfig); } public static class Builder { - private ConfigserverConfig configserverConfig = new ConfigserverConfig( - new ConfigserverConfig.Builder() - .configServerDBDir(uncheck(() -> Files.createTempDirectory("serverdb")).toString()) - .configDefinitionsDir(uncheck(() -> Files.createTempDirectory("configdefinitions")).toString()) - .sessionLifetime(5)); private ConfigDefinitionRepo defRepo = new StaticConfigDefinitionRepo(); private ReloadListener reloadListener = new TenantApplicationsTest.MockReloadListener(); private final MockTenantListener tenantListener = new MockTenantListener(); @@ -59,11 +47,6 @@ public class TestComponentRegistry implements GlobalComponentRegistry { private Zone zone = Zone.defaultZone(); private Clock clock = Clock.systemUTC(); - public Builder configServerConfig(ConfigserverConfig configserverConfig) { - this.configserverConfig = configserverConfig; - return this; - } - public Builder modelFactoryRegistry(ModelFactoryRegistry modelFactoryRegistry) { this.modelFactoryRegistry = modelFactoryRegistry; return this; @@ -95,8 +78,7 @@ public class TestComponentRegistry implements GlobalComponentRegistry { reloadListener, tenantListener, zone, - clock, - configserverConfig); + clock); } } @@ -114,7 +96,5 @@ public class TestComponentRegistry implements GlobalComponentRegistry { } @Override public Clock getClock() { return clock;} - @Override - public ConfigServerDB getConfigServerDB() { return configServerDB;} } diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/application/TenantApplicationsTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/application/TenantApplicationsTest.java index 26c3db7377d..e5d2aff15d0 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/application/TenantApplicationsTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/application/TenantApplicationsTest.java @@ -60,6 +60,7 @@ public class TenantApplicationsTest { private CuratorFramework curatorFramework; private TestComponentRegistry componentRegistry; private TenantApplications applications; + private ConfigserverConfig configserverConfig; @Rule public TemporaryFolder tempFolder = new TemporaryFolder(); @@ -68,19 +69,19 @@ public class TenantApplicationsTest { public void setup() throws IOException { curator = new MockCurator(); curatorFramework = curator.framework(); - ConfigserverConfig configserverConfig = new ConfigserverConfig.Builder() + configserverConfig = new ConfigserverConfig.Builder() .payloadCompressionType(ConfigserverConfig.PayloadCompressionType.Enum.UNCOMPRESSED) .configServerDBDir(tempFolder.newFolder("configserverdb").getAbsolutePath()) .configDefinitionsDir(tempFolder.newFolder("configdefinitions").getAbsolutePath()) .build(); componentRegistry = new TestComponentRegistry.Builder() - .configServerConfig(configserverConfig) .modelFactoryRegistry(createRegistry()) .reloadListener(listener) .build(); HostRegistry hostRegistry = new HostRegistry(); TenantRepository tenantRepository = new TestTenantRepository.Builder() .withComponentRegistry(componentRegistry) + .withConfigserverConfig(configserverConfig) .withCurator(curator) .build(); tenantRepository.addTenant(TenantRepository.HOSTED_VESPA_TENANT); @@ -182,7 +183,7 @@ public class TenantApplicationsTest { new HostRegistry(), TenantName.defaultName(), new MockCurator(), - new ConfigserverConfig.Builder().build()); + configserverConfig); assertdefaultAppNotFound(); VespaModel model = new VespaModel(FilesApplicationPackage.fromFile(new File("src/test/apps/app"))); @@ -217,7 +218,7 @@ public class TenantApplicationsTest { } private TenantApplications createZKAppRepo() { - return TenantApplications.create(componentRegistry, new HostRegistry(), tenantName, curator, new ConfigserverConfig.Builder().build()); + return TenantApplications.create(componentRegistry, new HostRegistry(), tenantName, curator, configserverConfig); } private static ApplicationId createApplicationId(String name) { diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/deploy/DeployTester.java b/configserver/src/test/java/com/yahoo/vespa/config/server/deploy/DeployTester.java index c5292133bfd..011c9da5409 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/deploy/DeployTester.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/deploy/DeployTester.java @@ -285,7 +285,6 @@ public class DeployTester { TestComponentRegistry.Builder testComponentRegistryBuilder = new TestComponentRegistry.Builder() .clock(clock) - .configServerConfig(configserverConfig) .modelFactoryRegistry(new ModelFactoryRegistry(modelFactories)) .zone(zone); diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/HttpGetConfigHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/HttpGetConfigHandlerTest.java index 0cc5cab4714..446257aa0f8 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/HttpGetConfigHandlerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/HttpGetConfigHandlerTest.java @@ -57,7 +57,6 @@ public class HttpGetConfigHandlerTest { .build(); TestComponentRegistry componentRegistry = new TestComponentRegistry.Builder() .configDefinitionRepo(new TestConfigDefinitionRepo()) - .configServerConfig(configserverConfig) .build(); TenantRepository tenantRepository = new TestTenantRepository.Builder() .withComponentRegistry(componentRegistry) diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/HttpListConfigsHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/HttpListConfigsHandlerTest.java index 9a3550aa36a..4c6c3ac7621 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/HttpListConfigsHandlerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/HttpListConfigsHandlerTest.java @@ -62,7 +62,6 @@ public class HttpListConfigsHandlerTest { .build(); TestComponentRegistry componentRegistry = new TestComponentRegistry.Builder() .configDefinitionRepo(new TestConfigDefinitionRepo()) - .configServerConfig(configserverConfig) .build(); TenantRepository tenantRepository = new TestTenantRepository.Builder() .withComponentRegistry(componentRegistry) diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ApplicationContentHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ApplicationContentHandlerTest.java index f894a254c30..1a59ffff05c 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ApplicationContentHandlerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ApplicationContentHandlerTest.java @@ -57,9 +57,7 @@ public class ApplicationContentHandlerTest extends ContentHandlerTestBase { .configDefinitionsDir(temporaryFolder.newFolder("configdefinitions").getAbsolutePath()) .fileReferencesDir(temporaryFolder.newFolder().getAbsolutePath()) .build(); - TestComponentRegistry componentRegistry = new TestComponentRegistry.Builder() - .configServerConfig(configserverConfig) - .build(); + TestComponentRegistry componentRegistry = new TestComponentRegistry.Builder().build(); Clock clock = componentRegistry.getClock(); TenantRepository tenantRepository = new TestTenantRepository.Builder() diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ApplicationHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ApplicationHandlerTest.java index 0e0fd5babd5..9d10f505f84 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ApplicationHandlerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ApplicationHandlerTest.java @@ -111,12 +111,12 @@ public class ApplicationHandlerTest { .build(); TestComponentRegistry componentRegistry = new TestComponentRegistry.Builder() .modelFactoryRegistry(new ModelFactoryRegistry(modelFactories)) - .configServerConfig(configserverConfig) .clock(clock) .build(); provisioner = new MockProvisioner(); tenantRepository = new TestTenantRepository.Builder() .withComponentRegistry(componentRegistry) + .withConfigserverConfig(configserverConfig) .withFileDistributionFactory(new MockFileDistributionFactory(configserverConfig)) .withHostProvisionerProvider(HostProvisionerProvider.withProvisioner(provisioner, false)) .build(); diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/HostHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/HostHandlerTest.java index 5e738f14832..675c85006d4 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/HostHandlerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/HostHandlerTest.java @@ -55,7 +55,6 @@ public class HostHandlerTest { .build(); TestComponentRegistry componentRegistry = new TestComponentRegistry.Builder() .zone(zone) - .configServerConfig(configserverConfig) .build(); TenantRepository tenantRepository = new TestTenantRepository.Builder() .withComponentRegistry(componentRegistry) diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/HttpGetConfigHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/HttpGetConfigHandlerTest.java index d136be6ddfc..a854afa6d3d 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/HttpGetConfigHandlerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/HttpGetConfigHandlerTest.java @@ -66,7 +66,6 @@ public class HttpGetConfigHandlerTest { .build(); TestComponentRegistry componentRegistry = new TestComponentRegistry.Builder() .configDefinitionRepo(new TestConfigDefinitionRepo()) - .configServerConfig(configserverConfig) .build(); MockProvisioner provisioner = new MockProvisioner(); TenantRepository tenantRepository = new TestTenantRepository.Builder() diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/HttpListConfigsHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/HttpListConfigsHandlerTest.java index cf1ba038688..9d67749cf5d 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/HttpListConfigsHandlerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/HttpListConfigsHandlerTest.java @@ -15,7 +15,6 @@ import com.yahoo.vespa.config.server.MockProvisioner; import com.yahoo.vespa.config.server.TestComponentRegistry; import com.yahoo.vespa.config.server.TestConfigDefinitionRepo; import com.yahoo.vespa.config.server.application.OrchestratorMock; -import com.yahoo.vespa.config.server.host.HostRegistry; import com.yahoo.vespa.config.server.http.HandlerTest; import com.yahoo.vespa.config.server.http.HttpErrorResponse; import com.yahoo.vespa.config.server.http.v2.HttpListConfigsHandler.ListConfigsResponse; @@ -70,7 +69,6 @@ public class HttpListConfigsHandlerTest { .build(); TestComponentRegistry componentRegistry = new TestComponentRegistry.Builder() .configDefinitionRepo(new TestConfigDefinitionRepo()) - .configServerConfig(configserverConfig) .build(); TenantRepository tenantRepository = new TestTenantRepository.Builder() .withComponentRegistry(componentRegistry) diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ListApplicationsHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ListApplicationsHandlerTest.java index e3930c2784d..7cabd9ea7e3 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ListApplicationsHandlerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/ListApplicationsHandlerTest.java @@ -1,6 +1,7 @@ // 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.http.v2; +import com.yahoo.cloud.config.ConfigserverConfig; import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.Environment; import com.yahoo.config.provision.RegionName; @@ -16,7 +17,9 @@ import com.yahoo.vespa.config.server.http.SessionHandlerTest; import com.yahoo.vespa.config.server.tenant.TenantRepository; import com.yahoo.vespa.config.server.tenant.TestTenantRepository; import org.junit.Before; +import org.junit.Rule; import org.junit.Test; +import org.junit.rules.TemporaryFolder; import java.io.IOException; @@ -40,9 +43,19 @@ public class ListApplicationsHandlerTest { private TenantApplications applicationRepo, applicationRepo2; private ListApplicationsHandler handler; + @Rule + public TemporaryFolder temporaryFolder = new TemporaryFolder(); + @Before - public void setup() { - TenantRepository tenantRepository = new TestTenantRepository.Builder().withComponentRegistry(componentRegistry).build(); + public void setup() throws IOException { + ConfigserverConfig configserverConfig = new ConfigserverConfig.Builder() + .configServerDBDir(temporaryFolder.newFolder().getAbsolutePath()) + .configDefinitionsDir(temporaryFolder.newFolder().getAbsolutePath()) + .build(); + TenantRepository tenantRepository = new TestTenantRepository.Builder() + .withComponentRegistry(componentRegistry) + .withConfigserverConfig(configserverConfig) + .build(); tenantRepository.addTenant(mytenant); tenantRepository.addTenant(foobar); applicationRepo = tenantRepository.getTenant(mytenant).getApplicationRepo(); diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionActiveHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionActiveHandlerTest.java index 000c939188d..734382897a4 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionActiveHandlerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionActiveHandlerTest.java @@ -76,7 +76,6 @@ public class SessionActiveHandlerTest { .build(); componentRegistry = new TestComponentRegistry.Builder() .modelFactoryRegistry(new ModelFactoryRegistry(List.of((modelFactory)))) - .configServerConfig(configserverConfig) .build(); TenantRepository tenantRepository = new TestTenantRepository.Builder() .withComponentRegistry(componentRegistry) diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionContentHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionContentHandlerTest.java index 5b9cd8e4e79..2e4ebbaaff3 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionContentHandlerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionContentHandlerTest.java @@ -57,9 +57,7 @@ public class SessionContentHandlerTest extends ContentHandlerTestBase { .configDefinitionsDir(temporaryFolder.newFolder("configdefinitions").getAbsolutePath()) .fileReferencesDir(temporaryFolder.newFolder().getAbsolutePath()) .build(); - componentRegistry = new TestComponentRegistry.Builder() - .configServerConfig(configserverConfig) - .build(); + componentRegistry = new TestComponentRegistry.Builder().build(); tenantRepository = new TestTenantRepository.Builder() .withComponentRegistry(componentRegistry) diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionCreateHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionCreateHandlerTest.java index d4097bd3024..73bd9092439 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionCreateHandlerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionCreateHandlerTest.java @@ -19,7 +19,9 @@ import com.yahoo.vespa.config.server.tenant.TenantRepository; import com.yahoo.vespa.config.server.tenant.TestTenantRepository; import org.junit.Before; import org.junit.Ignore; +import org.junit.Rule; import org.junit.Test; +import org.junit.rules.TemporaryFolder; import java.io.File; import java.io.FileInputStream; @@ -62,9 +64,19 @@ public class SessionCreateHandlerTest extends SessionHandlerTest { postHeaders.put(ApplicationApiHandler.contentTypeHeader, ApplicationApiHandler.APPLICATION_X_GZIP); } + @Rule + public TemporaryFolder temporaryFolder = new TemporaryFolder(); + @Before - public void setupRepo() { - TenantRepository tenantRepository = new TestTenantRepository.Builder().withComponentRegistry(componentRegistry).build(); + public void setupRepo() throws IOException { + ConfigserverConfig configserverConfig = new ConfigserverConfig.Builder() + .configServerDBDir(temporaryFolder.newFolder().getAbsolutePath()) + .configDefinitionsDir(temporaryFolder.newFolder().getAbsolutePath()) + .build(); + TenantRepository tenantRepository = new TestTenantRepository.Builder() + .withComponentRegistry(componentRegistry) + .withConfigserverConfig(configserverConfig) + .build(); applicationRepository = new ApplicationRepository.Builder() .withTenantRepository(tenantRepository) .withProvisioner(new MockProvisioner()) diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionPrepareHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionPrepareHandlerTest.java index 3e6789320ed..56b367362b1 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionPrepareHandlerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/SessionPrepareHandlerTest.java @@ -77,7 +77,6 @@ public class SessionPrepareHandlerTest extends SessionHandlerTest { .fileReferencesDir(temporaryFolder.newFolder().getAbsolutePath()) .build(); TestComponentRegistry componentRegistry = new TestComponentRegistry.Builder() - .configServerConfig(configserverConfig) .build(); Clock clock = componentRegistry.getClock(); timeoutBudget = new TimeoutBudget(clock, Duration.ofSeconds(10)); diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/TenantHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/TenantHandlerTest.java index 0bf7cbdffa6..37f0f2c5e2f 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/TenantHandlerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/v2/TenantHandlerTest.java @@ -56,7 +56,6 @@ public class TenantHandlerTest { .fileReferencesDir(temporaryFolder.newFolder().getAbsolutePath()) .build(); TestComponentRegistry componentRegistry = new TestComponentRegistry.Builder() - .configServerConfig(configserverConfig) .build(); tenantRepository = new TestTenantRepository.Builder() .withComponentRegistry(componentRegistry) diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/maintenance/MaintainerTester.java b/configserver/src/test/java/com/yahoo/vespa/config/server/maintenance/MaintainerTester.java index 8c8c105c4c9..4dd971a37e4 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/maintenance/MaintainerTester.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/maintenance/MaintainerTester.java @@ -43,7 +43,6 @@ class MaintainerTester { .build(); GlobalComponentRegistry componentRegistry = new TestComponentRegistry.Builder() .clock(clock) - .configServerConfig(configserverConfig) .modelFactoryRegistry(new ModelFactoryRegistry(List.of(new DeployTester.CountingModelFactory(clock)))) .build(); tenantRepository = new TestTenantRepository.Builder() diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/rpc/RpcTester.java b/configserver/src/test/java/com/yahoo/vespa/config/server/rpc/RpcTester.java index d0a9698b4bb..e79ed6cafcf 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/rpc/RpcTester.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/rpc/RpcTester.java @@ -88,7 +88,6 @@ public class RpcTester implements AutoCloseable { rpcServer = createRpcServer(configserverConfig); TestComponentRegistry componentRegistry = new TestComponentRegistry.Builder() .configDefinitionRepo(new TestConfigDefinitionRepo()) - .configServerConfig(configserverConfig) .reloadListener(rpcServer) .build(); tenantRepository = new TestTenantRepository.Builder() 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 7f3422159d2..9939856d4db 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 @@ -106,9 +106,7 @@ public class SessionPreparerTest { .configServerDBDir(folder.newFolder().getAbsolutePath()) .configDefinitionsDir(folder.newFolder().getAbsolutePath()) .build(); - componentRegistry = new TestComponentRegistry.Builder() - .configServerConfig(configserverConfig) - .build(); + componentRegistry = new TestComponentRegistry.Builder().build(); preparer = createPreparer(); } 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 0ca04d51107..ed81012339d 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 @@ -89,11 +89,10 @@ public class SessionRepositoryTest { .fileReferencesDir(temporaryFolder.newFolder().getAbsolutePath()) .sessionLifetime(5) .build(); - GlobalComponentRegistry globalComponentRegistry = componentRegistryBuilder - .configServerConfig(configserverConfig) - .build(); + GlobalComponentRegistry globalComponentRegistry = componentRegistryBuilder.build(); tenantRepository = new TestTenantRepository.Builder() .withComponentRegistry(globalComponentRegistry) + .withConfigserverConfig(configserverConfig) .withCurator(curator) .withFileDistributionFactory(new MockFileDistributionFactory(configserverConfig)) .build(); diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/tenant/TenantRepositoryTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/tenant/TenantRepositoryTest.java index 8252fd71e6e..fe325488601 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/tenant/TenantRepositoryTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/tenant/TenantRepositoryTest.java @@ -14,6 +14,7 @@ import com.yahoo.config.provision.RegionName; import com.yahoo.config.provision.SystemName; import com.yahoo.config.provision.TenantName; import com.yahoo.config.provision.Zone; +import com.yahoo.vespa.config.server.ConfigServerDB; import com.yahoo.vespa.config.server.GlobalComponentRegistry; import com.yahoo.vespa.config.server.MockProvisioner; import com.yahoo.vespa.config.server.MockSecretStore; @@ -60,6 +61,7 @@ public class TenantRepositoryTest { private TenantApplicationsTest.MockReloadListener listener; private MockTenantListener tenantListener; private Curator curator; + private ConfigserverConfig configserverConfig; @Rule public ExpectedException expectedException = ExpectedException.none(); @@ -68,13 +70,18 @@ public class TenantRepositoryTest { public TemporaryFolder temporaryFolder = new TemporaryFolder(); @Before - public void setupSessions() { + public void setupSessions() throws IOException { curator = new MockCurator(); TestComponentRegistry globalComponentRegistry = new TestComponentRegistry.Builder().build(); listener = (TenantApplicationsTest.MockReloadListener) globalComponentRegistry.getReloadListener(); tenantListener = (MockTenantListener) globalComponentRegistry.getTenantListener(); assertFalse(tenantListener.tenantsLoaded); + configserverConfig = new ConfigserverConfig.Builder() + .configServerDBDir(temporaryFolder.newFolder().getAbsolutePath()) + .configDefinitionsDir(temporaryFolder.newFolder().getAbsolutePath()) + .build(); tenantRepository = new TestTenantRepository.Builder().withComponentRegistry(globalComponentRegistry) + .withConfigserverConfig(configserverConfig) .withCurator(curator) .build(); assertTrue(tenantListener.tenantsLoaded); @@ -180,13 +187,13 @@ public class TenantRepositoryTest { } @Test - public void testFailingBootstrap() throws IOException { + public void testFailingBootstrap() { tenantRepository.close(); // stop using the one setup in Before method // Should get exception if config is true expectedException.expect(RuntimeException.class); expectedException.expectMessage("Could not create all tenants when bootstrapping, failed to create: [default]"); - new FailingDuringBootstrapTenantRepository(createComponentRegistry()); + new FailingDuringBootstrapTenantRepository(createComponentRegistry(), configserverConfig); } private List<String> readZKChildren(String path) throws Exception { @@ -197,18 +204,15 @@ public class TenantRepositoryTest { assertNotNull(curator.framework().checkExists().forPath(TenantRepository.getTenantPath(tenantName).getAbsolute())); } - private GlobalComponentRegistry createComponentRegistry() throws IOException { + private GlobalComponentRegistry createComponentRegistry() { return new TestComponentRegistry.Builder() - .configServerConfig(new ConfigserverConfig(new ConfigserverConfig.Builder() - .configDefinitionsDir(temporaryFolder.newFolder("configdefs").getAbsolutePath()) - .configServerDBDir(temporaryFolder.newFolder("configserverdb").getAbsolutePath()))) .zone(new Zone(SystemName.cd, Environment.prod, RegionName.from("foo"))) .build(); } private static class FailingDuringBootstrapTenantRepository extends TenantRepository { - public FailingDuringBootstrapTenantRepository(GlobalComponentRegistry componentRegistry) { + public FailingDuringBootstrapTenantRepository(GlobalComponentRegistry componentRegistry, ConfigserverConfig configserverConfig) { super(componentRegistry, new HostRegistry(), new MockCurator(), @@ -219,7 +223,8 @@ public class TenantRepositoryTest { new InThreadExecutorService(), new MockSecretStore(), HostProvisionerProvider.withProvisioner(new MockProvisioner(), false), - new ConfigserverConfig.Builder().build()); + configserverConfig, + new ConfigServerDB(configserverConfig)); } @Override diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/tenant/TenantTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/tenant/TenantTest.java index 75d1b848f50..54e4492f08e 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/tenant/TenantTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/tenant/TenantTest.java @@ -1,12 +1,16 @@ -// 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.tenant; import com.google.common.testing.EqualsTester; +import com.yahoo.cloud.config.ConfigserverConfig; import com.yahoo.config.provision.TenantName; import com.yahoo.vespa.config.server.TestComponentRegistry; -import com.yahoo.vespa.config.server.host.HostRegistry; import org.junit.Before; +import org.junit.Rule; import org.junit.Test; +import org.junit.rules.TemporaryFolder; + +import java.io.IOException; import static org.hamcrest.CoreMatchers.not; import static org.hamcrest.Matchers.is; @@ -24,16 +28,26 @@ public class TenantTest { private Tenant t3; private Tenant t4; + @Rule + public TemporaryFolder temporaryFolder = new TemporaryFolder(); + @Before - public void setupTenant() { + public void setupTenant() throws IOException { t1 = createTenant("foo"); t2 = createTenant("foo"); t3 = createTenant("bar"); t4 = createTenant("baz"); } - private Tenant createTenant(String name) { - TenantRepository tenantRepository = new TestTenantRepository.Builder().withComponentRegistry(componentRegistry).build(); + private Tenant createTenant(String name) throws IOException { + ConfigserverConfig configserverConfig = new ConfigserverConfig.Builder() + .configServerDBDir(temporaryFolder.newFolder().getAbsolutePath()) + .configDefinitionsDir(temporaryFolder.newFolder().getAbsolutePath()) + .build(); + TenantRepository tenantRepository = new TestTenantRepository.Builder() + .withComponentRegistry(componentRegistry) + .withConfigserverConfig(configserverConfig) + .build(); TenantName tenantName = TenantName.from(name); tenantRepository.addTenant(tenantName); return tenantRepository.getTenant(tenantName); diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/tenant/TestTenantRepository.java b/configserver/src/test/java/com/yahoo/vespa/config/server/tenant/TestTenantRepository.java index 691056d13f0..2cf79224bca 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/tenant/TestTenantRepository.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/tenant/TestTenantRepository.java @@ -4,6 +4,7 @@ package com.yahoo.vespa.config.server.tenant; import com.yahoo.cloud.config.ConfigserverConfig; import com.yahoo.concurrent.InThreadExecutorService; import com.yahoo.concurrent.StripedExecutor; +import com.yahoo.vespa.config.server.ConfigServerDB; import com.yahoo.vespa.config.server.GlobalComponentRegistry; import com.yahoo.vespa.config.server.MockSecretStore; import com.yahoo.vespa.config.server.filedistribution.FileDistributionFactory; @@ -39,7 +40,8 @@ public class TestTenantRepository extends TenantRepository { new InThreadExecutorService(), new MockSecretStore(), hostProvisionerProvider, - configserverConfig); + configserverConfig, + new ConfigServerDB(configserverConfig)); } public static class Builder { |