diff options
author | Harald Musum <musum@verizonmedia.com> | 2020-05-20 15:25:46 +0200 |
---|---|---|
committer | Harald Musum <musum@verizonmedia.com> | 2020-05-20 15:25:46 +0200 |
commit | e354869c4ad9063c97e8c37417fc7c92673b3331 (patch) | |
tree | ede153550ab44bbd97820f0ce0dffe5dfba9a508 /configserver/src/main/java/com/yahoo/vespa/config/server/session/RemoteSession.java | |
parent | a350ddbe7384815674965f22461a049cd0a29c86 (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.java | 46 |
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(); + } + + } |