diff options
author | freva <valerijf@yahoo-inc.com> | 2016-12-08 13:20:59 +0100 |
---|---|---|
committer | freva <valerijf@yahoo-inc.com> | 2016-12-08 13:20:59 +0100 |
commit | 8419a88e506b51ff3cea921dbb7c4a4ec5f47a2a (patch) | |
tree | 44327d876a629334c021eb5a72c3a1885292a769 /node-admin | |
parent | dfe972670b629ad9f9d9c94a3f27a8367a447ee2 (diff) |
Do not run vespa-version inside container when it's not up
Diffstat (limited to 'node-admin')
2 files changed, 14 insertions, 8 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 3f4f38c977f..1e328904d72 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 @@ -214,7 +214,7 @@ public class NodeAgentImpl implements NodeAgent { // want the two to be equal in node repo .withRebootGeneration(nodeSpec.wantedRebootGeneration.orElse(0L)) .withDockerImage(nodeSpec.wantedDockerImage.orElse(new DockerImage(""))) - .withVespaVersion(containerVespaVersion.orElse("")); + .withVespaVersion(vespaVersion.orElse("")); publishStateToNodeRepoIfChanged(nodeSpec.hostname, nodeAttributes); } @@ -332,6 +332,7 @@ public class NodeAgentImpl implements NodeAgent { dockerOperations.removeContainer(nodeSpec, existingContainer.get(), orchestrator); metricReceiver.unsetMetricsForContainer(hostname); lastCpuMetric = new CpuUsageReporter(); + vespaVersion = Optional.empty(); return true; } return false; 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 8660427fefb..1aed35615db 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 @@ -81,6 +81,7 @@ public class NodeAgentImplTest { .nodeState(Node.State.active) .nodeType("tenant") .nodeFlavor("docker") + .vespaVersion(vespaVersion) .wantedRestartGeneration(restartGeneration) .currentRestartGeneration(restartGeneration) .wantedRebootGeneration(rebootGeneration) @@ -94,9 +95,10 @@ public class NodeAgentImplTest { when(dockerOperations.getContainerStats(any())).thenReturn(Optional.of(containerStats)); when(dockerOperations.shouldScheduleDownloadOfImage(any())).thenReturn(false); when(dockerOperations.startContainerIfNeeded(eq(nodeSpec))).thenReturn(false); - when(dockerOperations.getVespaVersion(eq(containerName))).thenReturn(Optional.of(vespaVersion)); when(nodeRepository.getContainerNodeSpec(hostName)).thenReturn(Optional.of(nodeSpec)); + nodeAgent.vespaVersion = nodeSpec.vespaVersion; + nodeAgent.tick(); verify(dockerOperations, never()).removeContainer(any(), any(), any()); @@ -130,6 +132,7 @@ public class NodeAgentImplTest { .nodeState(Node.State.active) .nodeType("tenant") .nodeFlavor("docker") + .vespaVersion(vespaVersion) .wantedRestartGeneration(restartGeneration) .currentRestartGeneration(restartGeneration) .wantedRebootGeneration(rebootGeneration) @@ -138,9 +141,8 @@ public class NodeAgentImplTest { .minDiskAvailableGb(MIN_DISK_AVAILABLE_GB) .build(); - Docker.ContainerStats containerStats = new ContainerStatsImpl(new HashMap<>(), new HashMap<>(), new HashMap<>(), new HashMap<>()); when(dockerOperations.getContainer(eq(hostName))).thenReturn(Optional.empty()); - when(dockerOperations.getContainerStats(any())).thenReturn(Optional.of(containerStats)); + when(dockerOperations.getContainerStats(eq(containerName))).thenReturn(Optional.empty()); when(dockerOperations.shouldScheduleDownloadOfImage(any())).thenReturn(false); when(dockerOperations.startContainerIfNeeded(eq(nodeSpec))).thenReturn(true); when(dockerOperations.getVespaVersion(eq(containerName))).thenReturn(Optional.of(vespaVersion)); @@ -252,9 +254,10 @@ public class NodeAgentImplTest { .build(); when(nodeRepository.getContainerNodeSpec(hostName)).thenReturn(Optional.of(nodeSpec)); - when(dockerOperations.getVespaVersion(eq(containerName))).thenReturn(Optional.empty()); when(dockerOperations.getContainer(eq(hostName))).thenReturn(Optional.of(new Container(hostName, dockerImage, containerName, true))); + nodeAgent.vespaVersion = nodeSpec.vespaVersion; + nodeAgent.tick(); verify(dockerOperations, never()).removeContainer(any(), any(), any()); @@ -288,9 +291,10 @@ public class NodeAgentImplTest { .build(); when(nodeRepository.getContainerNodeSpec(hostName)).thenReturn(Optional.of(nodeSpec)); - when(dockerOperations.getVespaVersion(eq(containerName))).thenReturn(Optional.empty()); when(dockerOperations.getContainer(eq(hostName))).thenReturn(Optional.of(new Container(hostName, dockerImage, containerName, true))); + nodeAgent.vespaVersion = nodeSpec.vespaVersion; + nodeAgent.tick(); verify(dockerOperations, never()).removeContainer(any(), any(), any()); @@ -325,9 +329,10 @@ public class NodeAgentImplTest { .build(); when(nodeRepository.getContainerNodeSpec(hostName)).thenReturn(Optional.of(nodeSpec)); - when(dockerOperations.getVespaVersion(eq(containerName))).thenReturn(Optional.empty()); when(dockerOperations.getContainer(eq(hostName))).thenReturn(Optional.of(new Container(hostName, dockerImage, containerName, true))); + nodeAgent.vespaVersion = nodeSpec.vespaVersion; + nodeAgent.tick(); final InOrder inOrder = inOrder(storageMaintainer, dockerOperations); @@ -430,7 +435,6 @@ public class NodeAgentImplTest { when(dockerOperations.getContainer(eq(hostName))).thenReturn(Optional.of(new Container(hostName, wantedDockerImage, containerName, true))); when(nodeRepository.getContainerNodeSpec(eq(hostName))).thenReturn(Optional.of(nodeSpec)); when(dockerOperations.shouldScheduleDownloadOfImage(eq(wantedDockerImage))).thenReturn(false); - when(dockerOperations.getVespaVersion(eq(containerName))).thenReturn(Optional.of(vespaVersion)); verify(dockerOperations, never()).removeContainer(any(), any(), any()); @@ -439,6 +443,7 @@ public class NodeAgentImplTest { .when(dockerOperations).resumeNode(eq(containerName)); final InOrder inOrder = inOrder(orchestrator, dockerOperations, nodeRepository); + nodeAgent.vespaVersion = nodeSpec.vespaVersion; // 1st try try { |