@DELETE @Path("{taskId}/results/{bufferId}") @Produces(MediaType.APPLICATION_JSON) public void abortResults(@PathParam("taskId") TaskId taskId, @PathParam("bufferId") OutputBufferId bufferId, @Context UriInfo uriInfo) { requireNonNull(taskId, "taskId is null"); requireNonNull(bufferId, "bufferId is null"); taskManager.abortTaskResults(taskId, bufferId); }
@GET @Produces(MediaType.APPLICATION_JSON) public List<TaskInfo> getAllTaskInfo(@Context UriInfo uriInfo) { List<TaskInfo> allTaskInfo = taskManager.getAllTaskInfo(); if (shouldSummarize(uriInfo)) { allTaskInfo = ImmutableList.copyOf(transform(allTaskInfo, TaskInfo::summarize)); } return allTaskInfo; }
@POST @Path("/offsets/end") @Consumes(MediaType.APPLICATION_JSON) @Produces(MediaType.APPLICATION_JSON) public Response setEndOffsetsHTTP( Map<Integer, Long> offsets, @Context final HttpServletRequest req ) throws InterruptedException { authorizationCheck(req, Action.WRITE); return setEndOffsets(offsets); }
@POST @Produces({MediaType.APPLICATION_JSON, SmileMediaTypes.APPLICATION_JACKSON_SMILE}) @Consumes({MediaType.APPLICATION_JSON, SmileMediaTypes.APPLICATION_JACKSON_SMILE}) public Response serviceAnnouncementPOSTAll( final InputStream inputStream, final @Context HttpServletRequest req // used only to get request content-type ) { final String reqContentType = req.getContentType(); final boolean isSmile = SmileMediaTypes.APPLICATION_JACKSON_SMILE.equals(reqContentType); final ObjectMapper mapper = isSmile ? smileMapper : jsonMapper; try { return handler.handlePOSTAll(inputStream, mapper); } catch (Exception e) { LOG.error(e, "Exception in handling POSTAll request"); return Response.serverError().entity(ServletResourceUtils.sanitizeException(e)).build(); } }
@GET @Produces(MediaType.WILDCARD) public Response errorEmpty(@Context HttpServletRequest request) { Number statusCode = (Number) request.getAttribute(RequestDispatcher.ERROR_STATUS_CODE); Response.Status finalStatus = statusCode == null ? Response.Status.OK : Response.Status.fromStatusCode(statusCode.intValue()); return Response.status(finalStatus).build(); }
@POST @Path("/updates") @Produces({MediaType.APPLICATION_JSON, SmileMediaTypes.APPLICATION_JACKSON_SMILE}) @Consumes({MediaType.APPLICATION_JSON, SmileMediaTypes.APPLICATION_JACKSON_SMILE}) public Response serviceAnnouncementHandleUpdates( final InputStream inputStream, final @Context HttpServletRequest req // used only to get request content-type ) { final String reqContentType = req.getContentType(); final boolean isSmile = SmileMediaTypes.APPLICATION_JACKSON_SMILE.equals(reqContentType); final ObjectMapper mapper = isSmile ? smileMapper : jsonMapper; try { return handler.handleUpdates(inputStream, mapper); } catch (Exception e) { LOG.error(e, "Exception in handling updates request"); return Response.serverError().entity(ServletResourceUtils.sanitizeException(e)).build(); } }
@POST @Path("/{dataSourceName}") @Consumes(MediaType.APPLICATION_JSON) @ResourceFilters(RulesResourceFilter.class) public Response setDatasourceRules( @PathParam("dataSourceName") final String dataSourceName, final List<Rule> rules, @HeaderParam(AuditManager.X_DRUID_AUTHOR) @DefaultValue("") final String author, @HeaderParam(AuditManager.X_DRUID_COMMENT) @DefaultValue("") final String comment, @Context HttpServletRequest req ) { if (databaseRuleManager.overrideRule( dataSourceName, rules, new AuditInfo(author, comment, req.getRemoteAddr()) )) { return Response.ok().build(); } return Response.status(Response.Status.INTERNAL_SERVER_ERROR).build(); }
@GET public Response redirectIndexHtml( @HeaderParam(X_FORWARDED_PROTO) String proto, @Context UriInfo uriInfo) { if (isNullOrEmpty(proto)) { proto = uriInfo.getRequestUri().getScheme(); } return Response.status(MOVED_PERMANENTLY) .location(uriInfo.getRequestUriBuilder().scheme(proto).path("/ui/").build()) .build(); } }
@POST @Path("/events") @Produces(MediaType.APPLICATION_JSON) public Response addListener(@Context ClusterMembershipService clusterMembershipService, @Context EventManager events) { String listenerId = UUID.randomUUID().toString(); EventLog<ClusterMembershipEventListener, ClusterMembershipEvent> eventLog = events.getOrCreateEventLog(ClusterResource.class, listenerId, l -> e -> l.addEvent(e)); if (eventLog.open()) { clusterMembershipService.addListener(eventLog.listener()); } return Response.ok(listenerId).build(); }
@Path("/chat/{id}") public Object doTaskChat(@PathParam("id") String handlerId, @Context HttpHeaders headers) { if (taskId != null) { List<String> requestTaskId = headers.getRequestHeader(TASK_ID_HEADER); if (requestTaskId != null && !requestTaskId.contains(StringUtils.urlEncode(taskId))) { return null; } } final Optional<ChatHandler> handler = handlers.get(handlerId); if (handler.isPresent()) { return handler.get(); } return null; } }