summaryrefslogtreecommitdiffstats
path: root/configserver
diff options
context:
space:
mode:
Diffstat (limited to 'configserver')
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java6
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/deploy/Deployment.java2
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionZooKeeperClient.java4
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/session/LocalSessionTest.java17
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionZooKeeperClientTest.java5
5 files changed, 19 insertions, 15 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java b/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java
index 41ec7626049..bc9fa96f943 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/ApplicationRepository.java
@@ -677,7 +677,11 @@ public class ApplicationRepository implements com.yahoo.config.provision.Deploye
tenantRepository.getAllTenants().forEach(tenant -> sessionsPerTenant.put(tenant, tenant.getSessionRepository().getLocalSessions()));
Set<ApplicationId> applicationIds = new HashSet<>();
- sessionsPerTenant.values().forEach(sessionList -> sessionList.forEach(s -> applicationIds.add(s.getApplicationId())));
+ sessionsPerTenant.values()
+ .forEach(sessionList -> sessionList.stream()
+ .map(Session::getApplicationId)
+ .filter(Objects::nonNull)
+ .forEach(applicationIds::add));
Map<ApplicationId, Long> activeSessions = new HashMap<>();
applicationIds.forEach(applicationId -> {
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/Deployment.java b/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/Deployment.java
index def629f738c..466138c817f 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/Deployment.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/deploy/Deployment.java
@@ -134,13 +134,13 @@ public class Deployment implements com.yahoo.config.provision.Deployment {
try (ActionTimer timer = applicationRepository.timerFor(session.getApplicationId(), "deployment.activateMillis")) {
TimeoutBudget timeoutBudget = new TimeoutBudget(clock, timeout);
+ validateSessionStatus(session);
ApplicationId applicationId = session.getApplicationId();
if ( ! timeoutBudget.hasTimeLeft()) throw new RuntimeException("Timeout exceeded when trying to activate '" + applicationId + "'");
RemoteSession previousActiveSession;
try (Lock lock = tenant.getApplicationRepo().lock(applicationId)) {
- validateSessionStatus(session);
NestedTransaction transaction = new NestedTransaction();
previousActiveSession = applicationRepository.getActiveSession(applicationId);
transaction.add(deactivateCurrentActivateNew(previousActiveSession, session, ignoreSessionStaleFailure));
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 807629a2148..906490ad8ba 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
@@ -150,8 +150,8 @@ public class SessionZooKeeperClient {
}
public ApplicationId readApplicationId() {
- if ( ! configCurator.exists(applicationIdPath())) return ApplicationId.defaultId();
- return ApplicationId.fromSerializedForm(configCurator.getData(applicationIdPath()));
+ String idString = configCurator.getData(applicationIdPath());
+ return idString == null ? null : ApplicationId.fromSerializedForm(idString);
}
void writeApplicationPackageReference(FileReference applicationPackageReference) {
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 c1377ae439b..496ded249fa 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
@@ -62,7 +62,7 @@ public class LocalSessionTest {
.configServerDBDir(temporaryFolder.newFolder().getAbsolutePath())
.build())
.build();
- tenantRepository = new TenantRepository(componentRegistry, false);
+ tenantRepository = new TenantRepository(componentRegistry);
tenantRepository.addTenant(tenantName);
configCurator = ConfigCurator.create(curator);
}
@@ -126,12 +126,14 @@ public class LocalSessionTest {
}
zkClient.write(Collections.singletonMap(new Version(0, 0, 0), new MockFileRegistry()));
TenantApplications applications = tenantRepository.getTenant(tenantName).getApplicationRepo();
- applications.createApplication(zkc.readApplicationId());
- return new LocalSession(tenant, sessionId, FilesApplicationPackage.fromFile(testApp), zkc, applications);
+ applications.createApplication(applicationId());
+ LocalSession session = new LocalSession(tenant, sessionId, FilesApplicationPackage.fromFile(testApp), zkc, applications);
+ session.setApplicationId(applicationId());
+ return session;
}
private void doPrepare(LocalSession session) {
- doPrepare(session, new PrepareParams.Builder().build());
+ doPrepare(session, new PrepareParams.Builder().applicationId(applicationId()).build());
}
private void doPrepare(LocalSession session, PrepareParams params) {
@@ -140,8 +142,11 @@ public class LocalSessionTest {
}
private DeployHandlerLogger getLogger() {
- return new DeployHandlerLogger(new Slime().get(), false,
- new ApplicationId.Builder().tenant(tenantName).applicationName("testapp").build());
+ return new DeployHandlerLogger(new Slime().get(), false, applicationId());
+ }
+
+ private ApplicationId applicationId() {
+ return new ApplicationId.Builder().tenant(tenantName).applicationName("testapp").build();
}
}
diff --git a/configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionZooKeeperClientTest.java b/configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionZooKeeperClientTest.java
index 5633ec2c5f8..1d7df7acfd0 100644
--- a/configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionZooKeeperClientTest.java
+++ b/configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionZooKeeperClientTest.java
@@ -85,11 +85,6 @@ public class SessionZooKeeperClientTest {
}
@Test
- public void require_that_default_name_is_returned_if_node_does_not_exist() {
- assertThat(createSessionZKClient("3").readApplicationId().application().value(), is("default"));
- }
-
- @Test
public void require_that_create_time_can_be_written_and_read() {
SessionZooKeeperClient zkc = createSessionZKClient("3");
curator.delete(Path.fromString("3"));