summaryrefslogtreecommitdiffstats
path: root/configserver
diff options
context:
space:
mode:
authorHarald Musum <musum@verizonmedia.com>2020-06-11 15:01:38 +0200
committerHarald Musum <musum@verizonmedia.com>2020-06-11 15:01:38 +0200
commit62728231905e839bf3b6199a3165407cd0cfa7e1 (patch)
tree80b185e0b8de0bcdc45628d9c4856c2fce31b04b /configserver
parent05d3317e9860aff8fa3005ac214e2c4890457e29 (diff)
parentad47760e1a20586d07842c3f1996d07a2da45283 (diff)
Merge branch 'master' into hmusum/configserver-refactoring-9
Diffstat (limited to 'configserver')
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/application/TenantApplications.java4
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/session/LocalSession.java8
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionRepository.java12
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionZooKeeperClient.java13
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/tenant/TenantRepository.java1
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/http/SessionHandlerTest.java3
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/session/LocalSessionTest.java3
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionRepositoryTest.java2
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