summaryrefslogtreecommitdiffstats
path: root/node-admin
diff options
context:
space:
mode:
authorfreva <valerijf@yahoo-inc.com>2016-12-08 13:20:59 +0100
committerfreva <valerijf@yahoo-inc.com>2016-12-08 13:20:59 +0100
commit8419a88e506b51ff3cea921dbb7c4a4ec5f47a2a (patch)
tree44327d876a629334c021eb5a72c3a1885292a769 /node-admin
parentdfe972670b629ad9f9d9c94a3f27a8367a447ee2 (diff)
Do not run vespa-version inside container when it's not up
Diffstat (limited to 'node-admin')
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImpl.java3
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImplTest.java19
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 {