aboutsummaryrefslogtreecommitdiffstats
path: root/node-admin/src/test
diff options
context:
space:
mode:
authorValerij Fredriksen <valerijf@oath.com>2018-09-26 16:13:23 +0200
committerValerij Fredriksen <valerijf@oath.com>2018-09-26 16:18:56 +0200
commit8cf557f4ed9ac443de0a262e41356da0f7f3f6c2 (patch)
treef29891842a802280c7d8320fbee33c5de69a0413 /node-admin/src/test
parent62c56d23e182bb4a0b25c494146eaa210a8e30da (diff)
Start services if they have been stopped
Diffstat (limited to 'node-admin/src/test')
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImplTest.java41
1 files changed, 39 insertions, 2 deletions
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 9a239e5439e..635b50246f4 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
@@ -131,6 +131,7 @@ public class NodeAgentImplTest {
final InOrder inOrder = inOrder(dockerOperations, orchestrator, nodeRepository);
// TODO: Verify this isn't run unless 1st time
+ inOrder.verify(dockerOperations, times(1)).startServices(eq(containerName));
inOrder.verify(dockerOperations, times(1)).resumeNode(eq(containerName));
inOrder.verify(orchestrator).resume(hostName);
}
@@ -159,6 +160,41 @@ public class NodeAgentImplTest {
verify(storageMaintainer, times(1)).removeOldFilesFromNode(eq(containerName));
}
+ @Test
+ public void startsAfterStoppingServices() {
+ final InOrder inOrder = inOrder(dockerOperations);
+ final NodeSpec node = nodeBuilder
+ .wantedDockerImage(dockerImage)
+ .currentDockerImage(dockerImage)
+ .state(Node.State.active)
+ .wantedVespaVersion(vespaVersion)
+ .vespaVersion(vespaVersion)
+ .build();
+
+ NodeAgentImpl nodeAgent = makeNodeAgent(dockerImage, true);
+ when(nodeRepository.getOptionalNode(hostName)).thenReturn(Optional.of(node));
+ when(storageMaintainer.getDiskUsageFor(eq(containerName))).thenReturn(Optional.of(187500000000L));
+
+ nodeAgent.converge();
+ inOrder.verify(dockerOperations, times(1)).startServices(eq(containerName));
+ inOrder.verify(dockerOperations, times(1)).resumeNode(eq(containerName));
+
+ nodeAgent.suspend();
+ nodeAgent.converge();
+ inOrder.verify(dockerOperations, never()).startServices(eq(containerName));
+ inOrder.verify(dockerOperations, times(1)).resumeNode(eq(containerName)); // Expect a resume, but no start services
+
+ // No new suspends/stops, so no need to resume/start
+ nodeAgent.converge();
+ inOrder.verify(dockerOperations, never()).startServices(eq(containerName));
+ inOrder.verify(dockerOperations, never()).resumeNode(eq(containerName));
+
+ nodeAgent.suspend();
+ nodeAgent.stopServices();
+ nodeAgent.converge();
+ inOrder.verify(dockerOperations, times(1)).startServices(eq(containerName));
+ inOrder.verify(dockerOperations, times(1)).resumeNode(eq(containerName));
+ }
@Test
public void absentContainerCausesStart() throws Exception {
@@ -184,6 +220,7 @@ public class NodeAgentImplTest {
nodeAgent.converge();
verify(dockerOperations, never()).removeContainer(any());
+ verify(dockerOperations, never()).startServices(any());
verify(orchestrator, never()).suspend(any(String.class));
final InOrder inOrder = inOrder(dockerOperations, orchestrator, nodeRepository, aclMaintainer);
@@ -581,7 +618,7 @@ public class NodeAgentImplTest {
verify(dockerOperations, never()).removeContainer(any());
verify(dockerOperations, times(1)).createContainer(eq(containerName), eq(node), any());
verify(dockerOperations, times(1)).startContainer(eq(containerName));
- verify(nodeAgent, never()).runLocalResumeScriptIfNeeded(any());
+ verify(nodeAgent, never()).resumeNodeIfNeeded(any());
// The docker container was actually started and is running, but subsequent exec calls to set up
// networking failed
@@ -591,7 +628,7 @@ public class NodeAgentImplTest {
verify(dockerOperations, times(1)).removeContainer(any());
verify(dockerOperations, times(2)).createContainer(eq(containerName), eq(node), any());
verify(dockerOperations, times(2)).startContainer(eq(containerName));
- verify(nodeAgent, times(1)).runLocalResumeScriptIfNeeded(any());
+ verify(nodeAgent, times(1)).resumeNodeIfNeeded(any());
}
@Test