diff options
author | freva <valerijf@yahoo-inc.com> | 2016-12-07 12:41:47 +0100 |
---|---|---|
committer | freva <valerijf@yahoo-inc.com> | 2016-12-07 12:41:47 +0100 |
commit | 7c9074b4b608da4da307ab589fe69db27dd02058 (patch) | |
tree | e539188710c52fdb147ac91f514ef02c82cbf4bc /node-admin | |
parent | 254e0df3e1594f5b942a0c35366342dd4094553b (diff) |
Update node repo with current attributes for all node states
Diffstat (limited to 'node-admin')
-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()); } |