summaryrefslogtreecommitdiffstats
path: root/node-admin/src/test/java
diff options
context:
space:
mode:
authorValerij Fredriksen <freva@users.noreply.github.com>2019-02-09 20:13:33 +0100
committerGitHub <noreply@github.com>2019-02-09 20:13:33 +0100
commit0ba8693afeffb3ae7f3ce85d59b4e379c85fa158 (patch)
tree47e509cbd32ce7a2535ce7bded29140f1957e8fd /node-admin/src/test/java
parentdd6b4f125da8940233920d6b0d1e0bf09ea2fb61 (diff)
parent40dcf524be4ec1bda36631447cfb70d30e7f5654 (diff)
Merge pull request #8454 from vespa-engine/freva/delayed-scheduling
Node-Admin: Delayed scheduling
Diffstat (limited to 'node-admin/src/test/java')
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/DockerTester.java4
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminImplTest.java2
-rw-r--r--node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentContextManagerTest.java22
3 files changed, 21 insertions, 7 deletions
diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/DockerTester.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/DockerTester.java
index 88cc833f1f8..0254f58e7eb 100644
--- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/DockerTester.java
+++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/integrationTests/DockerTester.java
@@ -98,7 +98,7 @@ public class DockerTester implements AutoCloseable {
Optional.empty(), Optional.empty(), Optional.empty());
NodeAgentContextFactory nodeAgentContextFactory = nodeSpec ->
new NodeAgentContextImpl.Builder(nodeSpec).fileSystem(fileSystem).build();
- nodeAdmin = new NodeAdminImpl(nodeAgentFactory, nodeAgentContextFactory, Optional.empty(), mr, Clock.systemUTC());
+ nodeAdmin = new NodeAdminImpl(nodeAgentFactory, nodeAgentContextFactory, Optional.empty(), mr, Clock.systemUTC(), Duration.ofMillis(10), Duration.ZERO);
nodeAdminStateUpdater = new NodeAdminStateUpdater(nodeRepository, orchestrator,
nodeAdmin, HOST_HOSTNAME);
@@ -139,7 +139,7 @@ public class DockerTester implements AutoCloseable {
@Override
public void close() {
// First, stop NodeAdmin and all the NodeAgents
- nodeAdmin.stop();
+ nodeAdminStateUpdater.stop();
terminated = true;
do {
diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminImplTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminImplTest.java
index 47e220a968b..f8e87ccef53 100644
--- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminImplTest.java
+++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeadmin/NodeAdminImplTest.java
@@ -45,7 +45,7 @@ public class NodeAdminImplTest {
private final ManualClock clock = new ManualClock();
private final NodeAdminImpl nodeAdmin = new NodeAdminImpl(nodeAgentWithSchedulerFactory, nodeAgentContextFactory,
- Optional.empty(), new MetricReceiverWrapper(MetricReceiver.nullImplementation), clock);
+ Optional.empty(), new MetricReceiverWrapper(MetricReceiver.nullImplementation), clock, Duration.ZERO, Duration.ZERO);
@Test
public void nodeAgentsAreProperlyLifeCycleManaged() {
diff --git a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentContextManagerTest.java b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentContextManagerTest.java
index f32e3d91e34..5aeccb4ab7d 100644
--- a/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentContextManagerTest.java
+++ b/node-admin/src/test/java/com/yahoo/vespa/hosted/node/admin/nodeagent/NodeAgentContextManagerTest.java
@@ -5,6 +5,7 @@ import org.junit.Test;
import java.time.Clock;
import java.time.Duration;
+import java.time.Instant;
import java.util.Optional;
import static org.junit.Assert.assertEquals;
@@ -26,7 +27,7 @@ public class NodeAgentContextManagerTest {
@Test(timeout = TIMEOUT)
public void returns_immediately_if_next_context_is_ready() throws InterruptedException {
NodeAgentContext context1 = generateContext();
- manager.scheduleTickWith(context1);
+ manager.scheduleTickWith(context1, clock.instant());
assertSame(initialContext, manager.currentContext());
assertSame(context1, manager.nextContext());
@@ -34,6 +35,19 @@ public class NodeAgentContextManagerTest {
}
@Test(timeout = TIMEOUT)
+ public void returns_no_earlier_than_at_given_time() throws InterruptedException {
+ NodeAgentContext context1 = generateContext();
+ Instant returnAt = clock.instant().plusMillis(500);
+ manager.scheduleTickWith(context1, returnAt);
+
+ assertSame(initialContext, manager.currentContext());
+ assertSame(context1, manager.nextContext());
+ assertSame(context1, manager.currentContext());
+ // Is accurate to a millisecond
+ assertFalse(clock.instant().plusMillis(1).isBefore(returnAt));
+ }
+
+ @Test(timeout = TIMEOUT)
public void blocks_in_nextContext_until_one_is_scheduled() throws InterruptedException {
AsyncExecutor<NodeAgentContext> async = new AsyncExecutor<>(manager::nextContext);
assertFalse(async.response.isPresent());
@@ -41,7 +55,7 @@ public class NodeAgentContextManagerTest {
assertFalse(async.response.isPresent());
NodeAgentContext context1 = generateContext();
- manager.scheduleTickWith(context1);
+ manager.scheduleTickWith(context1, clock.instant());
async.awaitResult();
assertEquals(Optional.of(context1), async.response);
@@ -68,7 +82,7 @@ public class NodeAgentContextManagerTest {
// Generate new context and get it from the supplier, this completes the unfreeze
NodeAgentContext context1 = generateContext();
- manager.scheduleTickWith(context1);
+ manager.scheduleTickWith(context1, clock.instant());
assertSame(context1, manager.nextContext());
assertTrue(manager.setFrozen(false, Duration.ZERO));
@@ -91,7 +105,7 @@ public class NodeAgentContextManagerTest {
assertFalse(async.response.isPresent());
NodeAgentContext context1 = generateContext();
- manager.scheduleTickWith(context1);
+ manager.scheduleTickWith(context1, clock.instant());
assertSame(context1, manager.nextContext());
async.awaitResult();