diff options
author | Valerij Fredriksen <valerijf@oath.com> | 2018-09-26 16:13:23 +0200 |
---|---|---|
committer | Valerij Fredriksen <valerijf@oath.com> | 2018-09-26 16:18:56 +0200 |
commit | 8cf557f4ed9ac443de0a262e41356da0f7f3f6c2 (patch) | |
tree | f29891842a802280c7d8320fbee33c5de69a0413 /node-admin/src/test | |
parent | 62c56d23e182bb4a0b25c494146eaa210a8e30da (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.java | 41 |
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 |