diff options
author | Harald Musum <musum@verizonmedia.com> | 2020-06-11 15:01:38 +0200 |
---|---|---|
committer | Harald Musum <musum@verizonmedia.com> | 2020-06-11 15:01:38 +0200 |
commit | 62728231905e839bf3b6199a3165407cd0cfa7e1 (patch) | |
tree | 80b185e0b8de0bcdc45628d9c4856c2fce31b04b /configserver | |
parent | 05d3317e9860aff8fa3005ac214e2c4890457e29 (diff) | |
parent | ad47760e1a20586d07842c3f1996d07a2da45283 (diff) |
Merge branch 'master' into hmusum/configserver-refactoring-9
Diffstat (limited to 'configserver')
8 files changed, 12 insertions, 34 deletions
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 9ed1e8ee88c..54d06deeaeb 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 @@ -420,6 +420,10 @@ public class TenantApplications implements RequestHandler, ReloadHandler, HostVa reloadListener.verifyHostsAreAvailable(tenant, newHosts); } + public HostValidator<ApplicationId> getHostValidator() { + return this; + } + public HostRegistry<ApplicationId> getApplicationHostRegistry() { return hostRegistry; } diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/session/LocalSession.java b/configserver/src/main/java/com/yahoo/vespa/config/server/session/LocalSession.java index 3ae508f9fc0..b01ddb04d48 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/session/LocalSession.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/session/LocalSession.java @@ -4,7 +4,6 @@ package com.yahoo.vespa.config.server.session; import com.yahoo.config.application.api.ApplicationFile; import com.yahoo.config.application.api.ApplicationMetaData; import com.yahoo.config.application.api.ApplicationPackage; -import com.yahoo.config.provision.ApplicationId; import com.yahoo.config.provision.TenantName; import com.yahoo.io.IOUtils; import com.yahoo.path.Path; @@ -13,7 +12,6 @@ import com.yahoo.transaction.NestedTransaction; import com.yahoo.transaction.Transaction; import com.yahoo.vespa.config.server.TimeoutBudget; import com.yahoo.vespa.config.server.application.TenantApplications; -import com.yahoo.vespa.config.server.host.HostValidator; import java.io.File; @@ -31,7 +29,6 @@ public class LocalSession extends Session { protected final ApplicationPackage applicationPackage; private final TenantApplications applicationRepo; private final File serverDBSessionDir; - private final HostValidator<ApplicationId> hostValidator; /** * Creates a session. This involves loading the application, validating it and distributing it. @@ -40,12 +37,11 @@ public class LocalSession extends Session { */ public LocalSession(TenantName tenant, long sessionId, ApplicationPackage applicationPackage, SessionZooKeeperClient sessionZooKeeperClient, File serverDBSessionDir, - TenantApplications applicationRepo, HostValidator<ApplicationId> hostValidator) { + TenantApplications applicationRepo) { super(tenant, sessionId, sessionZooKeeperClient); this.serverDBSessionDir = serverDBSessionDir; this.applicationPackage = applicationPackage; this.applicationRepo = applicationRepo; - this.hostValidator = hostValidator; } public ApplicationFile getApplicationFile(Path relativePath, Mode mode) { @@ -100,8 +96,6 @@ public class LocalSession extends Session { public ApplicationPackage getApplicationPackage() { return applicationPackage; } - public HostValidator<ApplicationId> getHostValidator() { return hostValidator; } - // The rest of this class should be moved elsewhere ... private static class FileTransaction extends AbstractTransaction { 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 150100077b4..2a61c621224 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 @@ -22,7 +22,6 @@ import com.yahoo.vespa.config.server.application.TenantApplications; import com.yahoo.vespa.config.server.configchange.ConfigChangeActions; import com.yahoo.vespa.config.server.deploy.TenantFileSystemDirs; import com.yahoo.vespa.config.server.filedistribution.FileDirectory; -import com.yahoo.vespa.config.server.host.HostValidator; import com.yahoo.vespa.config.server.monitoring.MetricUpdater; import com.yahoo.vespa.config.server.monitoring.Metrics; import com.yahoo.vespa.config.server.tenant.TenantRepository; @@ -83,7 +82,6 @@ public class SessionRepository { private final MetricUpdater metrics; private final Curator.DirectoryCache directoryCache; private final TenantApplications applicationRepo; - private final HostValidator<ApplicationId> hostRegistry; private final SessionPreparer sessionPreparer; private final Path sessionsPath; private final TenantName tenantName; @@ -94,7 +92,6 @@ public class SessionRepository { TenantApplications applicationRepo, ReloadHandler reloadHandler, FlagSource flagSource, - HostValidator<ApplicationId> hostRegistry, SessionPreparer sessionPreparer) { this.tenantName = tenantName; this.componentRegistry = componentRegistry; @@ -105,7 +102,6 @@ public class SessionRepository { this.zkWatcherExecutor = command -> componentRegistry.getZkWatcherExecutor().execute(tenantName, command); this.tenantFileSystemDirs = new TenantFileSystemDirs(componentRegistry.getConfigServerDB(), tenantName); this.applicationRepo = applicationRepo; - this.hostRegistry = hostRegistry; this.sessionPreparer = sessionPreparer; this.distributeApplicationPackage = Flags.CONFIGSERVER_DISTRIBUTE_APPLICATION_PACKAGE.bindTo(flagSource); this.reloadHandler = reloadHandler; @@ -162,7 +158,7 @@ public class SessionRepository { long sessionId = session.getSessionId(); SessionZooKeeperClient sessionZooKeeperClient = createSessionZooKeeperClient(sessionId); Curator.CompletionWaiter waiter = sessionZooKeeperClient.createPrepareWaiter(); - ConfigChangeActions actions = sessionPreparer.prepare(session.getHostValidator(), logger, params, + ConfigChangeActions actions = sessionPreparer.prepare(applicationRepo.getHostValidator(), logger, params, currentActiveApplicationSet, tenantPath, now, getSessionAppDir(sessionId), session.getApplicationPackage(), sessionZooKeeperClient); @@ -429,7 +425,7 @@ public class SessionRepository { sessionZKClient.createNewSession(clock.instant()); Curator.CompletionWaiter waiter = sessionZKClient.getUploadWaiter(); LocalSession session = new LocalSession(tenantName, sessionId, applicationPackage, sessionZKClient, - getSessionAppDir(sessionId), applicationRepo, hostRegistry); + getSessionAppDir(sessionId), applicationRepo); waiter.awaitCompletion(timeoutBudget.timeLeft()); return session; } @@ -488,7 +484,7 @@ public class SessionRepository { sessionId, currentlyActiveSessionId, false); SessionZooKeeperClient sessionZooKeeperClient = createSessionZooKeeperClient(sessionId); return new LocalSession(tenantName, sessionId, applicationPackage, sessionZooKeeperClient, - getSessionAppDir(sessionId), applicationRepo, hostRegistry); + getSessionAppDir(sessionId), applicationRepo); } catch (Exception e) { throw new RuntimeException("Error creating session " + sessionId, e); } @@ -517,7 +513,7 @@ public class SessionRepository { ApplicationPackage applicationPackage = FilesApplicationPackage.fromFile(sessionDir); SessionZooKeeperClient sessionZKClient = createSessionZooKeeperClient(sessionId); return new LocalSession(tenantName, sessionId, applicationPackage, sessionZKClient, - getSessionAppDir(sessionId), applicationRepo, hostRegistry); + getSessionAppDir(sessionId), applicationRepo); } /** diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionZooKeeperClient.java b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionZooKeeperClient.java index 33001d2996c..807629a2148 100644 --- a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionZooKeeperClient.java +++ b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionZooKeeperClient.java @@ -14,7 +14,6 @@ import com.yahoo.config.provision.DockerImage; import com.yahoo.config.provision.NodeFlavors; import com.yahoo.path.Path; import com.yahoo.text.Utf8; -import com.yahoo.transaction.NestedTransaction; import com.yahoo.transaction.Transaction; import com.yahoo.vespa.config.server.UserConfigDefinitionRepo; import com.yahoo.vespa.config.server.deploy.ZooKeeperClient; @@ -129,18 +128,6 @@ public class SessionZooKeeperClient { return curator.getCompletionWaiter(path, getNumberOfMembers(), serverId); } - public void delete(NestedTransaction transaction ) { - try { - log.log(Level.FINE, "Deleting " + sessionPath.getAbsolute()); - CuratorTransaction curatorTransaction = new CuratorTransaction(curator); - CuratorOperations.deleteAll(sessionPath.getAbsolute(), curator).forEach(curatorTransaction::add); - transaction.add(curatorTransaction); - transaction.commit(); - } catch (RuntimeException e) { - log.log(Level.INFO, "Error deleting session (" + sessionPath.getAbsolute() + ") from zookeeper", e); - } - } - /** Returns a transaction deleting this session on commit */ public CuratorTransaction deleteTransaction() { return CuratorTransaction.from(CuratorOperations.deleteAll(sessionPath.getAbsolute(), curator), curator); 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 32e9f694027..304fbb6786a 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 @@ -224,7 +224,6 @@ public class TenantRepository { SessionRepository sessionRepository = new SessionRepository(tenantName, componentRegistry, applicationRepo, reloadHandler, componentRegistry.getFlagSource(), - applicationRepo, componentRegistry.getSessionPreparer()); log.log(Level.INFO, "Creating tenant '" + tenantName + "'"); Tenant tenant = new Tenant(tenantName, sessionRepository, requestHandler, diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/http/SessionHandlerTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/http/SessionHandlerTest.java index 90d4ecaccf9..be368692aba 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/http/SessionHandlerTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/http/SessionHandlerTest.java @@ -16,7 +16,6 @@ import com.yahoo.container.jdisc.HttpResponse; import com.yahoo.path.Path; import com.yahoo.transaction.NestedTransaction; import com.yahoo.transaction.Transaction; -import com.yahoo.vespa.config.server.host.HostRegistry; import com.yahoo.vespa.config.server.session.DummyTransaction; import com.yahoo.vespa.config.server.session.LocalSession; import com.yahoo.vespa.config.server.session.MockSessionZKClient; @@ -87,7 +86,7 @@ public class SessionHandlerTest { private ApplicationId applicationId; public MockLocalSession(long sessionId, ApplicationPackage app) { - super(TenantName.defaultName(), sessionId, app, new MockSessionZKClient(app), null, null, new HostRegistry<>()); + super(TenantName.defaultName(), sessionId, app, new MockSessionZKClient(app), null, null); } public MockLocalSession(long sessionId, ApplicationPackage app, ApplicationId applicationId) { diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/session/LocalSessionTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/session/LocalSessionTest.java index e32071d6d16..9d84d5a7f28 100644 --- a/configserver/src/test/java/com/yahoo/vespa/config/server/session/LocalSessionTest.java +++ b/configserver/src/test/java/com/yahoo/vespa/config/server/session/LocalSessionTest.java @@ -17,7 +17,6 @@ import com.yahoo.vespa.config.server.application.TenantApplications; import com.yahoo.vespa.config.server.deploy.DeployHandlerLogger; import com.yahoo.vespa.config.server.deploy.TenantFileSystemDirs; import com.yahoo.vespa.config.server.deploy.ZooKeeperClient; -import com.yahoo.vespa.config.server.host.HostRegistry; import com.yahoo.vespa.config.server.tenant.TenantRepository; import com.yahoo.vespa.config.server.zookeeper.ConfigCurator; import com.yahoo.vespa.curator.Curator; @@ -139,7 +138,7 @@ public class LocalSessionTest { new TestComponentRegistry.Builder().curator(curator).build(), tenant); applications.createApplication(zkc.readApplicationId()); return new LocalSession(tenant, sessionId, FilesApplicationPackage.fromFile(testApp), - zkc, sessionDir, applications, new HostRegistry<>()); + zkc, sessionDir, applications); } private void doPrepare(LocalSession session) { 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 f73fb053649..1528c82188e 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 @@ -76,7 +76,7 @@ public class SessionRepositoryTest { TenantApplications applicationRepo = TenantApplications.create(globalComponentRegistry, tenantName); sessionRepository = new SessionRepository(tenantName, globalComponentRegistry, applicationRepo, applicationRepo, new InMemoryFlagSource(), - applicationRepo, globalComponentRegistry.getSessionPreparer()); + globalComponentRegistry.getSessionPreparer()); } @Test |