aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Musum <musum@verizonmedia.com>2023-07-20 12:08:34 +0200
committerGitHub <noreply@github.com>2023-07-20 12:08:34 +0200
commita9c9f581633688cea71b30a4585314a7318578b9 (patch)
tree9c6fb4a7dfa4c339e6ac264549099a21619ed33f
parent55965f0014ebcf000b680e5464fa7ee7c3c06029 (diff)
parentdb065760955ba41e9a37831b28a0bd848eb48a0b (diff)
Merge pull request #27828 from vespa-engine/hmusum/throw-if-not-found-in-zk
Throw if file reference or vespa version not found for session in zk
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/session/Session.java2
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java2
-rw-r--r--configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionZooKeeperClient.java17
-rw-r--r--configserver/src/test/java/com/yahoo/vespa/config/server/session/SessionZooKeeperClientTest.java2
4 files changed, 10 insertions, 13 deletions
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/session/Session.java b/configserver/src/main/java/com/yahoo/vespa/config/server/session/Session.java
index b627fe9ba3b..df1fdddf409 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/session/Session.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/session/Session.java
@@ -121,7 +121,7 @@ public abstract class Session implements Comparable<Session> {
}
void setApplicationPackageReference(FileReference applicationPackageReference) {
- sessionZooKeeperClient.writeApplicationPackageReference(Optional.ofNullable(applicationPackageReference));
+ sessionZooKeeperClient.writeApplicationPackageReference(applicationPackageReference);
}
public void setVespaVersion(Version version) {
diff --git a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java
index ae87a0dd182..94745be9d2a 100644
--- a/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java
+++ b/configserver/src/main/java/com/yahoo/vespa/config/server/session/SessionPreparer.java
@@ -394,7 +394,7 @@ public class SessionPreparer {
zkDeployer.deploy(applicationPackage, fileRegistryMap, allocatedHosts);
// Note: When changing the below you need to also change similar calls in SessionRepository.createSessionFromExisting()
zooKeeperClient.writeApplicationId(applicationId);
- zooKeeperClient.writeApplicationPackageReference(Optional.of(fileReference));
+ zooKeeperClient.writeApplicationPackageReference(fileReference);
zooKeeperClient.writeVespaVersion(vespaVersion);
zooKeeperClient.writeDockerImageRepository(dockerImageRepository);
zooKeeperClient.writeAthenzDomain(athenzDomain);
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 23b6fe075fa..e2e5e2bcce4 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,7 +3,6 @@ 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;
@@ -38,6 +37,7 @@ 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,16 +175,14 @@ public class SessionZooKeeperClient {
.orElseThrow(() -> new NotFoundException("Could not find application id for session " + sessionId));
}
- void writeApplicationPackageReference(Optional<FileReference> applicationPackageReference) {
- applicationPackageReference.ifPresent(
- reference -> curator.set(applicationPackageReferencePath(), Utf8.toBytes(reference.value())));
+ void writeApplicationPackageReference(FileReference applicationPackageReference) {
+ curator.set(applicationPackageReferencePath(), Utf8.toBytes(applicationPackageReference.value()));
}
FileReference readApplicationPackageReference() {
Optional<byte[]> data = curator.getData(applicationPackageReferencePath());
- if (data.isEmpty()) return null; // This should not happen.
-
- return new FileReference(Utf8.toString(data.get()));
+ return new FileReference(Utf8.toString(
+ data.orElseThrow(() -> new IllegalArgumentException("No application package reference found"))));
}
private Path applicationPackageReferencePath() {
@@ -228,9 +226,8 @@ public class SessionZooKeeperClient {
}
public Version readVespaVersion() {
- 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);
+ return curator.getData(versionPath()).map(d -> new Version(
+ Utf8.toString(d))).orElseThrow(() -> new IllegalArgumentException("No vespa version found"));
}
public Optional<DockerImage> readDockerImageRepository() {
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 4a7aeafab7e..e5b44857685 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
@@ -134,7 +134,7 @@ public class SessionZooKeeperClientTest {
public void require_that_application_package_file_reference_can_be_written_and_read() {
final FileReference testRef = new FileReference("test-ref");
SessionZooKeeperClient zkc = createSessionZKClient(3);
- zkc.writeApplicationPackageReference(Optional.of(testRef));
+ zkc.writeApplicationPackageReference(testRef);
assertEquals(testRef, zkc.readApplicationPackageReference());
}