summaryrefslogtreecommitdiffstats
path: root/node-admin/src/test/java
diff options
context:
space:
mode:
authorvalerijf <valerijf@oath.com>2017-09-04 13:08:02 +0200
committervalerijf <valerijf@oath.com>2017-09-04 13:08:02 +0200
commite4f0ea82377cce02ac39c3e2d44fc4b2ebc9062b (patch)
tree60668d6144082dbcaec6fed43c9efed36075f6db /node-admin/src/test/java
parentf2d4a1268b044ca399c3fc8db47d3174289cdecb (diff)
Fix docker image pull retry
Diffstat (limited to 'node-admin/src/test/java')
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/DockerMock.java24
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentImplTest.java10
2 files changed, 8 insertions, 26 deletions
diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/DockerMock.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/DockerMock.java
index be7fa4e49c6..dc111251af7 100644
--- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/DockerMock.java
+++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/DockerMock.java
@@ -15,7 +15,6 @@ import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Optional;
-import java.util.concurrent.CompletableFuture;
import java.util.stream.Collectors;
/**
@@ -111,31 +110,14 @@ public class DockerMock implements Docker {
}
@Override
- public CompletableFuture<DockerImage> pullImageAsync(DockerImage image) {
+ public boolean pullImageAsyncIfNeeded(DockerImage image) {
synchronized (monitor) {
- callOrderVerifier.add("pullImageAsync with " + image);
- final CompletableFuture<DockerImage> completableFuture = new CompletableFuture<>();
- new Thread() {
- public void run() {
- try {
- Thread.sleep(500);
- completableFuture.complete(image);
- } catch (InterruptedException e) {
- e.printStackTrace();
- }
-
- }
- }.start();
- return completableFuture;
+ callOrderVerifier.add("pullImageAsyncIfNeeded with " + image);
+ return false;
}
}
@Override
- public boolean imageIsDownloaded(DockerImage image) {
- return true;
- }
-
- @Override
public void deleteImage(DockerImage dockerImage) {
}
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 3ddb28eed77..1c63c70453e 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
@@ -114,7 +114,7 @@ public class NodeAgentImplTest {
verify(dockerOperations, never()).removeContainer(any());
verify(orchestrator, never()).suspend(any(String.class));
- verify(dockerOperations, never()).scheduleDownloadOfImage(eq(containerName), any(), any());
+ verify(dockerOperations, never()).pullImageAsyncIfNeeded(any());
final InOrder inOrder = inOrder(dockerOperations, orchestrator, nodeRepository);
// TODO: Verify this isn't run unless 1st time
@@ -147,14 +147,15 @@ public class NodeAgentImplTest {
when(nodeRepository.getContainerNodeSpec(hostName)).thenReturn(Optional.of(nodeSpec));
when(pathResolver.getApplicationStoragePathForNodeAdmin()).thenReturn(Files.createTempDirectory("foo"));
+ when(dockerOperations.pullImageAsyncIfNeeded(eq(dockerImage))).thenReturn(false);
nodeAgent.converge();
verify(dockerOperations, never()).removeContainer(any());
verify(orchestrator, never()).suspend(any(String.class));
- verify(dockerOperations, never()).scheduleDownloadOfImage(eq(containerName), any(), any());
final InOrder inOrder = inOrder(dockerOperations, orchestrator, nodeRepository, aclMaintainer);
+ inOrder.verify(dockerOperations, times(1)).pullImageAsyncIfNeeded(eq(dockerImage));
inOrder.verify(aclMaintainer, times(1)).run();
inOrder.verify(dockerOperations, times(1)).startContainer(eq(containerName), eq(nodeSpec));
inOrder.verify(dockerOperations, times(1)).resumeNode(eq(containerName));
@@ -185,7 +186,7 @@ public class NodeAgentImplTest {
NodeAgentImpl nodeAgent = makeNodeAgent(dockerImage, true);
when(nodeRepository.getContainerNodeSpec(hostName)).thenReturn(Optional.of(nodeSpec));
- when(dockerOperations.shouldScheduleDownloadOfImage(any())).thenReturn(true);
+ when(dockerOperations.pullImageAsyncIfNeeded(any())).thenReturn(true);
nodeAgent.converge();
@@ -194,8 +195,7 @@ public class NodeAgentImplTest {
verify(dockerOperations, never()).removeContainer(any());
final InOrder inOrder = inOrder(dockerOperations);
- inOrder.verify(dockerOperations, times(1)).shouldScheduleDownloadOfImage(eq(newDockerImage));
- inOrder.verify(dockerOperations, times(1)).scheduleDownloadOfImage(eq(containerName), eq(newDockerImage), any());
+ inOrder.verify(dockerOperations, times(1)).pullImageAsyncIfNeeded(eq(newDockerImage));
}
@Test