You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@druid.apache.org by fj...@apache.org on 2018/12/08 17:54:08 UTC
[incubator-druid] branch master updated: Fix shutdownAllTasks API
for non-existing dataSource (#6706)
This is an automated email from the ASF dual-hosted git repository.
fjy pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-druid.git
The following commit(s) were added to refs/heads/master by this push:
new f727333 Fix shutdownAllTasks API for non-existing dataSource (#6706)
f727333 is described below
commit f727333b704cb7936f117968a4c926ace72245ee
Author: Jihoon Son <ji...@apache.org>
AuthorDate: Sat Dec 8 09:54:01 2018 -0800
Fix shutdownAllTasks API for non-existing dataSource (#6706)
---
.../druid/indexing/overlord/http/OverlordResource.java | 10 +++++++---
.../indexing/overlord/http/OverlordResourceTest.java | 15 +++++++++++++++
2 files changed, 22 insertions(+), 3 deletions(-)
diff --git a/indexing-service/src/main/java/org/apache/druid/indexing/overlord/http/OverlordResource.java b/indexing-service/src/main/java/org/apache/druid/indexing/overlord/http/OverlordResource.java
index 84f4ac9..fd7fae4 100644
--- a/indexing-service/src/main/java/org/apache/druid/indexing/overlord/http/OverlordResource.java
+++ b/indexing-service/src/main/java/org/apache/druid/indexing/overlord/http/OverlordResource.java
@@ -352,10 +352,14 @@ public class OverlordResource
public Response apply(TaskQueue taskQueue)
{
final List<TaskInfo<Task, TaskStatus>> tasks = taskStorageQueryAdapter.getActiveTaskInfo(dataSource);
- for (final TaskInfo<Task, TaskStatus> task : tasks) {
- taskQueue.shutdown(task.getId(), "Shutdown request from user");
+ if (tasks.isEmpty()) {
+ return Response.status(Status.NOT_FOUND).build();
+ } else {
+ for (final TaskInfo<Task, TaskStatus> task : tasks) {
+ taskQueue.shutdown(task.getId(), "Shutdown request from user");
+ }
+ return Response.ok(ImmutableMap.of("dataSource", dataSource)).build();
}
- return Response.ok(ImmutableMap.of("dataSource", dataSource)).build();
}
}
);
diff --git a/indexing-service/src/test/java/org/apache/druid/indexing/overlord/http/OverlordResourceTest.java b/indexing-service/src/test/java/org/apache/druid/indexing/overlord/http/OverlordResourceTest.java
index 4558de2..89824b0 100644
--- a/indexing-service/src/test/java/org/apache/druid/indexing/overlord/http/OverlordResourceTest.java
+++ b/indexing-service/src/test/java/org/apache/druid/indexing/overlord/http/OverlordResourceTest.java
@@ -65,7 +65,9 @@ import org.junit.rules.ExpectedException;
import javax.servlet.http.HttpServletRequest;
import javax.ws.rs.core.Response;
+import javax.ws.rs.core.Response.Status;
import java.util.Collection;
+import java.util.Collections;
import java.util.List;
import java.util.Map;
@@ -975,6 +977,19 @@ public class OverlordResourceTest
Assert.assertEquals("datasource", response.get("dataSource"));
}
+ @Test
+ public void testShutdownAllTasksForNonExistingDataSource()
+ {
+ final TaskQueue taskQueue = EasyMock.createMock(TaskQueue.class);
+ EasyMock.expect(taskMaster.isLeader()).andReturn(true).anyTimes();
+ EasyMock.expect(taskMaster.getTaskQueue()).andReturn(Optional.of(taskQueue)).anyTimes();
+ EasyMock.expect(taskStorageQueryAdapter.getActiveTaskInfo(EasyMock.anyString())).andReturn(Collections.emptyList());
+ EasyMock.replay(taskRunner, taskMaster, taskStorageQueryAdapter, indexerMetadataStorageAdapter, req);
+
+ final Response response = overlordResource.shutdownTasksForDataSource("notExisting");
+ Assert.assertEquals(Status.NOT_FOUND.getStatusCode(), response.getStatus());
+ }
+
private void expectAuthorizationTokenCheck()
{
AuthenticationResult authenticationResult = new AuthenticationResult("druid", "druid", null, null);
---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscribe@druid.apache.org
For additional commands, e-mail: commits-help@druid.apache.org