@DELETE @Path("/v1/proxy") @Produces(APPLICATION_JSON) public void cancelQuery( @QueryParam("uri") String uri, @QueryParam("hmac") String hash, @Context HttpServletRequest servletRequest, @Suspended AsyncResponse asyncResponse) { if (!hmac.hashString(uri, UTF_8).equals(HashCode.fromString(hash))) { throw badRequest(FORBIDDEN, "Failed to validate HMAC of URI"); } Request.Builder request = prepareDelete().setUri(URI.create(uri)); performRequest(servletRequest, asyncResponse, request, response -> responseWithHeaders(noContent(), response)); }
private synchronized void sendDelete() HttpResponseFuture<StatusResponse> resultFuture = httpClient.executeAsync(prepareDelete().setUri(location).build(), createStatusResponseHandler()); future = resultFuture; Futures.addCallback(resultFuture, new FutureCallback<StatusResponse>()
public Response cancel(String queryId) { requireNonNull(queryId, "queryId is null"); URI cancelUri = uriBuilderFrom(uri).appendPath("/v1/query").appendPath(queryId).build(); Request request = prepareDelete().setUri(cancelUri).build(); return httpClient.execute(request, new ResponseHandler<Response, RuntimeException>() { @Override public Response handleException(Request request, Exception exception) { throw propagate(request, exception); } @Override public Response handle(Request request, Response response) { return response; } }); }
private synchronized void abort(TaskStatus status) { checkState(status.getState().isDone(), "cannot abort task with an incomplete status"); try (SetThreadName ignored = new SetThreadName("HttpRemoteTask-%s", taskId)) { taskStatusFetcher.updateTaskStatus(status); // send abort to task HttpUriBuilder uriBuilder = getHttpUriBuilder(getTaskStatus()); Request request = prepareDelete() .setUri(uriBuilder.build()) .build(); scheduleAsyncCleanupRequest(createCleanupBackoff(), request, "abort"); } }
@Override public ListenableFuture<Void> unannounce() { URI uri = discoveryServiceURI.get(); if (uri == null) { return immediateFuture(null); } Request request = prepareDelete() .setUri(URI.create(uri + "/v1/announcement/" + nodeInfo.getNodeId())) .setHeader("User-Agent", nodeInfo.getNodeId()) .build(); return httpClient.executeAsync(request, new DiscoveryResponseHandler<>("Unannouncement", uri)); }
private synchronized void abort(TaskStatus status) { checkState(status.getState().isDone(), "cannot abort task with an incomplete status"); try (SetThreadName ignored = new SetThreadName("HttpRemoteTask-%s", taskId)) { taskStatusFetcher.updateTaskStatus(status); // send abort to task HttpUriBuilder uriBuilder = getHttpUriBuilder(getTaskStatus()); Request request = prepareDelete() .setUri(uriBuilder.build()) .build(); scheduleAsyncCleanupRequest(createCleanupBackoff(), request, "abort"); } }
@Override public AgentStatusRepresentation terminateAgent(String agentId) { URI uri = uriBuilderFrom(coordinatorUri).replacePath("v1/admin/agent").build(); Request request = Request.Builder.prepareDelete() .setUri(uri) .setBodyGenerator(textBodyGenerator(agentId)) .build(); AgentStatusRepresentation agents = client.execute(request, createJsonResponseHandler(AGENT_CODEC)); return agents; }
@Override public List<SlotStatusRepresentation> terminate(SlotFilter slotFilter, String expectedVersion) { URI uri = slotFilter.toUri(uriBuilderFrom(coordinatorUri).replacePath("/v1/slot")); Request.Builder requestBuilder = Request.Builder.prepareDelete().setUri(uri); if (expectedVersion != null) { requestBuilder.setHeader(AIRSHIP_SLOTS_VERSION_HEADER, expectedVersion); } List<SlotStatusRepresentation> slots = client.execute(requestBuilder.build(), createJsonResponseHandler(SLOTS_CODEC)); return slots; }
@Override public CheckedFuture<Void, DiscoveryException> unannounce() { URI uri = discoveryServiceURI.get(); if (uri == null) { return Futures.immediateFailedCheckedFuture(new DiscoveryException("No discovery servers are available")); } Request request = prepareDelete() .setUri(URI.create(uri + "/v1/announcement/" + nodeInfo.getNodeId())) .setHeader("User-Agent", nodeInfo.getNodeId()) .build(); return httpClient.executeAsync(request, new DiscoveryResponseHandler<Void>("Unannouncement")); }
@Override public List<SlotStatusRepresentation> terminate(SlotFilter slotFilter, String expectedVersion) { URI uri = slotFilter.toUri(uriBuilderFrom(coordinatorUri).replacePath("/v1/slot")); Request.Builder requestBuilder = Request.Builder.prepareDelete().setUri(uri); if (expectedVersion != null) { requestBuilder.setHeader(AIRSHIP_SLOTS_VERSION_HEADER, expectedVersion); } List<SlotStatusRepresentation> slots = client.execute(requestBuilder.build(), createJsonResponseHandler(SLOTS_CODEC)); return slots; }
@Override public List<SlotStatusRepresentation> resetExpectedState(SlotFilter slotFilter, String expectedVersion) { URI uri = slotFilter.toUri(uriBuilderFrom(coordinatorUri).replacePath("/v1/slot/expected-state")); Request.Builder requestBuilder = Request.Builder.prepareDelete().setUri(uri); if (expectedVersion != null) { requestBuilder.setHeader(AIRSHIP_SLOTS_VERSION_HEADER, expectedVersion); } List<SlotStatusRepresentation> slots = client.execute(requestBuilder.build(), createJsonResponseHandler(SLOTS_CODEC)); return slots; }
@Override public AgentStatusRepresentation terminateAgent(String agentId) { URI uri = uriBuilderFrom(coordinatorUri).replacePath("v1/admin/agent").build(); Request request = Request.Builder.prepareDelete() .setUri(uri) .setBodyGenerator(textBodyGenerator(agentId)) .build(); AgentStatusRepresentation agents = client.execute(request, createJsonResponseHandler(AGENT_CODEC)); return agents; }
@Test public void testTerminateUnknownSlot() throws Exception { Request request = Request.Builder.prepareDelete() .setUri(urlFor("/v1/agent/slot/unknown")) .build(); StatusResponse response = client.execute(request, createStatusResponseHandler()); assertEquals(response.getStatusCode(), Status.NOT_FOUND.getStatusCode()); }
@Test public void testTerminateUnknownSlot() throws Exception { Request request = Request.Builder.prepareDelete() .setUri(urlFor("/v1/agent/slot/unknown")) .build(); StatusResponse response = client.execute(request, createStatusResponseHandler()); assertEquals(response.getStatusCode(), Status.NOT_FOUND.getStatusCode()); }
@Test public void testDeleteMissing() throws IOException, ExecutionException, InterruptedException { StatusResponse response = client.execute( prepareDelete() .setUri(uriFor("/v1/person/foo")) .addHeader(CONTENT_TYPE, APPLICATION_JSON) .build(), createStatusResponseHandler()); assertEquals(response.getStatusCode(), javax.ws.rs.core.Response.Status.NOT_FOUND.getStatusCode()); }
@Override public List<SlotStatusRepresentation> resetExpectedState(SlotFilter slotFilter, String expectedVersion) { URI uri = slotFilter.toUri(uriBuilderFrom(coordinatorUri).replacePath("/v1/slot/expected-state")); Request.Builder requestBuilder = Request.Builder.prepareDelete().setUri(uri); if (expectedVersion != null) { requestBuilder.setHeader(AIRSHIP_SLOTS_VERSION_HEADER, expectedVersion); } List<SlotStatusRepresentation> slots = client.execute(requestBuilder.build(), createJsonResponseHandler(SLOTS_CODEC)); return slots; }
@Override public void shutdown() { URI uri = UriBuilder.fromUri(prestoAddress) .port(streamingPort) .path("connector/streamer") .queryParam("ticket", ticket) .build(); Request request = prepareDelete().setUri(uri).build(); httpClient.execute(request, StringResponseHandler.createStringResponseHandler()); } };
private synchronized void cleanUpTask() { checkState(getTaskStatus().getState().isDone(), "attempt to clean up a task that is not done yet"); // clear pending splits to free memory pendingSplits.clear(); pendingSourceSplitCount = 0; partitionedSplitCountTracker.setPartitionedSplitCount(getPartitionedSplitCount()); splitQueueHasSpace = true; whenSplitQueueHasSpace.complete(null, executor); // cancel pending request if (currentRequest != null) { currentRequest.cancel(true); currentRequest = null; currentRequestStartNanos = 0; } taskStatusFetcher.stop(); // The remote task is likely to get a delete from the PageBufferClient first. // We send an additional delete anyway to get the final TaskInfo HttpUriBuilder uriBuilder = getHttpUriBuilder(getTaskStatus()); Request request = prepareDelete() .setUri(uriBuilder.build()) .build(); scheduleAsyncCleanupRequest(createCleanupBackoff(), request, "cleanup"); }
@Override public synchronized void cancel() { try (SetThreadName ignored = new SetThreadName("HttpRemoteTask-%s", taskId)) { TaskStatus taskStatus = getTaskStatus(); if (taskStatus.getState().isDone()) { return; } // send cancel to task and ignore response HttpUriBuilder uriBuilder = getHttpUriBuilder(taskStatus).addParameter("abort", "false"); Request request = prepareDelete() .setUri(uriBuilder.build()) .build(); scheduleAsyncCleanupRequest(createCleanupBackoff(), request, "cancel"); } }
private synchronized void abort(TaskStatus status) { checkState(status.getState().isDone(), "cannot abort task with an incomplete status"); try (SetThreadName ignored = new SetThreadName("HttpRemoteTask-%s", taskId)) { taskStatusFetcher.updateTaskStatus(status); // send abort to task HttpUriBuilder uriBuilder = getHttpUriBuilder(getTaskStatus()); Request request = prepareDelete() .setUri(uriBuilder.build()) .build(); scheduleAsyncCleanupRequest(createCleanupBackoff(), request, "abort"); } }