summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorHarald Musum <musum@verizonmedia.com>2020-03-19 17:51:13 +0100
committerHarald Musum <musum@verizonmedia.com>2020-03-19 17:51:13 +0100
commita681535b066cfc7c08d54603b811da8e0472736d (patch)
tree10882530fda6e5556c0c4eb18a8542a03661ba97
parent1760ca738f4d0d463535299ba64a06f50811c3b1 (diff)
Fixes after code review
-rw-r--r--config-provisioning/abi-spec.json1
-rw-r--r--config-provisioning/src/main/java/com/yahoo/config/provision/ClusterSpec.java3
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializer.java2
-rw-r--r--node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesResponse.java5
-rw-r--r--node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTest.java7
5 files changed, 11 insertions, 7 deletions
diff --git a/config-provisioning/abi-spec.json b/config-provisioning/abi-spec.json
index 46ece153986..853fe4b11ed 100644
--- a/config-provisioning/abi-spec.json
+++ b/config-provisioning/abi-spec.json
@@ -288,6 +288,7 @@
"public com.yahoo.config.provision.ClusterSpec$Type type()",
"public com.yahoo.config.provision.ClusterSpec$Id id()",
"public java.util.Optional dockerImageRepo()",
+ "public java.util.Optional dockerImage()",
"public com.yahoo.component.Version vespaVersion()",
"public java.util.Optional group()",
"public java.util.Optional combinedId()",
diff --git a/config-provisioning/src/main/java/com/yahoo/config/provision/ClusterSpec.java b/config-provisioning/src/main/java/com/yahoo/config/provision/ClusterSpec.java
index 21d6a226b18..66a2ff411fe 100644
--- a/config-provisioning/src/main/java/com/yahoo/config/provision/ClusterSpec.java
+++ b/config-provisioning/src/main/java/com/yahoo/config/provision/ClusterSpec.java
@@ -48,6 +48,9 @@ public final class ClusterSpec {
/** Returns the docker image repository part of a docker image we want this cluster to run */
public Optional<String> dockerImageRepo() { return dockerImageRepo; }
+ /** Returns the docker image (repository + vespa version) we want this cluster to run */
+ public Optional<String> dockerImage() { return dockerImageRepo.map(repo -> repo + ":" + vespaVersion.toFullString()); }
+
/** Returns the version of Vespa that we want this cluster to run */
public Version vespaVersion() { return vespaVersion; }
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializer.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializer.java
index bd5ba514a1f..94f4dab1245 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializer.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/persistence/NodeSerializer.java
@@ -187,7 +187,7 @@ public class NodeSerializer {
object.setLong(currentRestartGenerationKey, allocation.restartGeneration().current());
object.setBool(removableKey, allocation.isRemovable());
object.setString(wantedVespaVersionKey, allocation.membership().cluster().vespaVersion().toString());
- object.setString(wantedDockerImageRepoKey, allocation.membership().cluster().dockerImageRepo().orElse(""));
+ allocation.membership().cluster().dockerImageRepo().ifPresent(repo -> object.setString(wantedDockerImageRepoKey, repo));
allocation.networkPorts().ifPresent(ports -> NetworkPortsSerializer.toSlime(ports, object.setArray(networkPortsKey)));
}
diff --git a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesResponse.java b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesResponse.java
index c96458a0433..6b308a96274 100644
--- a/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesResponse.java
+++ b/node-repository/src/main/java/com/yahoo/vespa/hosted/provision/restapi/v2/NodesResponse.java
@@ -158,9 +158,8 @@ class NodesResponse extends HttpResponse {
object.setLong("restartGeneration", allocation.restartGeneration().wanted());
object.setLong("currentRestartGeneration", allocation.restartGeneration().current());
String wantedVespaVersion = allocation.membership().cluster().vespaVersion().toFullString();
- Optional<String> dockerImageRepo = allocation.membership().cluster().dockerImageRepo();
- object.setString("wantedDockerImage", dockerImageRepo.map(s -> s + ":" + wantedVespaVersion)
- .orElseGet(() -> nodeRepository.dockerImage(node).withTag(allocation.membership().cluster().vespaVersion()).asString()));
+ object.setString("wantedDockerImage", allocation.membership().cluster().dockerImage()
+ .orElse(nodeRepository.dockerImage(node).withTag(allocation.membership().cluster().vespaVersion()).asString()));
object.setString("wantedVespaVersion", wantedVespaVersion);
toSlime(allocation.requestedResources(), object.setObject("requestedResources"));
allocation.networkPorts().ifPresent(ports -> NetworkPortsSerializer.toSlime(ports, object.setArray("networkPorts")));
diff --git a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTest.java b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTest.java
index 0919e537420..931d87a3265 100644
--- a/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTest.java
+++ b/node-repository/src/test/java/com/yahoo/vespa/hosted/provision/provisioning/ProvisioningTest.java
@@ -172,16 +172,17 @@ public class ProvisioningTest {
tester.activate(application1, state1.allHosts);
HostSpec host1 = state1.container0.iterator().next();
- assertFalse(host1.version().isPresent());
Node node1 = tester.nodeRepository().getNode(host1.hostname()).get();
- tester.nodeRepository().write(node1.with(node1.status().withDockerImage(DockerImage.fromString(dockerImageRepo))), () -> {});
+ DockerImage dockerImage = DockerImage.fromString(dockerImageRepo).withTag(Version.fromString("1.2.3"));
+ tester.nodeRepository().write(node1.with(node1.status().withDockerImage(dockerImage)), () -> {});
// redeploy
SystemState state2 = prepare(application1, tester, 1, 1, 1 ,1 , false, defaultResources, "1.2.3", Optional.of(dockerImageRepo));
tester.activate(application1, state2.allHosts);
host1 = state2.container0.iterator().next();
- assertEquals(dockerImageRepo, host1.dockerImageRepo().get());
+ node1 = tester.nodeRepository().getNode(host1.hostname()).get();
+ assertEquals(dockerImage, node1.status().dockerImage().get());
}
@Test