[TEST] Wait for pending tasks on test clean up... (elastic/x-pack-elasticsearch#1137)
.. in MlNativeAutodetectIntegTestCase. We wait for pending tasks to finish from REST tests but not from the ones using a native autodetect. This commit adds the waiting in those tests too. Relates elastic/x-pack-elasticsearch#1136 Original commit: elastic/x-pack-elasticsearch@a7a5455c78
This commit is contained in:
parent
a2124b68e1
commit
13d3b353c6
|
@ -5,9 +5,11 @@
|
|||
*/
|
||||
package org.elasticsearch.xpack.ml.integration;
|
||||
|
||||
import org.elasticsearch.action.admin.cluster.node.tasks.list.ListTasksRequest;
|
||||
import org.elasticsearch.common.bytes.BytesArray;
|
||||
import org.elasticsearch.common.network.NetworkModule;
|
||||
import org.elasticsearch.common.settings.Settings;
|
||||
import org.elasticsearch.common.unit.TimeValue;
|
||||
import org.elasticsearch.common.xcontent.XContentType;
|
||||
import org.elasticsearch.test.SecurityIntegTestCase;
|
||||
import org.elasticsearch.xpack.XPackSettings;
|
||||
|
@ -63,6 +65,12 @@ abstract class MlNativeAutodetectIntegTestCase extends SecurityIntegTestCase {
|
|||
}
|
||||
|
||||
protected void cleanUp() {
|
||||
cleanUpDatafeeds();
|
||||
cleanUpJobs();
|
||||
waitForPendingTasks();
|
||||
}
|
||||
|
||||
private void cleanUpDatafeeds() {
|
||||
for (DatafeedConfig datafeed : datafeeds) {
|
||||
try {
|
||||
stopDatafeed(datafeed.getId());
|
||||
|
@ -75,6 +83,9 @@ abstract class MlNativeAutodetectIntegTestCase extends SecurityIntegTestCase {
|
|||
// ignore
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void cleanUpJobs() {
|
||||
for (Job.Builder job : jobs) {
|
||||
try {
|
||||
closeJob(job.getId());
|
||||
|
@ -89,6 +100,18 @@ abstract class MlNativeAutodetectIntegTestCase extends SecurityIntegTestCase {
|
|||
}
|
||||
}
|
||||
|
||||
private void waitForPendingTasks() {
|
||||
ListTasksRequest listTasksRequest = new ListTasksRequest();
|
||||
listTasksRequest.setWaitForCompletion(true);
|
||||
listTasksRequest.setDetailed(true);
|
||||
listTasksRequest.setTimeout(TimeValue.timeValueSeconds(10));
|
||||
try {
|
||||
admin().cluster().listTasks(listTasksRequest).get();
|
||||
} catch (Exception e) {
|
||||
throw new AssertionError("Failed to wait for pending tasks to complete", e);
|
||||
}
|
||||
}
|
||||
|
||||
protected void registerJob(Job.Builder job) {
|
||||
if (jobs.add(job) == false) {
|
||||
throw new IllegalArgumentException("job [" + job.getId() + "] is already registered");
|
||||
|
|
Loading…
Reference in New Issue