diff options
author | Valerij Fredriksen <valerijf@verizonmedia.com> | 2019-03-13 17:04:07 +0100 |
---|---|---|
committer | Valerij Fredriksen <valerijf@verizonmedia.com> | 2019-03-13 17:04:07 +0100 |
commit | 0a4a2b5cbd669954352b79ee0b5e1e5b57d7659e (patch) | |
tree | 4d13f10a8751001b10ef5025f48b28f995d9f8b5 /node-admin | |
parent | 2d8af92ab8b81fa3f374c6697c44d111ba594c46 (diff) |
Update Version and DockerImage at the same time
Diffstat (limited to 'node-admin')
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); } |