aboutsummaryrefslogtreecommitdiffstats
path: root/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionZooKeeperClient.java
diff options
context:
space:
mode:
Diffstat (limited to 'configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionZooKeeperClient.java')
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionZooKeeperClient.java17
1 files changed, 10 insertions, 7 deletions
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 e2e5e2bcce4..23b6fe075fa 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
@@ -3,6 +3,7 @@ package com.yahoo.vespa.config.server.session;
import com.yahoo.cloud.config.ConfigserverConfig;
import com.yahoo.component.Version;
+import com.yahoo.component.Vtag;
import com.yahoo.config.FileReference;
import com.yahoo.config.application.api.ApplicationPackage;
import com.yahoo.config.application.api.DeployLogger;
@@ -37,7 +38,6 @@ import com.yahoo.vespa.curator.Curator;
import com.yahoo.vespa.curator.transaction.CuratorOperations;
import com.yahoo.vespa.curator.transaction.CuratorTransaction;
import org.apache.zookeeper.data.Stat;
-
import java.security.cert.X509Certificate;
import java.time.Duration;
import java.time.Instant;
@@ -175,14 +175,16 @@ public class SessionZooKeeperClient {
.orElseThrow(() -> new NotFoundException("Could not find application id for session " + sessionId));
}
- void writeApplicationPackageReference(FileReference applicationPackageReference) {
- curator.set(applicationPackageReferencePath(), Utf8.toBytes(applicationPackageReference.value()));
+ void writeApplicationPackageReference(Optional<FileReference> applicationPackageReference) {
+ applicationPackageReference.ifPresent(
+ reference -> curator.set(applicationPackageReferencePath(), Utf8.toBytes(reference.value())));
}
FileReference readApplicationPackageReference() {
Optional<byte[]> data = curator.getData(applicationPackageReferencePath());
- return new FileReference(Utf8.toString(
- data.orElseThrow(() -> new IllegalArgumentException("No application package reference found"))));
+ if (data.isEmpty()) return null; // This should not happen.
+
+ return new FileReference(Utf8.toString(data.get()));
}
private Path applicationPackageReferencePath() {
@@ -226,8 +228,9 @@ public class SessionZooKeeperClient {
}
public Version readVespaVersion() {
- return curator.getData(versionPath()).map(d -> new Version(
- Utf8.toString(d))).orElseThrow(() -> new IllegalArgumentException("No vespa version found"));
+ Optional<byte[]> data = curator.getData(versionPath());
+ // TODO: Empty version should not be possible any more - verify and remove
+ return data.map(d -> new Version(Utf8.toString(d))).orElse(Vtag.currentVersion);
}
public Optional<DockerImage> readDockerImageRepository() {