remove extra kill parameter

This commit is contained in:
Parag Jain 2016-02-24 17:16:18 -06:00
parent 5364aa5b6c
commit b82b487f20
4 changed files with 15 additions and 43 deletions

View File

@ -258,7 +258,7 @@ Optional Header Parameters for auditing the config change can also be specified.
Disables a datasource. Disables a datasource.
* `/druid/coordinator/v1/datasources/{dataSourceName}/intervals/{interval}?kill=true` * `/druid/coordinator/v1/datasources/{dataSourceName}/intervals/{interval}`
* `@Deprecated. /druid/coordinator/v1/datasources/{dataSourceName}?kill=true&interval={myISO8601Interval}` * `@Deprecated. /druid/coordinator/v1/datasources/{dataSourceName}?kill=true&interval={myISO8601Interval}`
Runs a [Kill task](../ingestion/tasks.html) for a given interval and datasource. Runs a [Kill task](../ingestion/tasks.html) for a given interval and datasource.

View File

@ -36,9 +36,8 @@ import org.jboss.netty.handler.codec.http.HttpResponseStatus;
import org.joda.time.Interval; import org.joda.time.Interval;
import java.net.URL; import java.net.URL;
import java.net.URLEncoder;
import java.util.Map;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Map;
public class CoordinatorResourceTestClient public class CoordinatorResourceTestClient
{ {
@ -143,7 +142,7 @@ public class CoordinatorResourceTestClient
makeRequest( makeRequest(
HttpMethod.DELETE, HttpMethod.DELETE,
String.format( String.format(
"%sdatasources/%s/intervals/%s?kill=true", "%sdatasources/%s/intervals/%s",
getCoordinatorURL(), getCoordinatorURL(),
dataSource, interval.toString().replace("/", "_") dataSource, interval.toString().replace("/", "_")
) )

View File

@ -49,7 +49,6 @@ import org.joda.time.Interval;
import javax.annotation.Nullable; import javax.annotation.Nullable;
import javax.ws.rs.Consumes; import javax.ws.rs.Consumes;
import javax.ws.rs.DELETE; import javax.ws.rs.DELETE;
import javax.ws.rs.DefaultValue;
import javax.ws.rs.GET; import javax.ws.rs.GET;
import javax.ws.rs.POST; import javax.ws.rs.POST;
import javax.ws.rs.Path; import javax.ws.rs.Path;
@ -207,28 +206,23 @@ public class DatasourcesResource
@Produces(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON)
public Response deleteDataSourceSpecificInterval( public Response deleteDataSourceSpecificInterval(
@PathParam("dataSourceName") final String dataSourceName, @PathParam("dataSourceName") final String dataSourceName,
@PathParam("interval") final String interval, @PathParam("interval") final String interval
@QueryParam("kill") @DefaultValue("true") final String kill
) )
{ {
if (indexingServiceClient == null) { if (indexingServiceClient == null) {
return Response.ok(ImmutableMap.of("error", "no indexing service found")).build(); return Response.ok(ImmutableMap.of("error", "no indexing service found")).build();
} }
final Interval theInterval = new Interval(interval.replace("_", "/")); final Interval theInterval = new Interval(interval.replace("_", "/"));
if (kill != null && Boolean.valueOf(kill)) { try {
try { indexingServiceClient.killSegments(dataSourceName, new Interval(theInterval));
indexingServiceClient.killSegments(dataSourceName, new Interval(theInterval)); }
} catch (Exception e) {
catch (Exception e) { return Response.serverError()
return Response.serverError() .entity(ImmutableMap.of(
.entity(ImmutableMap.of( "error",
"error", "Exception occurred. Are you sure you have an indexing service?"
"Exception occurred. Are you sure you have an indexing service?" ))
)) .build();
.build();
}
} else {
return Response.ok(ImmutableMap.of("error", "kill is set to false")).build();
} }
return Response.ok().build(); return Response.ok().build();
} }

View File

@ -20,14 +20,11 @@
package io.druid.server.http; package io.druid.server.http;
import com.google.common.collect.ImmutableList; import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap;
import com.google.common.collect.ImmutableSet; import com.google.common.collect.ImmutableSet;
import io.druid.client.CoordinatorServerView; import io.druid.client.CoordinatorServerView;
import io.druid.client.DruidDataSource; import io.druid.client.DruidDataSource;
import io.druid.client.DruidServer; import io.druid.client.DruidServer;
import io.druid.client.InventoryView;
import io.druid.client.indexing.IndexingServiceClient; import io.druid.client.indexing.IndexingServiceClient;
import io.druid.metadata.MetadataSegmentManager;
import io.druid.timeline.DataSegment; import io.druid.timeline.DataSegment;
import org.easymock.EasyMock; import org.easymock.EasyMock;
import org.joda.time.Interval; import org.joda.time.Interval;
@ -399,29 +396,11 @@ public class DatasourcesResourceTest
EasyMock.replay(indexingServiceClient, server); EasyMock.replay(indexingServiceClient, server);
DatasourcesResource datasourcesResource = new DatasourcesResource(inventoryView, null, indexingServiceClient); DatasourcesResource datasourcesResource = new DatasourcesResource(inventoryView, null, indexingServiceClient);
Response response = datasourcesResource.deleteDataSourceSpecificInterval("datasource1", interval, "true"); Response response = datasourcesResource.deleteDataSourceSpecificInterval("datasource1", interval);
Assert.assertEquals(200, response.getStatus()); Assert.assertEquals(200, response.getStatus());
Assert.assertEquals(null, response.getEntity()); Assert.assertEquals(null, response.getEntity());
EasyMock.verify(indexingServiceClient, server); EasyMock.verify(indexingServiceClient, server);
} }
@Test
public void testDeleteDataSourceSpecificIntervalKillFalse() throws Exception
{
String interval = "2010-01-01_P1D";
Interval theInterval = new Interval(interval.replace("_", "/"));
IndexingServiceClient indexingServiceClient = EasyMock.createStrictMock(IndexingServiceClient.class);
EasyMock.replay(indexingServiceClient, server);
DatasourcesResource datasourcesResource = new DatasourcesResource(inventoryView, null, indexingServiceClient);
Response response = datasourcesResource.deleteDataSourceSpecificInterval("datasource1", interval, "false");
Assert.assertEquals(200, response.getStatus());
ImmutableMap<String, String> results = (ImmutableMap<String, String>) response.getEntity();
Assert.assertEquals(results, ImmutableMap.<String, String>of("error", "kill is set to false"));
EasyMock.verify(indexingServiceClient, server);
}
} }