diff options
author | gjoranv <gv@verizonmedia.com> | 2020-06-22 12:39:35 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-06-22 12:39:35 +0200 |
commit | f8ca44ae9570a3e5241ad64a3d62334cd4877ff6 (patch) | |
tree | 1908199826803e3400cb87ed82dcc0dde3e09173 | |
parent | 549528c9de2aa47e7e6b5d240aea4e3b53b8b8b7 (diff) | |
parent | a80c104ad612a541158c61da4fd1f43cb51d764c (diff) |
Merge pull request #13652 from vespa-engine/hmusum/configserver-refactoring-14
Config server refactoring, part 14
23 files changed, 27 insertions, 88 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/NotFoundException.java b/configserver/src/main/java/com/yahoo/vespa/config/server/NotFoundException.java index 9d7dbfe6784..ce9a76b53f7 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/NotFoundException.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/NotFoundException.java @@ -2,9 +2,7 @@ package com.yahoo.vespa.config.server; /** - * No resource found - * @author musum - * @since 6.55 + * @author hmusum */ public class NotFoundException extends IllegalArgumentException { public NotFoundException(String s) { diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/SuperModelController.java b/configserver/src/main/java/com/yahoo/vespa/config/server/SuperModelController.java index 657e113475b..23baac3d02e 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/SuperModelController.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/SuperModelController.java @@ -23,7 +23,6 @@ import java.io.StringReader; * reloading of config as well. * * @author Ulf Lilleengen - * @since 5.9 */ public class SuperModelController { diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/SuperModelGenerationCounter.java b/configserver/src/main/java/com/yahoo/vespa/config/server/SuperModelGenerationCounter.java index 6d5c4a81c92..eb57b9346c7 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/SuperModelGenerationCounter.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/SuperModelGenerationCounter.java @@ -10,7 +10,6 @@ import com.yahoo.vespa.curator.recipes.CuratorCounter; * Distributed global generation counter for the super model. * * @author Ulf Lilleengen - * @since 5.9 */ public class SuperModelGenerationCounter implements GenerationCounter { diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/SuperModelManager.java b/configserver/src/main/java/com/yahoo/vespa/config/server/SuperModelManager.java index 57911a24d7b..ac862dd6e5f 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/SuperModelManager.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/SuperModelManager.java @@ -43,7 +43,7 @@ public class SuperModelManager implements SuperModelProvider { private final GenerationCounter generationCounter; // The initial set of applications to be deployed on bootstrap. - private Optional<Set<ApplicationId>> bootstrapApplicationSet = Optional.empty(); + private final Optional<Set<ApplicationId>> bootstrapApplicationSet = Optional.empty(); @Inject public SuperModelManager(ConfigserverConfig configserverConfig, diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/UnknownConfigDefinitionException.java b/configserver/src/main/java/com/yahoo/vespa/config/server/UnknownConfigDefinitionException.java index 8ec655b9aea..4b434a0cbe4 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/UnknownConfigDefinitionException.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/UnknownConfigDefinitionException.java @@ -5,7 +5,6 @@ package com.yahoo.vespa.config.server; * Indicates that a config definition (typically a def file schema) was unknown to the config server * * @author Ulf Lilleengen - * @since 5.1 */ public class UnknownConfigDefinitionException extends IllegalArgumentException { public UnknownConfigDefinitionException(String s) { diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/session/FileDistributionFactory.java b/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileDistributionFactory.java index 15bc3c1fb46..1cfe30270c3 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/session/FileDistributionFactory.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/filedistribution/FileDistributionFactory.java @@ -1,12 +1,10 @@ -// Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. -package com.yahoo.vespa.config.server.session; +// 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.inject.Inject; import com.yahoo.cloud.config.ConfigserverConfig; import com.yahoo.jrt.Supervisor; import com.yahoo.jrt.Transport; -import com.yahoo.vespa.config.server.filedistribution.FileDistributionImpl; -import com.yahoo.vespa.config.server.filedistribution.FileDistributionProvider; import java.io.File; diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/ConfigServerMaintenance.java b/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/ConfigServerMaintenance.java index 4e6a541793d..c9866ac6dc0 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/ConfigServerMaintenance.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/maintenance/ConfigServerMaintenance.java @@ -6,7 +6,7 @@ import com.yahoo.cloud.config.ConfigserverConfig; import com.yahoo.component.AbstractComponent; import com.yahoo.config.provision.SystemName; import com.yahoo.vespa.config.server.ApplicationRepository; -import com.yahoo.vespa.config.server.session.FileDistributionFactory; +import com.yahoo.vespa.config.server.filedistribution.FileDistributionFactory; import com.yahoo.vespa.curator.Curator; import com.yahoo.vespa.flags.FlagSource; 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 4542b8267e8..3b12fa8b199 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 @@ -32,6 +32,7 @@ import com.yahoo.vespa.config.server.application.PermanentApplicationPackage; 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; 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 7e22e4b227e..f05463b8e3b 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 @@ -600,6 +600,8 @@ public class SessionRepository { return getLocalSessions().toString(); } + public ReloadHandler getReloadHandler() { return reloadHandler; } + private static class FileTransaction extends AbstractTransaction { public static FileTransaction from(FileOperation operation) { diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/Tenant.java b/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/Tenant.java index cbcb96d0b36..bf0601bf2f1 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/Tenant.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/Tenant.java @@ -3,7 +3,6 @@ package com.yahoo.vespa.config.server.tenant; import com.yahoo.config.provision.TenantName; import com.yahoo.path.Path; -import com.yahoo.vespa.config.server.ReloadHandler; import com.yahoo.vespa.config.server.RequestHandler; import com.yahoo.vespa.config.server.application.TenantApplications; import com.yahoo.vespa.config.server.session.SessionRepository; @@ -30,34 +29,22 @@ public class Tenant implements TenantHandlerProvider { private final SessionRepository sessionRepository; private final TenantApplications applicationRepo; private final RequestHandler requestHandler; - private final ReloadHandler reloadHandler; private final Curator curator; Tenant(TenantName name, SessionRepository sessionRepository, RequestHandler requestHandler, - ReloadHandler reloadHandler, TenantApplications applicationRepo, Curator curator) { this.name = name; this.path = TenantRepository.getTenantPath(name); this.requestHandler = requestHandler; - this.reloadHandler = reloadHandler; this.sessionRepository = sessionRepository; this.applicationRepo = applicationRepo; this.curator = curator; } /** - * The reload handler for this - * - * @return handler - */ - public ReloadHandler getReloadHandler() { - return reloadHandler; - } - - /** * The request handler for this * * @return handler diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/TenantHandlerProvider.java b/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/TenantHandlerProvider.java index b19f8bf8d0b..5b49bd69758 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/TenantHandlerProvider.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/tenant/TenantHandlerProvider.java @@ -1,17 +1,15 @@ // 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.tenant; -import com.yahoo.vespa.config.server.ReloadHandler; import com.yahoo.vespa.config.server.RequestHandler; /** - * Represents something that can provide request and reload handlers of a tenant. + * Represents something that can provide a request handler for a tenant. * * @author Ulf Lilleengen */ public interface TenantHandlerProvider { RequestHandler getRequestHandler(); - ReloadHandler getReloadHandler(); } 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 304fbb6786a..2c9d9bf239c 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 @@ -226,8 +226,8 @@ public class TenantRepository { componentRegistry.getFlagSource(), componentRegistry.getSessionPreparer()); log.log(Level.INFO, "Creating tenant '" + tenantName + "'"); - Tenant tenant = new Tenant(tenantName, sessionRepository, requestHandler, - reloadHandler, applicationRepo, componentRegistry.getCurator()); + Tenant tenant = new Tenant(tenantName, sessionRepository, requestHandler, applicationRepo, + componentRegistry.getCurator()); notifyNewTenant(tenant); tenants.putIfAbsent(tenantName, tenant); } @@ -258,7 +258,7 @@ public class TenantRepository { } /** - * Writes the tenants that should always be present into ZooKeeper. Will not fail if the node + * Creates the tenants that should always be present into ZooKeeper. Will not fail if the node * already exists, as this is OK and might happen when several config servers start at the * same time and try to call this method. */ diff --git a/configserver/src/main/java/com/yahoo/vespa/serviceview/Cluster.java b/configserver/src/main/java/com/yahoo/vespa/serviceview/Cluster.java index 3251ba6c382..d7005de5b07 100644 --- a/configserver/src/main/java/com/yahoo/vespa/serviceview/Cluster.java +++ b/configserver/src/main/java/com/yahoo/vespa/serviceview/Cluster.java @@ -9,7 +9,7 @@ import com.google.common.collect.ImmutableList; /** * Model a single cluster of services in the Vespa model. * - * @author <a href="mailto:steinar@yahoo-inc.com">Steinar Knutsen</a> + * @author Steinar Knutsen */ public final class Cluster implements Comparable<Cluster> { diff --git a/configserver/src/main/java/com/yahoo/vespa/serviceview/ProxyErrorMapper.java b/configserver/src/main/java/com/yahoo/vespa/serviceview/ProxyErrorMapper.java index 83bdad51935..8adf281ced0 100644 --- a/configserver/src/main/java/com/yahoo/vespa/serviceview/ProxyErrorMapper.java +++ b/configserver/src/main/java/com/yahoo/vespa/serviceview/ProxyErrorMapper.java @@ -9,7 +9,7 @@ import javax.ws.rs.ext.Provider; /** * Convert exceptions thrown by the internal REST client into a little more helpful responses. * - * @author <a href="mailto:steinar@yahoo-inc.com">Steinar Knutsen</a> + * @author Steinar Knutsen */ @Provider public class ProxyErrorMapper implements ExceptionMapper<WebApplicationException> { diff --git a/configserver/src/main/resources/configserver-app/services.xml b/configserver/src/main/resources/configserver-app/services.xml index d3b39e572ee..dac10ac4e59 100644 --- a/configserver/src/main/resources/configserver-app/services.xml +++ b/configserver/src/main/resources/configserver-app/services.xml @@ -14,7 +14,7 @@ <component id="com.yahoo.vespa.zookeeper.VespaZooKeeperServerImpl" bundle="zookeeper-server" /> <component id="com.yahoo.vespa.config.server.rpc.RpcServer" bundle="configserver" /> <component id="com.yahoo.vespa.config.server.ConfigServerDB" bundle="configserver" /> - <component id="com.yahoo.vespa.config.server.session.FileDistributionFactory" bundle="configserver" /> + <component id="com.yahoo.vespa.config.server.filedistribution.FileDistributionFactory" bundle="configserver" /> <component id="com.yahoo.vespa.config.server.modelfactory.ModelFactoryRegistry" bundle="configserver" /> <component id="com.yahoo.vespa.config.server.SuperModelGenerationCounter" bundle="configserver" /> <component id="com.yahoo.vespa.config.server.SuperModelManager" bundle="configserver" /> diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/MockReloadHandler.java b/configserver/src/test/java/com/yahoo/vespa/config/server/MockReloadHandler.java deleted file mode 100644 index 6e9299c1a61..00000000000 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/MockReloadHandler.java +++ /dev/null @@ -1,28 +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; - -import com.yahoo.config.provision.ApplicationId; -import com.yahoo.vespa.config.server.application.ApplicationSet; - -import java.util.Set; - -/** - * @author Ulf Lilleengen - */ -public class MockReloadHandler implements ReloadHandler { - - public volatile ApplicationId lastRemoved = null; - - @Override - public void reloadConfig(ApplicationSet application) { - } - - @Override - public void removeApplication(ApplicationId applicationId) { - lastRemoved = applicationId; - } - - @Override - public void removeApplicationsExcept(Set<ApplicationId> applicationIds) { } - -} 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 bc16f44b405..2e0466c27b1 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 @@ -16,8 +16,8 @@ import com.yahoo.vespa.config.server.host.HostRegistries; 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.session.FileDistributionFactory; -import com.yahoo.vespa.config.server.session.MockFileDistributionFactory; +import com.yahoo.vespa.config.server.filedistribution.FileDistributionFactory; +import com.yahoo.vespa.config.server.filedistribution.MockFileDistributionFactory; import com.yahoo.vespa.config.server.session.SessionPreparer; import com.yahoo.vespa.config.server.tenant.MockTenantListener; import com.yahoo.vespa.config.server.tenant.TenantListener; diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/session/MockFileDistributionFactory.java b/configserver/src/test/java/com/yahoo/vespa/config/server/filedistribution/MockFileDistributionFactory.java index ae626499d30..78729156b93 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/session/MockFileDistributionFactory.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/filedistribution/MockFileDistributionFactory.java @@ -1,8 +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.session; +// 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.vespa.config.server.filedistribution.MockFileDistributionProvider; import java.io.File; @@ -22,4 +21,5 @@ public class MockFileDistributionFactory extends FileDistributionFactory { public com.yahoo.vespa.config.server.filedistribution.FileDistributionProvider createProvider(File applicationFile) { return mockFileDistributionProvider; } + } diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/rpc/MockRequestHandler.java b/configserver/src/test/java/com/yahoo/vespa/config/server/rpc/MockRequestHandler.java index 0f6cd10d564..21b85e0d09c 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/rpc/MockRequestHandler.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/rpc/MockRequestHandler.java @@ -101,9 +101,4 @@ public class MockRequestHandler implements RequestHandler, ReloadHandler, Tenant return this; } - @Override - public ReloadHandler getReloadHandler() { - return this; - } - } 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 e2ef115aad4..46b8754ebe0 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 @@ -33,6 +33,7 @@ import com.yahoo.vespa.config.server.TestComponentRegistry; import com.yahoo.vespa.config.server.TimeoutBudgetTest; import com.yahoo.vespa.config.server.application.PermanentApplicationPackage; import com.yahoo.vespa.config.server.deploy.DeployHandlerLogger; +import com.yahoo.vespa.config.server.filedistribution.MockFileDistributionFactory; import com.yahoo.vespa.config.server.host.HostRegistry; import com.yahoo.vespa.config.server.http.InvalidApplicationException; import com.yahoo.vespa.config.server.model.TestModelFactory; diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/tenant/MockTenantListener.java b/configserver/src/test/java/com/yahoo/vespa/config/server/tenant/MockTenantListener.java index bbe68d8dc68..109a2220e0d 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/tenant/MockTenantListener.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/tenant/MockTenantListener.java @@ -2,12 +2,9 @@ package com.yahoo.vespa.config.server.tenant; import com.yahoo.config.provision.TenantName; -import com.yahoo.vespa.config.server.tenant.TenantHandlerProvider; -import com.yahoo.vespa.config.server.tenant.TenantListener; /** * @author Ulf Lilleengen - * @since 5.8 */ public class MockTenantListener implements TenantListener { TenantName tenantCreatedName; @@ -30,4 +27,5 @@ public class MockTenantListener implements TenantListener { public void onTenantsLoaded() { tenantsLoaded = true; } + } diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/tenant/MockTenantProvider.java b/configserver/src/test/java/com/yahoo/vespa/config/server/tenant/MockTenantProvider.java index ef97451457d..4f839fbd811 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/tenant/MockTenantProvider.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/tenant/MockTenantProvider.java @@ -1,10 +1,8 @@ // Copyright 2017 Yahoo Holdings. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. package com.yahoo.vespa.config.server.tenant; -import com.yahoo.vespa.config.server.MockReloadHandler; -import com.yahoo.vespa.config.server.rpc.MockRequestHandler; -import com.yahoo.vespa.config.server.ReloadHandler; import com.yahoo.vespa.config.server.RequestHandler; +import com.yahoo.vespa.config.server.rpc.MockRequestHandler; /** * @author Ulf Lilleengen @@ -12,7 +10,6 @@ import com.yahoo.vespa.config.server.RequestHandler; public class MockTenantProvider implements TenantHandlerProvider { private final MockRequestHandler requestHandler; - private final MockReloadHandler reloadHandler; public MockTenantProvider() { this(false); @@ -20,15 +17,9 @@ public class MockTenantProvider implements TenantHandlerProvider { public MockTenantProvider(boolean pretendToHaveLoadedAnyApplication) { this.requestHandler = new MockRequestHandler(pretendToHaveLoadedAnyApplication); - this.reloadHandler = new MockReloadHandler(); } @Override public RequestHandler getRequestHandler() { return requestHandler; } - @Override - public ReloadHandler getReloadHandler() { - return reloadHandler; - } - } 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 51b0a36d8f4..104b94b274f 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 @@ -82,9 +82,10 @@ public class TenantRepositoryTest { @Test public void testListenersAdded() throws IOException, SAXException { - tenantRepository.getTenant(tenant1).getApplicationRepo().createApplication(ApplicationId.defaultId()); - tenantRepository.getTenant(tenant1).getApplicationRepo().createPutTransaction(ApplicationId.defaultId(), 4).commit(); - tenantRepository.getTenant(tenant1).getReloadHandler().reloadConfig(ApplicationSet.fromSingle( + Tenant tenant = tenantRepository.getTenant(tenant1); + tenant.getApplicationRepo().createApplication(ApplicationId.defaultId()); + tenant.getApplicationRepo().createPutTransaction(ApplicationId.defaultId(), 4).commit(); + tenant.getSessionRepository().getReloadHandler().reloadConfig(ApplicationSet.fromSingle( new Application(new VespaModel(MockApplicationPackage.createEmpty()), new ServerCache(), 4L, |