diff options
-rw-r--r-- | node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java | 18 |
1 files changed, 8 insertions, 10 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 1394adeb396..18307c6d8ff 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 @@ -208,12 +208,12 @@ public class NodeAgentImpl implements NodeAgent { private void updateNodeRepoWithCurrentAttributes(final ContainerNodeSpec nodeSpec) throws IOException { final Optional<String> containerVespaVersion = dockerOperations.getVespaVersion(nodeSpec.containerName); final NodeAttributes nodeAttributes = new NodeAttributes() - .withRestartGeneration(nodeSpec.wantedRestartGeneration.get()) + .withRestartGeneration(nodeSpec.wantedRestartGeneration.orElse(0L)) // update reboot gen with wanted gen if set, we ignore reboot for Docker nodes but // want the two to be equal in node repo - .withRebootGeneration(nodeSpec.wantedRebootGeneration.orElse(null)) - .withDockerImage(nodeSpec.wantedDockerImage.get()) - .withVespaVersion(containerVespaVersion.orElse(null)); + .withRebootGeneration(nodeSpec.wantedRebootGeneration.orElse(0L)) + .withDockerImage(nodeSpec.wantedDockerImage.orElse(new DockerImage(""))) + .withVespaVersion(containerVespaVersion.orElse("")); publishStateToNodeRepoIfChanged(nodeSpec.hostname, nodeAttributes); } @@ -412,10 +412,11 @@ public class NodeAgentImpl implements NodeAgent { switch (nodeSpec.nodeState) { case ready: - removeContainerIfNeededUpdateContainerState(nodeSpec); - break; case reserved: + case parked: + case failed: removeContainerIfNeededUpdateContainerState(nodeSpec); + updateNodeRepoWithCurrentAttributes(nodeSpec); break; case active: storageMaintainer.removeOldFilesFromNode(nodeSpec.containerName); @@ -445,6 +446,7 @@ public class NodeAgentImpl implements NodeAgent { case inactive: storageMaintainer.removeOldFilesFromNode(nodeSpec.containerName); removeContainerIfNeededUpdateContainerState(nodeSpec); + updateNodeRepoWithCurrentAttributes(nodeSpec); break; case provisioned: case dirty: @@ -454,10 +456,6 @@ public class NodeAgentImpl implements NodeAgent { storageMaintainer.archiveNodeData(nodeSpec.containerName); updateNodeRepoAndMarkNodeAsReady(nodeSpec); break; - case parked: - case failed: - removeContainerIfNeededUpdateContainerState(nodeSpec); - break; default: throw new RuntimeException("UNKNOWN STATE " + nodeSpec.nodeState.name()); } |