diff options
Diffstat (limited to 'clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/testutils/WaitTask.java')
-rw-r--r-- | clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/testutils/WaitTask.java | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/testutils/WaitTask.java b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/testutils/WaitTask.java new file mode 100644 index 00000000000..24333e28cd6 --- /dev/null +++ b/clustercontroller-core/src/test/java/com/yahoo/vespa/clustercontroller/core/testutils/WaitTask.java @@ -0,0 +1,41 @@ +// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root. +package com.yahoo.vespa.clustercontroller.core.testutils; + +import com.yahoo.vespa.clustercontroller.core.FleetController; +import com.yahoo.vespa.clustercontroller.core.NodeInfo; + +/** A wait task is something that is performed once in a while while waiting for something. */ +public abstract class WaitTask { + public static final int defaultTaskFrequencyMillis = 1; + + public abstract boolean performWaitTask(); + + public int getWaitTaskFrequencyInMillis() { + return defaultTaskFrequencyMillis; + } + + public static class StateResender extends WaitTask { + public final FleetController fleetController; + + public StateResender(FleetController fc) { + fleetController = fc; + } + + @Override + public boolean performWaitTask() { + boolean didWork = false; + synchronized (fleetController.getMonitor()) { + for (NodeInfo info : fleetController.getCluster().getNodeInfo()) { + if (info.getTimeForNextStateRequestAttempt() != 0) didWork = true; + info.setNextGetStateAttemptTime(0); + } + } + return didWork; + } + + @Override + public String toString() { + return "GetNodeStateResender"; + } + } +} |