@Override protected void doExecute(SimulatePipelineRequest request, ActionListener<SimulatePipelineResponse> listener) { final Map<String, Object> source = XContentHelper.convertToMap(request.getSource(), false, request.getXContentType()).v2(); final SimulatePipelineRequest.Parsed simulateRequest; try { if (request.getId() != null) { simulateRequest = SimulatePipelineRequest.parseWithPipelineId(request.getId(), source, request.isVerbose(), ingestService); } else { simulateRequest = SimulatePipelineRequest.parse(source, request.isVerbose(), ingestService); } } catch (Exception e) { listener.onFailure(e); return; } executionService.execute(simulateRequest, listener); } }
@Override public RestChannelConsumer prepareRequest(RestRequest restRequest, NodeClient client) throws IOException { Tuple<XContentType, BytesReference> sourceTuple = restRequest.contentOrSourceParam(); SimulatePipelineRequest request = new SimulatePipelineRequest(sourceTuple.v2(), sourceTuple.v1()); request.setId(restRequest.param("id")); request.setVerbose(restRequest.paramAsBoolean("verbose", false)); return channel -> client.admin().cluster().simulatePipeline(request, new RestToXContentListener<>(channel)); } }
static Parsed parseWithPipelineId(String pipelineId, Map<String, Object> config, boolean verbose, IngestService ingestService) { if (pipelineId == null) { throw new IllegalArgumentException("param [pipeline] is null"); } Pipeline pipeline = ingestService.getPipeline(pipelineId); if (pipeline == null) { throw new IllegalArgumentException("pipeline [" + pipelineId + "] does not exist"); } List<IngestDocument> ingestDocumentList = parseDocs(config); return new Parsed(pipeline, ingestDocumentList, verbose); }
static Request simulatePipeline(SimulatePipelineRequest simulatePipelineRequest) throws IOException { RequestConverters.EndpointBuilder builder = new RequestConverters.EndpointBuilder().addPathPartAsIs("_ingest/pipeline"); if (simulatePipelineRequest.getId() != null && !simulatePipelineRequest.getId().isEmpty()) { builder.addPathPart(simulatePipelineRequest.getId()); } builder.addPathPartAsIs("_simulate"); String endpoint = builder.build(); Request request = new Request(HttpPost.METHOD_NAME, endpoint); RequestConverters.Params params = new RequestConverters.Params(request); params.putParam("verbose", Boolean.toString(simulatePipelineRequest.isVerbose())); request.setEntity(RequestConverters.createEntity(simulatePipelineRequest, RequestConverters.REQUEST_BODY_CONTENT_TYPE)); return request; } }
/** * Create a new builder for {@link SimulatePipelineRequest}s */ public SimulatePipelineRequestBuilder(ElasticsearchClient client, SimulatePipelineAction action) { super(client, action, new SimulatePipelineRequest()); }
/** * Enable or disable verbose mode */ public SimulatePipelineRequestBuilder setVerbose(boolean verbose) { request.setVerbose(verbose); return this; }
/** * Set the id for the pipeline to simulate */ public SimulatePipelineRequestBuilder setId(String id) { request.setId(id); return this; }
static Request simulatePipeline(SimulatePipelineRequest simulatePipelineRequest) throws IOException { RequestConverters.EndpointBuilder builder = new RequestConverters.EndpointBuilder().addPathPartAsIs("_ingest/pipeline"); if (simulatePipelineRequest.getId() != null && !simulatePipelineRequest.getId().isEmpty()) { builder.addPathPart(simulatePipelineRequest.getId()); } builder.addPathPartAsIs("_simulate"); String endpoint = builder.build(); Request request = new Request(HttpPost.METHOD_NAME, endpoint); RequestConverters.Params params = new RequestConverters.Params(request); params.putParam("verbose", Boolean.toString(simulatePipelineRequest.isVerbose())); request.setEntity(RequestConverters.createEntity(simulatePipelineRequest, RequestConverters.REQUEST_BODY_CONTENT_TYPE)); return request; } }
/** * Create a new builder for {@link SimulatePipelineRequest}s */ public SimulatePipelineRequestBuilder(ElasticsearchClient client, SimulatePipelineAction action, BytesReference source, XContentType xContentType) { super(client, action, new SimulatePipelineRequest(source, xContentType)); }
/** * Enable or disable verbose mode */ public SimulatePipelineRequestBuilder setVerbose(boolean verbose) { request.setVerbose(verbose); return this; }
/** * Set the id for the pipeline to simulate */ public SimulatePipelineRequestBuilder setId(String id) { request.setId(id); return this; }
@Override protected void doExecute(SimulatePipelineRequest request, ActionListener<SimulatePipelineResponse> listener) { final Map<String, Object> source = XContentHelper.convertToMap(request.getSource(), false, request.getXContentType()).v2(); final SimulatePipelineRequest.Parsed simulateRequest; try { if (request.getId() != null) { simulateRequest = SimulatePipelineRequest.parseWithPipelineId(request.getId(), source, request.isVerbose(), pipelineStore); } else { simulateRequest = SimulatePipelineRequest.parse(source, request.isVerbose(), pipelineStore); } } catch (Exception e) { listener.onFailure(e); return; } executionService.execute(simulateRequest, listener); } }
@Override public RestChannelConsumer prepareRequest(RestRequest restRequest, NodeClient client) throws IOException { Tuple<XContentType, BytesReference> sourceTuple = restRequest.contentOrSourceParam(); SimulatePipelineRequest request = new SimulatePipelineRequest(sourceTuple.v2(), sourceTuple.v1()); request.setId(restRequest.param("id")); request.setVerbose(restRequest.paramAsBoolean("verbose", false)); return channel -> client.admin().cluster().simulatePipeline(request, new RestToXContentListener<>(channel)); } }
/** * Create a new builder for {@link SimulatePipelineRequest}s * @deprecated use {@link #SimulatePipelineRequestBuilder(ElasticsearchClient, SimulatePipelineAction, BytesReference, XContentType)} to * avoid content type auto-detection on the source bytes */ @Deprecated public SimulatePipelineRequestBuilder(ElasticsearchClient client, SimulatePipelineAction action, BytesReference source) { super(client, action, new SimulatePipelineRequest(source)); }
static Parsed parse(Map<String, Object> config, boolean verbose, IngestService ingestService) throws Exception { Map<String, Object> pipelineConfig = ConfigurationUtils.readMap(null, null, config, Fields.PIPELINE); Pipeline pipeline = Pipeline.create( SIMULATED_PIPELINE_ID, pipelineConfig, ingestService.getProcessorFactories(), ingestService.getScriptService() ); List<IngestDocument> ingestDocumentList = parseDocs(config); return new Parsed(pipeline, ingestDocumentList, verbose); }
/** * Enable or disable verbose mode */ public SimulatePipelineRequestBuilder setVerbose(boolean verbose) { request.setVerbose(verbose); return this; }
/** * Set the id for the pipeline to simulate */ public SimulatePipelineRequestBuilder setId(String id) { request.setId(id); return this; }
@Override protected void doExecute(SimulatePipelineRequest request, ActionListener<SimulatePipelineResponse> listener) { final Map<String, Object> source = XContentHelper.convertToMap(request.getSource(), false, request.getXContentType()).v2(); final SimulatePipelineRequest.Parsed simulateRequest; try { if (request.getId() != null) { simulateRequest = SimulatePipelineRequest.parseWithPipelineId(request.getId(), source, request.isVerbose(), ingestService); } else { simulateRequest = SimulatePipelineRequest.parse(source, request.isVerbose(), ingestService); } } catch (Exception e) { listener.onFailure(e); return; } executionService.execute(simulateRequest, listener); } }
@Override public RestChannelConsumer prepareRequest(RestRequest restRequest, NodeClient client) throws IOException { Tuple<XContentType, BytesReference> sourceTuple = restRequest.contentOrSourceParam(); SimulatePipelineRequest request = new SimulatePipelineRequest(sourceTuple.v2(), sourceTuple.v1()); request.setId(restRequest.param("id")); request.setVerbose(restRequest.paramAsBoolean("verbose", false)); return channel -> client.admin().cluster().simulatePipeline(request, new RestToXContentListener<>(channel)); } }
/** * Create a new builder for {@link SimulatePipelineRequest}s */ public SimulatePipelineRequestBuilder(ElasticsearchClient client, SimulatePipelineAction action) { super(client, action, new SimulatePipelineRequest()); }