@GET @Path("/remainingSegmentSizeForCompaction") @Produces(MediaType.APPLICATION_JSON) public Response remainingSegmentSizeForCompaction( @QueryParam("dataSource") String dataSource ) { final long notCompactedSegmentSizeBytes = coordinator.remainingSegmentSizeBytesForCompaction(dataSource); if (notCompactedSegmentSizeBytes == CompactionSegmentIterator.UNKNOWN_REMAINING_SEGMENT_SIZE) { return Response.status(Status.BAD_REQUEST).entity(ImmutableMap.of("error", "unknown dataSource")).build(); } else { return Response.ok(ImmutableMap.of("remainingSegmentSize", notCompactedSegmentSizeBytes)).build(); } } }
@Path("/{id}") @DELETE @Produces({MediaType.APPLICATION_JSON, SmileMediaTypes.APPLICATION_JACKSON_SMILE}) public Response serviceAnnouncementDELETE( final @PathParam("id") String id ) { if (Strings.isNullOrEmpty(id)) { return makeNullIdResponse(); } try { return handler.handleDELETE(id); } catch (Exception e) { LOG.error(e, "Exception in handling DELETE request for [%s]", id); return Response.serverError().entity(ServletResourceUtils.sanitizeException(e)).build(); } }
@GET @Produces(MediaType.APPLICATION_JSON) public Response getClusterServers(@QueryParam("full") String full, @QueryParam("simple") String simple) { Response.ResponseBuilder builder = Response.status(Response.Status.OK); if (full != null) { return builder .entity(Collections2.transform(serverInventoryView.getInventory(), ServersResource::makeFullServer)) .build(); } else if (simple != null) { return builder .entity(Collections2.transform(serverInventoryView.getInventory(), ServersResource::makeSimpleServer)) .build(); } return builder .entity(Collections2.transform(serverInventoryView.getInventory(), DruidServer::getHost)) .build(); }
@POST @Path("/{id}/{name}") @RequiresPermissions({SidecarRestPermissions.CONFIGURATIONS_READ, SidecarRestPermissions.CONFIGURATIONS_CREATE}) @ApiOperation(value = "Copy a configuration") @AuditEvent(type = SidecarAuditEventTypes.CONFIGURATION_CLONE) public Response copyConfiguration(@ApiParam(name = "id", required = true) @PathParam("id") String id, @PathParam("name") String name) throws NotFoundException { final Configuration configuration = configurationService.copyConfiguration(id, name); final ValidationResult validationResult = validate(configuration); if (validationResult.failed()) { return Response.status(Response.Status.BAD_REQUEST).entity(validationResult).build(); } configurationService.save(configuration); return Response.accepted().build(); }
@POST @RequiresPermissions(SidecarRestPermissions.CONFIGURATIONS_CREATE) @Produces(MediaType.APPLICATION_JSON) @ApiOperation(value = "Create new configuration variable") @AuditEvent(type = SidecarAuditEventTypes.CONFIGURATION_VARIABLE_CREATE) public Response createConfigurationVariable(@ApiParam(name = "JSON body", required = true) @Valid @NotNull ConfigurationVariable request) { ValidationResult validationResult = validateConfigurationVariableHelper(request); if (validationResult.failed()) { return Response.status(Response.Status.BAD_REQUEST).entity(validationResult).build(); } final ConfigurationVariable configurationVariable = persistConfigurationVariable(null, request); return Response.ok().entity(configurationVariable).build(); }
@POST @Timed @Path("/test") @NoAuditEvent("Only used to test pattern.") @ApiOperation(value = "Test pattern with sample data") public Response testPattern(@ApiParam(name = "pattern", required = true) GrokPatternTestRequest request) { Map<String, Object> result; try { result = grokPatternService.match(request.grokPattern(), request.sampleData()); } catch (GrokException | IllegalArgumentException e) { Map<String, String> error = ImmutableMap.of("message", e.getMessage()); throw new BadRequestException(Response.status(Response.Status.BAD_REQUEST).entity(error).build()); } return Response.ok(result).build(); }
@GET @Produces({MediaType.APPLICATION_JSON, SmileMediaTypes.APPLICATION_JACKSON_SMILE}) public Response getAll() { try { return handler.handleGETAll(); } catch (Exception e) { LOG.error(e, "Exception in handling GETAll request"); return Response.serverError().entity(ServletResourceUtils.sanitizeException(e)).build(); } }
@POST @Path("webapplication_entity") public String testWebApplicationExceptionEntity(String s) { String[] tokens = s.split(":"); assert tokens.length == 2; int statusCode = Integer.valueOf(tokens[1]); Response r = Response.status(statusCode).entity(s).build(); throw new WebApplicationException(r); }
@POST @Path("/assignTask") @Consumes({MediaType.APPLICATION_JSON, SmileMediaTypes.APPLICATION_JACKSON_SMILE}) public Response assignTask(Task task) { try { workerTaskMonitor.assignTask(task); return Response.ok().build(); } catch (RuntimeException ex) { return Response.serverError().entity(ex.getMessage()).build(); } }
@Override public final Response handleGET(String id) { try { final Object returnObj = get(id); if (returnObj == null) { return Response.status(Response.Status.NOT_FOUND).build(); } else { return Response.ok(returnObj).build(); } } catch (Exception e) { LOG.error(e, "Error handling get request for [%s]", id); return Response.serverError().entity(ServletResourceUtils.sanitizeException(e)).build(); } }
@POST @RequiresPermissions(SidecarRestPermissions.CONFIGURATIONS_CREATE) @Produces(MediaType.APPLICATION_JSON) @ApiOperation(value = "Create new configuration") @AuditEvent(type = SidecarAuditEventTypes.CONFIGURATION_CREATE) public Response createConfiguration(@ApiParam(name = "JSON body", required = true) @Valid @NotNull Configuration request) { final Configuration configuration = configurationFromRequest(null, request); final ValidationResult validationResult = validate(configuration); if (validationResult.failed()) { return Response.status(Response.Status.BAD_REQUEST).entity(validationResult).build(); } return Response.ok().entity(configurationService.save(configuration)).build(); }