|
@@ -420,6 +420,38 @@ public class AutodetectProcessManagerTests extends ESTestCase {
|
|
|
assertEquals(1, manager.numberOfOpenJobs());
|
|
|
manager.closeJob(jobTask, null);
|
|
|
assertEquals(0, manager.numberOfOpenJobs());
|
|
|
+ verify(autodetectCommunicator).setVacating(false);
|
|
|
+ }
|
|
|
+
|
|
|
+ public void testVacate() {
|
|
|
+ ExecutorService executorService = mock(ExecutorService.class);
|
|
|
+ doAnswer(invocationOnMock -> {
|
|
|
+ ((Runnable) invocationOnMock.getArguments()[0]).run();
|
|
|
+ return null;
|
|
|
+ }).when(executorService).execute(any(Runnable.class));
|
|
|
+ when(threadPool.executor(anyString())).thenReturn(executorService);
|
|
|
+ AutodetectProcessManager manager = createSpyManager();
|
|
|
+ assertEquals(0, manager.numberOfOpenJobs());
|
|
|
+
|
|
|
+ JobTask jobTask = mock(JobTask.class);
|
|
|
+ when(jobTask.getJobId()).thenReturn("foo");
|
|
|
+ when(jobTask.triggerVacate()).thenReturn(true);
|
|
|
+ manager.openJob(jobTask, clusterState, DEFAULT_MASTER_NODE_TIMEOUT, (e, b) -> {});
|
|
|
+ manager.processData(
|
|
|
+ jobTask,
|
|
|
+ analysisRegistry,
|
|
|
+ createInputStream(""),
|
|
|
+ randomFrom(XContentType.values()),
|
|
|
+ mock(DataLoadParams.class),
|
|
|
+ (dataCounts1, e) -> {}
|
|
|
+ );
|
|
|
+
|
|
|
+ // job is created
|
|
|
+ assertEquals(1, manager.numberOfOpenJobs());
|
|
|
+ when(jobTask.isVacating()).thenReturn(true);
|
|
|
+ manager.vacateOpenJobsOnThisNode();
|
|
|
+ assertEquals(0, manager.numberOfOpenJobs());
|
|
|
+ verify(autodetectCommunicator).setVacating(true);
|
|
|
}
|
|
|
|
|
|
public void testCanCloseClosingJob() throws Exception {
|