summaryrefslogtreecommitdiffstats
path: root/node-admin
diff options
context:
space:
mode:
authorValerij Fredriksen <valerijf@verizonmedia.com>2019-03-13 17:04:07 +0100
committerValerij Fredriksen <valerijf@verizonmedia.com>2019-03-13 17:04:07 +0100
commit0a4a2b5cbd669954352b79ee0b5e1e5b57d7659e (patch)
tree4d13f10a8751001b10ef5025f48b28f995d9f8b5 /node-admin
parent2d8af92ab8b81fa3f374c6697c44d111ba594c46 (diff)
Update Version and DockerImage at the same time
Diffstat (limited to 'node-admin')
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java9
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/MultiDockerTest.java3
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/RestartTest.java2
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImplTest.java6
4 files changed, 13 insertions, 7 deletions
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java
index 0be1a49bb29..fc4162a0f73 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java
@@ -185,8 +185,13 @@ public class NodeAgentImpl implements NodeAgent {
Optional<DockerImage> actualDockerImage = context.node().getWantedDockerImage().filter(n -> containerState == UNKNOWN);
if (!Objects.equals(context.node().getCurrentDockerImage(), actualDockerImage)) {
- currentNodeAttributes.withDockerImage(context.node().getCurrentDockerImage().orElse(new DockerImage("")));
- newNodeAttributes.withDockerImage(actualDockerImage.orElse(new DockerImage("")));
+ DockerImage currentImage = context.node().getCurrentDockerImage().orElse(DockerImage.EMPTY);
+ DockerImage newImage = actualDockerImage.orElse(DockerImage.EMPTY);
+
+ currentNodeAttributes.withDockerImage(currentImage);
+ currentNodeAttributes.withVespaVersion(currentImage.tagAsVersion());
+ newNodeAttributes.withDockerImage(newImage);
+ newNodeAttributes.withVespaVersion(newImage.tagAsVersion());
}
publishStateToNodeRepoIfChanged(context, currentNodeAttributes, newNodeAttributes);
diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/MultiDockerTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/MultiDockerTest.java
index 9c441c95e23..27b11c3c1ba 100644
--- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/MultiDockerTest.java
+++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/MultiDockerTest.java
@@ -62,7 +62,8 @@ public class MultiDockerTest {
tester.inOrder(tester.docker).createContainerCommand(eq(dockerImage), eq(containerName));
tester.inOrder(tester.docker).executeInContainerAsUser(
eq(containerName), eq("root"), any(), eq(DockerTester.NODE_PROGRAM), eq("resume"));
- tester.inOrder(tester.nodeRepository).updateNodeAttributes(eq(hostName), eq(new NodeAttributes().withDockerImage(dockerImage)));
+ tester.inOrder(tester.nodeRepository).updateNodeAttributes(eq(hostName),
+ eq(new NodeAttributes().withDockerImage(dockerImage).withVespaVersion(dockerImage.tagAsVersion())));
return nodeSpec;
}
diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/RestartTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/RestartTest.java
index 8d7a5acedb3..82e5eca042c 100644
--- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/RestartTest.java
+++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/RestartTest.java
@@ -38,7 +38,7 @@ public class RestartTest {
tester.inOrder(tester.docker).createContainerCommand(eq(dockerImage), eq(new ContainerName("host1")));
tester.inOrder(tester.nodeRepository).updateNodeAttributes(
- eq(hostname), eq(new NodeAttributes().withDockerImage(dockerImage)));
+ eq(hostname), eq(new NodeAttributes().withDockerImage(dockerImage).withVespaVersion(dockerImage.tagAsVersion())));
// Increment wantedRestartGeneration to 2 in node-repo
tester.addChildNodeRepositoryNode(new NodeSpec.Builder(tester.nodeRepository.getNode(hostname))
diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImplTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImplTest.java
index 0c35cfefc3b..15786f2ed34 100644
--- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImplTest.java
+++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImplTest.java
@@ -207,7 +207,7 @@ public class NodeAgentImplTest {
inOrder.verify(dockerOperations, times(1)).resumeNode(eq(context));
inOrder.verify(healthChecker, times(1)).verifyHealth(eq(context));
inOrder.verify(nodeRepository).updateNodeAttributes(
- hostName, new NodeAttributes().withDockerImage(dockerImage));
+ hostName, new NodeAttributes().withDockerImage(dockerImage).withVespaVersion(dockerImage.tagAsVersion()));
inOrder.verify(orchestrator).resume(hostName);
}
@@ -519,7 +519,7 @@ public class NodeAgentImplTest {
verify(orchestrator, never()).suspend(any(String.class));
// current Docker image and vespa version should be cleared
verify(nodeRepository, times(1)).updateNodeAttributes(
- eq(hostName), eq(new NodeAttributes().withDockerImage(new DockerImage(""))));
+ eq(hostName), eq(new NodeAttributes().withDockerImage(DockerImage.EMPTY).withVespaVersion(Version.emptyVersion)));
}
@Test
@@ -752,7 +752,7 @@ public class NodeAgentImplTest {
inOrder.verify(aclMaintainer, times(1)).converge(eq(context));
inOrder.verify(dockerOperations, times(1)).resumeNode(eq(context));
inOrder.verify(nodeRepository).updateNodeAttributes(
- hostName, new NodeAttributes().withDockerImage(dockerImage));
+ hostName, new NodeAttributes().withDockerImage(dockerImage).withVespaVersion(dockerImage.tagAsVersion()));
inOrder.verify(orchestrator).resume(hostName);
}