aboutsummaryrefslogtreecommitdiffstats
path: root/configserver/src/main/java/com/yahoo/vespa/config/server/session/RemoteSession.java
diff options
context:
space:
mode:
authorHarald Musum <musum@verizonmedia.com>2020-05-20 15:25:46 +0200
committerHarald Musum <musum@verizonmedia.com>2020-05-20 15:25:46 +0200
commite354869c4ad9063c97e8c37417fc7c92673b3331 (patch)
treeede153550ab44bbd97820f0ce0dffe5dfba9a508 /configserver/src/main/java/com/yahoo/vespa/config/server/session/RemoteSession.java
parenta350ddbe7384815674965f22461a049cd0a29c86 (diff)
Use remote session repo to find active session
Active session is not necessarily a local session, it might have been created on another config server.
Diffstat (limited to 'configserver/src/main/java/com/yahoo/vespa/config/server/session/RemoteSession.java')
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/session/RemoteSession.java46
1 files changed, 40 insertions, 6 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/session/RemoteSession.java b/configserver/src/main/java/com/yahoo/vespa/config/server/session/RemoteSession.java
index 9da3ad2fd7a..68c00cafd07 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/session/RemoteSession.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/session/RemoteSession.java
@@ -1,11 +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.session;
+import com.yahoo.component.Version;
+import com.yahoo.config.application.api.ApplicationMetaData;
import com.yahoo.config.application.api.ApplicationPackage;
import com.yahoo.config.provision.AllocatedHosts;
+import com.yahoo.config.provision.ApplicationId;
+import com.yahoo.config.provision.AthenzDomain;
+import com.yahoo.config.provision.DockerImage;
import com.yahoo.config.provision.TenantName;
import com.yahoo.lang.SettableOptional;
-import java.util.logging.Level;
import com.yahoo.transaction.Transaction;
import com.yahoo.vespa.config.server.GlobalComponentRegistry;
import com.yahoo.vespa.config.server.ReloadHandler;
@@ -16,8 +20,8 @@ import com.yahoo.vespa.curator.Curator;
import org.apache.zookeeper.KeeperException;
import java.time.Clock;
-import java.time.Instant;
import java.util.Optional;
+import java.util.logging.Level;
import java.util.logging.Logger;
/**
@@ -99,11 +103,11 @@ public class RemoteSession extends Session {
@Override
public String logPre() {
- if (applicationSet != null) {
- return TenantRepository.logPre(applicationSet.getForVersionOrLatest(Optional.empty(), Instant.now()).getId());
+ if (getApplicationId().equals(ApplicationId.defaultId())) {
+ return TenantRepository.logPre(getTenant());
+ } else {
+ return TenantRepository.logPre(getApplicationId());
}
-
- return TenantRepository.logPre(getTenant());
}
void confirmUpload() {
@@ -135,4 +139,34 @@ public class RemoteSession extends Session {
transaction.close();
}
+ public ApplicationId getApplicationId() { return zooKeeperClient.readApplicationId(); }
+
+ public Optional<DockerImage> getDockerImageRepository() { return zooKeeperClient.readDockerImageRepository(); }
+
+ public Version getVespaVersion() { return zooKeeperClient.readVespaVersion(); }
+
+ public Optional<AthenzDomain> getAthenzDomain() { return zooKeeperClient.readAthenzDomain(); }
+
+ public AllocatedHosts getAllocatedHosts() {
+ return zooKeeperClient.getAllocatedHosts();
+ }
+
+ // Note: Assumes monotonically increasing session ids
+ public boolean isNewerThan(long sessionId) {
+ return getSessionId() > sessionId;
+ }
+
+ public Transaction createDeactivateTransaction() {
+ return createSetStatusTransaction(Status.DEACTIVATE);
+ }
+
+ private Transaction createSetStatusTransaction(Status status) {
+ return zooKeeperClient.createWriteStatusTransaction(status);
+ }
+
+ public ApplicationMetaData getMetaData() {
+ return zooKeeperClient.loadApplicationPackage().getMetaData();
+ }
+
+
}