summaryrefslogtreecommitdiffstats
path: root/configserver
diff options
context:
space:
mode:
authorHarald Musum <musum@verizonmedia.com>2020-06-17 11:51:19 +0200
committerHarald Musum <musum@verizonmedia.com>2020-06-17 11:51:19 +0200
commit3386490ed6a39fcc576e650e3f61858efbe1d379 (patch)
tree6d2fe0cc831ace1d1b0a673121c1e60eac3f8eac /configserver
parent544ba2e3d8cc1e4f1766ead5651712401d98a86f (diff)
Use Optional for active session id
Diffstat (limited to 'configserver')
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionRepository.java27
1 files changed, 13 insertions, 14 deletions
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 8317dc02e90..24e1011ac50 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
@@ -398,7 +398,7 @@ public class SessionRepository {
*/
public LocalSession createSession(File applicationDirectory, ApplicationId applicationId,
TimeoutBudget timeoutBudget, Optional<Long> activeSessionId) {
- return create(applicationDirectory, applicationId, activeSessionId.orElse(nonExistingActiveSession), false, timeoutBudget);
+ return create(applicationDirectory, applicationId, activeSessionId, false, timeoutBudget);
}
public RemoteSession createRemoteSession(long sessionId) {
@@ -417,14 +417,15 @@ public class SessionRepository {
File configApplicationDir,
ApplicationId applicationId,
long sessionId,
- long currentlyActiveSessionId,
+ Optional<Long> currentlyActiveSessionId,
boolean internalRedeploy) {
long deployTimestamp = System.currentTimeMillis();
String user = System.getenv("USER");
if (user == null) {
user = "unknown";
}
- DeployData deployData = new DeployData(user, userDir.getAbsolutePath(), applicationId, deployTimestamp, internalRedeploy, sessionId, currentlyActiveSessionId);
+ DeployData deployData = new DeployData(user, userDir.getAbsolutePath(), applicationId, deployTimestamp,
+ internalRedeploy, sessionId, currentlyActiveSessionId.orElse(nonExistingActiveSession));
return FilesApplicationPackage.fromFileWithDeployData(configApplicationDir, deployData);
}
@@ -457,7 +458,7 @@ public class SessionRepository {
File existingApp = getSessionAppDir(existingSession.getSessionId());
ApplicationId existingApplicationId = existingSession.getApplicationId();
- long activeSessionId = getActiveSessionId(existingApplicationId);
+ Optional<Long> activeSessionId = getActiveSessionId(existingApplicationId);
logger.log(Level.FINE, "Create new session for application id '" + existingApplicationId + "' from existing active session " + activeSessionId);
LocalSession session = create(existingApp, existingApplicationId, activeSessionId, internalRedeploy, timeoutBudget);
// Note: Needs to be kept in sync with calls in SessionPreparer.writeStateToZooKeeper()
@@ -471,7 +472,7 @@ public class SessionRepository {
return session;
}
- private LocalSession create(File applicationFile, ApplicationId applicationId, long currentlyActiveSessionId,
+ private LocalSession create(File applicationFile, ApplicationId applicationId, Optional<Long> currentlyActiveSessionId,
boolean internalRedeploy, TimeoutBudget timeoutBudget) {
long sessionId = getNextSessionId();
try {
@@ -489,7 +490,7 @@ public class SessionRepository {
* It does not wait for session being created on other servers
*/
private LocalSession createLocalSession(File applicationFile, ApplicationId applicationId,
- long sessionId, long currentlyActiveSessionId) {
+ long sessionId, Optional<Long> currentlyActiveSessionId) {
try {
ApplicationPackage applicationPackage = createApplicationPackage(applicationFile, applicationId,
sessionId, currentlyActiveSessionId, false);
@@ -501,7 +502,7 @@ public class SessionRepository {
}
private ApplicationPackage createApplicationPackage(File applicationFile, ApplicationId applicationId,
- long sessionId, long currentlyActiveSessionId,
+ long sessionId, Optional<Long> currentlyActiveSessionId,
boolean internalRedeploy) throws IOException {
File userApplicationDir = getSessionAppDir(sessionId);
IOUtils.copyDirectory(applicationFile, userApplicationDir);
@@ -554,18 +555,16 @@ public class SessionRepository {
return Optional.of(createLocalSession(sessionDir,
applicationId,
sessionId,
- applicationRepo.activeSessionOf(applicationId).orElse(nonExistingActiveSession)));
+ applicationRepo.activeSessionOf(applicationId)));
}
return Optional.empty();
}
- // Return Optional instead of faking it with nonExistingActiveSession
- private long getActiveSessionId(ApplicationId applicationId) {
+ private Optional<Long> getActiveSessionId(ApplicationId applicationId) {
List<ApplicationId> applicationIds = applicationRepo.activeApplications();
- if (applicationIds.contains(applicationId)) {
- return applicationRepo.requireActiveSessionOf(applicationId);
- }
- return nonExistingActiveSession;
+ return applicationIds.contains(applicationId)
+ ? Optional.of(applicationRepo.requireActiveSessionOf(applicationId))
+ : Optional.empty();
}
private long getNextSessionId() {