diff options
author | Harald Musum <musum@verizonmedia.com> | 2021-01-20 23:08:06 +0100 |
---|---|---|
committer | Harald Musum <musum@verizonmedia.com> | 2021-01-20 23:08:06 +0100 |
commit | f42cd4981459a081bb402384e4629b6815171db9 (patch) | |
tree | 7f61dc1e9320845c2094bfe4841ede5569f875bf /configserver/src | |
parent | de935c02e9910ea17b567be50be987bb20144dba (diff) |
Move secret ConfigserverConfig out of GlobalComponentRegistry
Diffstat (limited to 'configserver/src')
29 files changed, 128 insertions, 84 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 ec4523c4ba0..d0b50512958 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 @@ -16,7 +16,6 @@ import java.time.Clock; */ public interface GlobalComponentRegistry { - ConfigserverConfig getConfigserverConfig(); TenantListener getTenantListener(); ReloadListener getReloadListener(); ConfigDefinitionRepo getStaticConfigDefinitionRepo(); 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 433e0971c61..489e87249d6 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 @@ -2,7 +2,6 @@ package com.yahoo.vespa.config.server; import com.google.inject.Inject; -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; @@ -20,7 +19,6 @@ public class InjectedGlobalComponentRegistry implements GlobalComponentRegistry private final ModelFactoryRegistry modelFactoryRegistry; private final RpcServer rpcServer; - private final ConfigserverConfig configserverConfig; private final ConfigDefinitionRepo staticConfigDefinitionRepo; private final Zone zone; private final ConfigServerDB configServerDB; @@ -29,21 +27,17 @@ public class InjectedGlobalComponentRegistry implements GlobalComponentRegistry @Inject public InjectedGlobalComponentRegistry(ModelFactoryRegistry modelFactoryRegistry, RpcServer rpcServer, - ConfigserverConfig configserverConfig, ConfigDefinitionRepo staticConfigDefinitionRepo, Zone zone, ConfigServerDB configServerDB) { this.modelFactoryRegistry = modelFactoryRegistry; this.rpcServer = rpcServer; - this.configserverConfig = configserverConfig; this.staticConfigDefinitionRepo = staticConfigDefinitionRepo; this.zone = zone; this.configServerDB = configServerDB; } @Override - public ConfigserverConfig getConfigserverConfig() { return configserverConfig; } - @Override public TenantListener getTenantListener() { return rpcServer; } @Override public ReloadListener getReloadListener() { return rpcServer; } 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 2b9488b7fc7..09023d06ef5 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 @@ -91,14 +91,15 @@ public class TenantApplications implements RequestHandler, HostValidator<Applica public static TenantApplications create(GlobalComponentRegistry componentRegistry, HostRegistry hostRegistry, TenantName tenantName, - Curator curator) { + Curator curator, + ConfigserverConfig configserverConfig) { return new TenantApplications(tenantName, curator, new StripedExecutor<>(new InThreadExecutorService()), new InThreadExecutorService(), Metrics.createTestMetrics(), componentRegistry.getReloadListener(), - componentRegistry.getConfigserverConfig(), + configserverConfig, hostRegistry, new TenantFileSystemDirs(componentRegistry.getConfigServerDB(), tenantName), componentRegistry.getClock()); diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/http/status/StatusHandler.java b/configserver/src/main/java/com/yahoo/vespa/config/server/http/status/StatusHandler.java index 0014d66026b..b260b1673f6 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/http/status/StatusHandler.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/http/status/StatusHandler.java @@ -2,6 +2,7 @@ package com.yahoo.vespa.config.server.http.status; import com.google.inject.Inject; +import com.yahoo.cloud.config.ConfigserverConfig; import com.yahoo.config.model.api.ModelFactory; import com.yahoo.component.Version; import com.yahoo.container.jdisc.HttpRequest; @@ -23,25 +24,27 @@ import static com.yahoo.jdisc.http.HttpResponse.Status.OK; public class StatusHandler extends HttpHandler { private final GlobalComponentRegistry componentRegistry; + private final ConfigserverConfig configserverConfig; @Inject - public StatusHandler(Context ctx, GlobalComponentRegistry componentRegistry) { + public StatusHandler(Context ctx, GlobalComponentRegistry componentRegistry, ConfigserverConfig configserverConfig) { super(ctx); this.componentRegistry = componentRegistry; + this.configserverConfig = configserverConfig; } @Override public HttpResponse handleGET(HttpRequest req) { - return new StatusResponse(OK, componentRegistry); + return new StatusResponse(OK, componentRegistry, configserverConfig); } private static class StatusResponse extends JSONResponse { - StatusResponse(int status, GlobalComponentRegistry componentRegistry) { + StatusResponse(int status, GlobalComponentRegistry componentRegistry, ConfigserverConfig configserverConfig) { super(status); Cursor configCursor = object.setObject("configserverConfig"); - SlimeUtils.copyObject(ConfigPayload.fromInstance(componentRegistry.getConfigserverConfig()).getSlime().get(), + SlimeUtils.copyObject(ConfigPayload.fromInstance(configserverConfig).getSlime().get(), configCursor); Cursor modelVersionsCursor = object.setArray("modelVersions"); diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/ActivatedModelsBuilder.java b/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/ActivatedModelsBuilder.java index f779cad245a..a377fca5bd1 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/ActivatedModelsBuilder.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/modelfactory/ActivatedModelsBuilder.java @@ -2,6 +2,7 @@ package com.yahoo.vespa.config.server.modelfactory; import com.google.common.collect.ImmutableSet; +import com.yahoo.cloud.config.ConfigserverConfig; import com.yahoo.component.Version; import com.yahoo.config.application.api.ApplicationPackage; import com.yahoo.config.model.api.ConfigDefinitionRepo; @@ -71,9 +72,10 @@ public class ActivatedModelsBuilder extends ModelsBuilder<Application> { PermanentApplicationPackage permanentApplicationPackage, FlagSource flagSource, SecretStore secretStore, - HostProvisionerProvider hostProvisionerProvider) { + HostProvisionerProvider hostProvisionerProvider, + ConfigserverConfig configserverConfig) { super(globalComponentRegistry.getModelFactoryRegistry(), - globalComponentRegistry.getConfigserverConfig(), + configserverConfig, globalComponentRegistry.getZone(), hostProvisionerProvider); this.tenant = tenant; 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 041768ec41e..6cb59341acc 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 @@ -3,6 +3,7 @@ package com.yahoo.vespa.config.server.session; import com.google.common.collect.HashMultiset; import com.google.common.collect.Multiset; +import com.yahoo.cloud.config.ConfigserverConfig; import com.yahoo.concurrent.StripedExecutor; import com.yahoo.config.FileReference; import com.yahoo.config.application.api.ApplicationPackage; @@ -102,6 +103,7 @@ public class SessionRepository { private final SessionCounter sessionCounter; private final SecretStore secretStore; private final HostProvisionerProvider hostProvisionerProvider; + private final ConfigserverConfig configserverConfig; public SessionRepository(TenantName tenantName, GlobalComponentRegistry componentRegistry, @@ -114,7 +116,8 @@ public class SessionRepository { FlagSource flagSource, ExecutorService zkCacheExecutor, SecretStore secretStore, - HostProvisionerProvider hostProvisionerProvider) { + HostProvisionerProvider hostProvisionerProvider, + ConfigserverConfig configserverConfig) { this.tenantName = tenantName; this.componentRegistry = componentRegistry; this.configCurator = ConfigCurator.create(curator); @@ -122,7 +125,7 @@ public class SessionRepository { this.sessionsPath = TenantRepository.getSessionsPath(tenantName); this.clock = componentRegistry.getClock(); this.curator = curator; - this.sessionLifetime = Duration.ofSeconds(componentRegistry.getConfigserverConfig().sessionLifetime()); + this.sessionLifetime = Duration.ofSeconds(configserverConfig.sessionLifetime()); this.zkWatcherExecutor = command -> zkWatcherExecutor.execute(tenantName, command); this.permanentApplicationPackage = permanentApplicationPackage; this.flagSource = flagSource; @@ -133,6 +136,7 @@ public class SessionRepository { this.metricUpdater = metrics.getOrCreateMetricUpdater(Metrics.createDimensions(tenantName)); this.secretStore = secretStore; this.hostProvisionerProvider = hostProvisionerProvider; + this.configserverConfig = configserverConfig; loadSessions(); // Needs to be done before creating cache below this.directoryCache = curator.createDirectoryCache(sessionsPath.getAbsolute(), false, false, zkCacheExecutor); @@ -458,7 +462,8 @@ public class SessionRepository { permanentApplicationPackage, flagSource, secretStore, - hostProvisionerProvider); + hostProvisionerProvider, + configserverConfig); // Read hosts allocated on the config server instance which created this SettableOptional<AllocatedHosts> allocatedHosts = new SettableOptional<>(applicationPackage.getAllocatedHosts()); @@ -671,7 +676,7 @@ public class SessionRepository { FileReference fileReference = sessionZKClient.readApplicationPackageReference(); log.log(Level.FINE, () -> "File reference for session id " + sessionId + ": " + fileReference); if (fileReference != null) { - File rootDir = new File(Defaults.getDefaults().underVespaHome(componentRegistry.getConfigserverConfig().fileReferencesDir())); + File rootDir = new File(Defaults.getDefaults().underVespaHome(configserverConfig.fileReferencesDir())); File sessionDir; FileDirectory fileDirectory = new FileDirectory(rootDir); try { @@ -709,7 +714,7 @@ public class SessionRepository { } private SessionZooKeeperClient createSessionZooKeeperClient(long sessionId) { - String serverId = componentRegistry.getConfigserverConfig().serverId(); + String serverId = configserverConfig.serverId(); return new SessionZooKeeperClient(curator, configCurator, tenantName, sessionId, serverId); } 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 7daf56df487..6d1565dd256 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 @@ -98,6 +98,7 @@ public class TenantRepository { private final FlagSource flagSource; private final SecretStore secretStore; private final HostProvisionerProvider hostProvisionerProvider; + private final ConfigserverConfig configserverConfig; private final ExecutorService bootstrapExecutor; private final ScheduledExecutorService checkForRemovedApplicationsService = new ScheduledThreadPoolExecutor(1, new DaemonThreadFactory("check for removed applications")); @@ -115,17 +116,19 @@ public class TenantRepository { Metrics metrics, FlagSource flagSource, SecretStore secretStore, - HostProvisionerProvider hostProvisionerProvider) { + HostProvisionerProvider hostProvisionerProvider, + ConfigserverConfig configserverConfig) { this(componentRegistry, hostRegistry, curator, metrics, new StripedExecutor<>(), - new FileDistributionFactory(componentRegistry.getConfigserverConfig()), + new FileDistributionFactory(configserverConfig), flagSource, Executors.newFixedThreadPool(1, ThreadFactoryFactory.getThreadFactory(TenantRepository.class.getName())), secretStore, - hostProvisionerProvider); + hostProvisionerProvider, + configserverConfig); } public TenantRepository(GlobalComponentRegistry componentRegistry, @@ -137,10 +140,11 @@ public class TenantRepository { FlagSource flagSource, ExecutorService zkCacheExecutor, SecretStore secretStore, - HostProvisionerProvider hostProvisionerProvider) { + HostProvisionerProvider hostProvisionerProvider, + ConfigserverConfig configserverConfig) { this.componentRegistry = componentRegistry; this.hostRegistry = hostRegistry; - ConfigserverConfig configserverConfig = componentRegistry.getConfigserverConfig(); + this.configserverConfig = configserverConfig; this.bootstrapExecutor = Executors.newFixedThreadPool(configserverConfig.numParallelTenantLoaders(), new DaemonThreadFactory("bootstrap tenants")); this.curator = curator; @@ -276,16 +280,16 @@ public class TenantRepository { zkCacheExecutor, metrics, componentRegistry.getReloadListener(), - componentRegistry.getConfigserverConfig(), + configserverConfig, hostRegistry, new TenantFileSystemDirs(componentRegistry.getConfigServerDB(), tenantName), componentRegistry.getClock()); - PermanentApplicationPackage permanentApplicationPackage = new PermanentApplicationPackage(componentRegistry.getConfigserverConfig()); + PermanentApplicationPackage permanentApplicationPackage = new PermanentApplicationPackage(configserverConfig); SessionPreparer sessionPreparer = new SessionPreparer(componentRegistry.getModelFactoryRegistry(), fileDistributionFactory, hostProvisionerProvider, permanentApplicationPackage, - componentRegistry.getConfigserverConfig(), + configserverConfig, componentRegistry.getStaticConfigDefinitionRepo(), curator, componentRegistry.getZone(), @@ -302,7 +306,8 @@ public class TenantRepository { flagSource, zkCacheExecutor, secretStore, - hostProvisionerProvider); + hostProvisionerProvider, + configserverConfig); 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 36e1698d69f..d91c00dbc11 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 @@ -129,6 +129,7 @@ public class ApplicationRepositoryTest { InMemoryFlagSource flagSource = new InMemoryFlagSource(); tenantRepository = new TestTenantRepository.Builder() .withComponentRegistry(componentRegistry) + .withConfigserverConfig(configserverConfig) .withCurator(curator) .withFileDistributionFactory(new MockFileDistributionFactory(configserverConfig)) .withFlagSource(flagSource) 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 9665e0095e9..63b292e6159 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 @@ -10,7 +10,6 @@ import com.yahoo.vespa.config.server.host.ConfigRequestHostLivenessTracker; import com.yahoo.vespa.config.server.host.HostRegistry; import com.yahoo.vespa.config.server.modelfactory.ModelFactoryRegistry; import com.yahoo.vespa.config.server.monitoring.Metrics; -import com.yahoo.vespa.config.server.provision.HostProvisionerProvider; import com.yahoo.vespa.config.server.rpc.RpcRequestHandlerProvider; import com.yahoo.vespa.config.server.rpc.RpcServer; import com.yahoo.vespa.config.server.rpc.security.NoopRpcAuthorizer; @@ -25,14 +24,12 @@ import java.util.List; import static org.hamcrest.Matchers.is; import static org.junit.Assert.assertThat; -import static org.junit.Assert.assertTrue; /** * @author Ulf Lilleengen */ public class InjectedGlobalComponentRegistryTest { - private ConfigserverConfig configserverConfig; private RpcServer rpcServer; private ConfigDefinitionRepo defRepo; private GlobalComponentRegistry globalComponentRegistry; @@ -45,7 +42,7 @@ public class InjectedGlobalComponentRegistryTest { @Before public void setupRegistry() throws IOException { modelFactoryRegistry = new ModelFactoryRegistry(List.of(new VespaModelFactory(new NullConfigModelRegistry()))); - configserverConfig = new ConfigserverConfig( + ConfigserverConfig configserverConfig = new ConfigserverConfig( new ConfigserverConfig.Builder() .configServerDBDir(temporaryFolder.newFolder("serverdb").getAbsolutePath()) .configDefinitionsDir(temporaryFolder.newFolder("configdefinitions").getAbsolutePath())); @@ -59,7 +56,6 @@ public class InjectedGlobalComponentRegistryTest { globalComponentRegistry = new InjectedGlobalComponentRegistry(modelFactoryRegistry, rpcServer, - configserverConfig, defRepo, zone, new ConfigServerDB(configserverConfig)); @@ -68,7 +64,6 @@ public class InjectedGlobalComponentRegistryTest { @Test public void testThatAllComponentsAreSetup() { assertThat(globalComponentRegistry.getModelFactoryRegistry(), is(modelFactoryRegistry)); - assertThat(globalComponentRegistry.getConfigserverConfig(), is(configserverConfig)); assertThat(globalComponentRegistry.getReloadListener().hashCode(), is(rpcServer.hashCode())); assertThat(globalComponentRegistry.getTenantListener().hashCode(), is(rpcServer.hashCode())); assertThat(globalComponentRegistry.getStaticConfigDefinitionRepo(), is(defRepo)); 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 24f59ee8675..687d9e3be5e 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 @@ -22,7 +22,6 @@ import static com.yahoo.yolean.Exceptions.uncheck; */ public class TestComponentRegistry implements GlobalComponentRegistry { - private final ConfigserverConfig configserverConfig; private final ConfigDefinitionRepo defRepo; private final ReloadListener reloadListener; private final TenantListener tenantListener; @@ -32,13 +31,12 @@ public class TestComponentRegistry implements GlobalComponentRegistry { private final ConfigServerDB configServerDB; private TestComponentRegistry(ModelFactoryRegistry modelFactoryRegistry, - ConfigserverConfig configserverConfig, ConfigDefinitionRepo defRepo, ReloadListener reloadListener, TenantListener tenantListener, Zone zone, - Clock clock) { - this.configserverConfig = configserverConfig; + Clock clock, + ConfigserverConfig configserverConfig) { this.reloadListener = reloadListener; this.tenantListener = tenantListener; this.defRepo = defRepo; @@ -93,18 +91,16 @@ public class TestComponentRegistry implements GlobalComponentRegistry { public TestComponentRegistry build() { return new TestComponentRegistry(modelFactoryRegistry, - configserverConfig, defRepo, reloadListener, tenantListener, zone, - clock); + clock, + configserverConfig); } } @Override - public ConfigserverConfig getConfigserverConfig() { return configserverConfig; } - @Override public TenantListener getTenantListener() { return tenantListener; } @Override public ReloadListener getReloadListener() { return reloadListener; } 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 732c9385608..26c3db7377d 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 @@ -85,7 +85,7 @@ public class TenantApplicationsTest { .build(); tenantRepository.addTenant(TenantRepository.HOSTED_VESPA_TENANT); tenantRepository.addTenant(tenantName); - applications = TenantApplications.create(componentRegistry, hostRegistry, tenantName, curator); + applications = TenantApplications.create(componentRegistry, hostRegistry, tenantName, curator, configserverConfig); } @Test @@ -178,7 +178,11 @@ public class TenantApplicationsTest { @Test public void testListConfigs() throws IOException, SAXException { - applications = TenantApplications.create(componentRegistry, new HostRegistry(), TenantName.defaultName(), new MockCurator()); + applications = TenantApplications.create(componentRegistry, + new HostRegistry(), + TenantName.defaultName(), + new MockCurator(), + new ConfigserverConfig.Builder().build()); assertdefaultAppNotFound(); VespaModel model = new VespaModel(FilesApplicationPackage.fromFile(new File("src/test/apps/app"))); @@ -213,7 +217,7 @@ public class TenantApplicationsTest { } private TenantApplications createZKAppRepo() { - return TenantApplications.create(componentRegistry, new HostRegistry(), tenantName, curator); + return TenantApplications.create(componentRegistry, new HostRegistry(), tenantName, curator, new ConfigserverConfig.Builder().build()); } 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 eb8f633f4ba..c5292133bfd 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 @@ -291,6 +291,7 @@ public class DeployTester { TestTenantRepository.Builder builder = new TestTenantRepository.Builder() .withComponentRegistry(testComponentRegistryBuilder.build()) + .withConfigserverConfig(configserverConfig) .withCurator(curator) .withMetrics(Optional.ofNullable(metrics).orElse(Metrics.createTestMetrics())) .withFileDistributionFactory(new MockFileDistributionFactory(configserverConfig)); 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 3631922f844..0cc5cab4714 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 @@ -59,7 +59,10 @@ public class HttpGetConfigHandlerTest { .configDefinitionRepo(new TestConfigDefinitionRepo()) .configServerConfig(configserverConfig) .build(); - TenantRepository tenantRepository = new TestTenantRepository.Builder().withComponentRegistry(componentRegistry).build(); + TenantRepository tenantRepository = new TestTenantRepository.Builder() + .withComponentRegistry(componentRegistry) + .withConfigserverConfig(configserverConfig) + .build(); tenantRepository.addTenant(tenant); ApplicationRepository applicationRepository = new ApplicationRepository.Builder() .withTenantRepository(tenantRepository) 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 cdf89eda367..9a3550aa36a 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 @@ -64,7 +64,10 @@ public class HttpListConfigsHandlerTest { .configDefinitionRepo(new TestConfigDefinitionRepo()) .configServerConfig(configserverConfig) .build(); - TenantRepository tenantRepository = new TestTenantRepository.Builder().withComponentRegistry(componentRegistry).build(); + TenantRepository tenantRepository = new TestTenantRepository.Builder() + .withComponentRegistry(componentRegistry) + .withConfigserverConfig(configserverConfig) + .build(); tenantRepository.addTenant(tenant); ApplicationRepository applicationRepository = new ApplicationRepository.Builder() .withTenantRepository(tenantRepository) diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/status/StatusHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/status/StatusHandlerTest.java index 52e9591e63c..1389100ed22 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/status/StatusHandlerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/status/StatusHandlerTest.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.http.status; import com.fasterxml.jackson.databind.JsonNode; @@ -25,14 +25,14 @@ public class StatusHandlerTest { @Test public void require_that_handler_works() throws IOException { TestComponentRegistry componentRegistry = new TestComponentRegistry.Builder().build(); - StatusHandler handler = new StatusHandler(StatusHandler.testOnlyContext(), componentRegistry); + ConfigserverConfig configserverConfig = new ConfigserverConfig.Builder().build(); + StatusHandler handler = new StatusHandler(StatusHandler.testOnlyContext(), componentRegistry, configserverConfig); HttpResponse response = handler.handle(HttpRequest.createTestRequest("/status", GET)); JsonNode jsonNode = mapper.readTree(SessionHandlerTest.getRenderedString(response)); - ConfigserverConfig expectedConfig = componentRegistry.getConfigserverConfig(); - assertEquals(expectedConfig.rpcport(), jsonNode.get("configserverConfig").get("rpcport").asInt()); - assertEquals(expectedConfig.applicationDirectory(), jsonNode.get("configserverConfig").get("applicationDirectory").asText()); + assertEquals(configserverConfig.rpcport(), jsonNode.get("configserverConfig").get("rpcport").asInt()); + assertEquals(configserverConfig.applicationDirectory(), jsonNode.get("configserverConfig").get("applicationDirectory").asText()); assertEquals(1, jsonNode.get("modelVersions").size()); } 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 02129a1b5cd..f894a254c30 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 @@ -52,7 +52,6 @@ public class ApplicationContentHandlerTest extends ContentHandlerTestBase { @Before public void setupHandler() throws IOException { - ConfigserverConfig configserverConfig = new ConfigserverConfig.Builder() .configServerDBDir(temporaryFolder.newFolder("serverdb").getAbsolutePath()) .configDefinitionsDir(temporaryFolder.newFolder("configdefinitions").getAbsolutePath()) @@ -63,7 +62,10 @@ public class ApplicationContentHandlerTest extends ContentHandlerTestBase { .build(); Clock clock = componentRegistry.getClock(); - TenantRepository tenantRepository = new TestTenantRepository.Builder().withComponentRegistry(componentRegistry).build(); + TenantRepository tenantRepository = new TestTenantRepository.Builder() + .withComponentRegistry(componentRegistry) + .withConfigserverConfig(configserverConfig) + .build(); tenantRepository.addTenant(tenantName1); tenantRepository.addTenant(tenantName2); 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 671faa42f7b..5e738f14832 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 @@ -57,7 +57,10 @@ public class HostHandlerTest { .zone(zone) .configServerConfig(configserverConfig) .build(); - TenantRepository tenantRepository = new TestTenantRepository.Builder().withComponentRegistry(componentRegistry).build(); + TenantRepository tenantRepository = new TestTenantRepository.Builder() + .withComponentRegistry(componentRegistry) + .withConfigserverConfig(configserverConfig) + .build(); tenantRepository.addTenant(mytenant); applicationRepository = new ApplicationRepository.Builder() .withTenantRepository(tenantRepository) 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 d32734cd571..d136be6ddfc 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 @@ -71,6 +71,7 @@ public class HttpGetConfigHandlerTest { MockProvisioner provisioner = new MockProvisioner(); TenantRepository tenantRepository = new TestTenantRepository.Builder() .withComponentRegistry(componentRegistry) + .withConfigserverConfig(configserverConfig) .withHostProvisionerProvider(HostProvisionerProvider.withProvisioner(provisioner, false)) .build(); tenantRepository.addTenant(tenant); 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 cf04c8df56c..cf1ba038688 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 @@ -72,7 +72,10 @@ public class HttpListConfigsHandlerTest { .configDefinitionRepo(new TestConfigDefinitionRepo()) .configServerConfig(configserverConfig) .build(); - TenantRepository tenantRepository = new TestTenantRepository.Builder().withComponentRegistry(componentRegistry).build(); + TenantRepository tenantRepository = new TestTenantRepository.Builder() + .withComponentRegistry(componentRegistry) + .withConfigserverConfig(configserverConfig) + .build(); tenantRepository.addTenant(tenant); ApplicationRepository applicationRepository = new ApplicationRepository.Builder() .withTenantRepository(tenantRepository) 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 24176d17c38..000c939188d 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 @@ -78,7 +78,10 @@ public class SessionActiveHandlerTest { .modelFactoryRegistry(new ModelFactoryRegistry(List.of((modelFactory)))) .configServerConfig(configserverConfig) .build(); - TenantRepository tenantRepository = new TestTenantRepository.Builder().withComponentRegistry(componentRegistry).build(); + TenantRepository tenantRepository = new TestTenantRepository.Builder() + .withComponentRegistry(componentRegistry) + .withConfigserverConfig(configserverConfig) + .build(); tenantRepository.addTenant(tenantName); applicationRepository = new ApplicationRepository.Builder() .withTenantRepository(tenantRepository) 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 867dbdfe65a..5b9cd8e4e79 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 @@ -61,7 +61,10 @@ public class SessionContentHandlerTest extends ContentHandlerTestBase { .configServerConfig(configserverConfig) .build(); - tenantRepository = new TestTenantRepository.Builder().withComponentRegistry(componentRegistry).build(); + tenantRepository = new TestTenantRepository.Builder() + .withComponentRegistry(componentRegistry) + .withConfigserverConfig(configserverConfig) + .build(); tenantRepository.addTenant(tenantName); ApplicationRepository applicationRepository = new ApplicationRepository.Builder() 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 56afe1e4a08..d4097bd3024 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 @@ -1,6 +1,7 @@ // 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.http.v2; +import com.yahoo.cloud.config.ConfigserverConfig; import com.yahoo.config.application.api.ApplicationFile; import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.TenantName; @@ -165,7 +166,7 @@ public class SessionCreateHandlerTest extends SessionHandlerTest { private SessionCreateHandler createHandler() { return new SessionCreateHandler(SessionCreateHandler.testOnlyContext(), applicationRepository, - componentRegistry.getConfigserverConfig()); + new ConfigserverConfig.Builder().build()); } private HttpRequest post() throws FileNotFoundException { 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 b87f24cf06d..3e6789320ed 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 @@ -61,7 +61,7 @@ public class SessionPrepareHandlerTest extends SessionHandlerTest { private TimeoutBudget timeoutBudget; private ApplicationRepository applicationRepository; - private TestComponentRegistry componentRegistry; + private ConfigserverConfig configserverConfig; private String preparedMessage = " prepared.\"}"; private String tenantMessage = ""; private TenantRepository tenantRepository; @@ -71,18 +71,19 @@ public class SessionPrepareHandlerTest extends SessionHandlerTest { @Before public void setupRepo() throws IOException { - ConfigserverConfig configserverConfig = new ConfigserverConfig.Builder() + configserverConfig = new ConfigserverConfig.Builder() .configServerDBDir(temporaryFolder.newFolder().getAbsolutePath()) .configDefinitionsDir(temporaryFolder.newFolder().getAbsolutePath()) .fileReferencesDir(temporaryFolder.newFolder().getAbsolutePath()) .build(); - componentRegistry = new TestComponentRegistry.Builder() + TestComponentRegistry componentRegistry = new TestComponentRegistry.Builder() .configServerConfig(configserverConfig) .build(); Clock clock = componentRegistry.getClock(); timeoutBudget = new TimeoutBudget(clock, Duration.ofSeconds(10)); tenantRepository = new TestTenantRepository.Builder() .withComponentRegistry(componentRegistry) + .withConfigserverConfig(configserverConfig) .withCurator(curator) .build(); tenantRepository.addTenant(tenant); @@ -255,7 +256,7 @@ public class SessionPrepareHandlerTest extends SessionHandlerTest { String exceptionMessage = "Out of capacity"; FailingSessionPrepareHandler handler = new FailingSessionPrepareHandler(SessionPrepareHandler.testOnlyContext(), applicationRepository, - componentRegistry.getConfigserverConfig(), + configserverConfig, new OutOfCapacityException(exceptionMessage)); HttpResponse response = handler.handle(createTestRequest(pathPrefix, HttpRequest.Method.PUT, Cmd.PREPARED, sessionId)); assertEquals(400, response.getStatus()); @@ -270,7 +271,7 @@ public class SessionPrepareHandlerTest extends SessionHandlerTest { String exceptionMessage = "nullpointer thrown in test handler"; FailingSessionPrepareHandler handler = new FailingSessionPrepareHandler(SessionPrepareHandler.testOnlyContext(), applicationRepository, - componentRegistry.getConfigserverConfig(), + configserverConfig, new NullPointerException(exceptionMessage)); HttpResponse response = handler.handle(createTestRequest(pathPrefix, HttpRequest.Method.PUT, Cmd.PREPARED, sessionId)); assertEquals(500, response.getStatus()); @@ -285,7 +286,7 @@ public class SessionPrepareHandlerTest extends SessionHandlerTest { long sessionId = applicationRepository.createSession(applicationId(), timeoutBudget, app); FailingSessionPrepareHandler handler = new FailingSessionPrepareHandler(SessionPrepareHandler.testOnlyContext(), applicationRepository, - componentRegistry.getConfigserverConfig(), + configserverConfig, new ApplicationLockException(new UncheckedTimeoutException(exceptionMessage))); HttpResponse response = handler.handle(createTestRequest(pathPrefix, HttpRequest.Method.PUT, Cmd.PREPARED, sessionId)); assertEquals(500, response.getStatus()); @@ -320,10 +321,7 @@ public class SessionPrepareHandlerTest extends SessionHandlerTest { } private SessionHandler createHandler() { - return new SessionPrepareHandler( - SessionPrepareHandler.testOnlyContext(), - applicationRepository, - componentRegistry.getConfigserverConfig()); + return new SessionPrepareHandler(SessionPrepareHandler.testOnlyContext(), applicationRepository, configserverConfig); } private HttpResponse request(HttpRequest.Method put, long l) { 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 d9f5f094023..0bf7cbdffa6 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 @@ -58,7 +58,10 @@ public class TenantHandlerTest { TestComponentRegistry componentRegistry = new TestComponentRegistry.Builder() .configServerConfig(configserverConfig) .build(); - tenantRepository = new TestTenantRepository.Builder().withComponentRegistry(componentRegistry).build(); + 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/maintenance/MaintainerTester.java b/configserver/src/test/java/com/yahoo/vespa/config/server/maintenance/MaintainerTester.java index 3e9cbc042bd..8c8c105c4c9 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 @@ -49,6 +49,7 @@ class MaintainerTester { tenantRepository = new TestTenantRepository.Builder() .withComponentRegistry(componentRegistry) .withHostProvisionerProvider(HostProvisionerProvider.withProvisioner(provisioner, true)) + .withConfigserverConfig(configserverConfig) .build(); applicationRepository = new ApplicationRepository.Builder() .withTenantRepository(tenantRepository) 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 ffc60d01732..d0a9698b4bb 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 @@ -94,6 +94,7 @@ public class RpcTester implements AutoCloseable { tenantRepository = new TestTenantRepository.Builder() .withComponentRegistry(componentRegistry) .withHostRegistry(hostRegistry) + .withConfigserverConfig(configserverConfig) .build(); tenantRepository.addTenant(tenantName); startRpcServer(); 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 c719efd7645..7f3422159d2 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 @@ -89,6 +89,7 @@ public class SessionPreparerTest { private SessionPreparer preparer; private TestComponentRegistry componentRegistry; private final MockSecretStore secretStore = new MockSecretStore(); + private ConfigserverConfig configserverConfig; @Rule public TemporaryFolder folder = new TemporaryFolder(); @@ -100,12 +101,13 @@ public class SessionPreparerTest { public void setUp() throws IOException { curator = new MockCurator(); configCurator = ConfigCurator.create(curator); + configserverConfig = new ConfigserverConfig.Builder() + .fileReferencesDir(folder.newFolder().getAbsolutePath()) + .configServerDBDir(folder.newFolder().getAbsolutePath()) + .configDefinitionsDir(folder.newFolder().getAbsolutePath()) + .build(); componentRegistry = new TestComponentRegistry.Builder() - .configServerConfig(new ConfigserverConfig.Builder() - .fileReferencesDir(folder.newFolder().getAbsolutePath()) - .configServerDBDir(folder.newFolder().getAbsolutePath()) - .configDefinitionsDir(folder.newFolder().getAbsolutePath()) - .build()) + .configServerConfig(configserverConfig) .build(); preparer = createPreparer(); } @@ -124,10 +126,10 @@ public class SessionPreparerTest { HostProvisionerProvider hostProvisionerProvider) { return new SessionPreparer( modelFactoryRegistry, - new MockFileDistributionFactory(componentRegistry.getConfigserverConfig()), + new MockFileDistributionFactory(configserverConfig), hostProvisionerProvider, - new PermanentApplicationPackage(componentRegistry.getConfigserverConfig()), - componentRegistry.getConfigserverConfig(), + new PermanentApplicationPackage(configserverConfig), + configserverConfig, componentRegistry.getStaticConfigDefinitionRepo(), curator, componentRegistry.getZone(), 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 c843b5f6119..8252fd71e6e 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 @@ -218,7 +218,8 @@ public class TenantRepositoryTest { new InMemoryFlagSource(), new InThreadExecutorService(), new MockSecretStore(), - HostProvisionerProvider.withProvisioner(new MockProvisioner(), false)); + HostProvisionerProvider.withProvisioner(new MockProvisioner(), false), + new ConfigserverConfig.Builder().build()); } @Override 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 b4922e1f163..691056d13f0 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 @@ -1,6 +1,7 @@ // 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.yahoo.cloud.config.ConfigserverConfig; import com.yahoo.concurrent.InThreadExecutorService; import com.yahoo.concurrent.StripedExecutor; import com.yahoo.vespa.config.server.GlobalComponentRegistry; @@ -26,7 +27,8 @@ public class TestTenantRepository extends TenantRepository { Metrics metrics, FileDistributionFactory fileDistributionFactory, FlagSource flagSource, - HostProvisionerProvider hostProvisionerProvider) { + HostProvisionerProvider hostProvisionerProvider, + ConfigserverConfig configserverConfig) { super(componentRegistry, hostRegistry, curator, @@ -36,7 +38,8 @@ public class TestTenantRepository extends TenantRepository { flagSource, new InThreadExecutorService(), new MockSecretStore(), - hostProvisionerProvider); + hostProvisionerProvider, + configserverConfig); } public static class Builder { @@ -48,6 +51,7 @@ public class TestTenantRepository extends TenantRepository { FileDistributionFactory fileDistributionFactory = null; FlagSource flagSource = new InMemoryFlagSource(); HostProvisionerProvider hostProvisionerProvider = HostProvisionerProvider.empty(); + ConfigserverConfig configserverConfig = new ConfigserverConfig.Builder().build(); public Builder withFlagSource(FlagSource flagSource) { this.flagSource = flagSource; @@ -84,16 +88,22 @@ public class TestTenantRepository extends TenantRepository { return this; } + public Builder withConfigserverConfig(ConfigserverConfig configserverConfig) { + this.configserverConfig = configserverConfig; + return this; + } + public TenantRepository build() { if (fileDistributionFactory == null) - fileDistributionFactory = new FileDistributionFactory(componentRegistry.getConfigserverConfig()); + fileDistributionFactory = new FileDistributionFactory(configserverConfig); return new TestTenantRepository(componentRegistry, hostRegistry, curator, metrics, fileDistributionFactory, flagSource, - hostProvisionerProvider); + hostProvisionerProvider, + configserverConfig); } } |