/** * Initializes the index with required templates and mappings. */ private void initIndex() throws Exception { // 0. Add the tasklog template GetIndexTemplatesResponse result = elasticSearchClient.admin() .indices() .prepareGetTemplates("tasklog_template") .execute() .actionGet(); if (result.getIndexTemplates().isEmpty()) { logger.info("Creating the index template 'tasklog_template'"); InputStream stream = ElasticSearchDAOV5.class .getResourceAsStream("/template_tasklog.json"); byte[] templateSource = IOUtils.toByteArray(stream); try { elasticSearchClient.admin() .indices() .preparePutTemplate("tasklog_template") .setSource(templateSource, XContentType.JSON) .execute() .actionGet(); } catch (Exception e) { logger.error("Failed to init tasklog_template", e); } } }
@Override public GetIndexTemplatesRequestBuilder newRequestBuilder(ElasticsearchClient client) { return new GetIndexTemplatesRequestBuilder(client, this); } }
public GetIndexTemplatesRequestBuilder(ElasticsearchClient client, GetIndexTemplatesAction action, String... names) { super(client, action, new GetIndexTemplatesRequest(names)); } }
@Override public RestChannelConsumer prepareRequest(final RestRequest request, final NodeClient client) throws IOException { final String[] names = Strings.splitStringByCommaToArray(request.param("name")); final GetIndexTemplatesRequest getIndexTemplatesRequest = new GetIndexTemplatesRequest(names); getIndexTemplatesRequest.local(request.paramAsBoolean("local", getIndexTemplatesRequest.local())); getIndexTemplatesRequest.masterNodeTimeout(request.paramAsTime("master_timeout", getIndexTemplatesRequest.masterNodeTimeout())); final boolean implicitAll = getIndexTemplatesRequest.names().length == 0; return channel -> client.admin() .indices() .getTemplates(getIndexTemplatesRequest, new RestToXContentListener<GetIndexTemplatesResponse>(channel) { @Override protected RestStatus getStatus(final GetIndexTemplatesResponse response) { final boolean templateExists = response.getIndexTemplates().isEmpty() == false; return (templateExists || implicitAll) ? OK : NOT_FOUND; } }); }
@Override public XContentBuilder toXContent(XContentBuilder builder, Params params) throws IOException { params = new ToXContent.DelegatingMapParams(singletonMap("reduce_mappings", "true"), params); builder.startObject(); for (IndexTemplateMetaData indexTemplateMetaData : getIndexTemplates()) { IndexTemplateMetaData.Builder.toXContent(indexTemplateMetaData, builder, params); } builder.endObject(); return builder; }
@Override protected void masterOperation(GetIndexTemplatesRequest request, ClusterState state, ActionListener<GetIndexTemplatesResponse> listener) { List<IndexTemplateMetaData> results; // If we did not ask for a specific name, then we return all templates if (request.names().length == 0) { results = Arrays.asList(state.metaData().templates().values().toArray(IndexTemplateMetaData.class)); } else { results = new ArrayList<>(); } for (String name : request.names()) { if (Regex.isSimpleMatchPattern(name)) { for (ObjectObjectCursor<String, IndexTemplateMetaData> entry : state.metaData().templates()) { if (Regex.simpleMatch(name, entry.key)) { results.add(entry.value); } } } else if (state.metaData().templates().containsKey(name)) { results.add(state.metaData().templates().get(name)); } } listener.onResponse(new GetIndexTemplatesResponse(results)); } }
@Override public GetIndexTemplatesResponse newResponse() { return new GetIndexTemplatesResponse(); }
public GetIndexTemplatesRequestBuilder(ElasticsearchClient client, GetIndexTemplatesAction action) { super(client, action, new GetIndexTemplatesRequest()); }
@Override public GetIndexTemplatesRequestBuilder prepareGetTemplates(String... names) { return new GetIndexTemplatesRequestBuilder(this, GetIndexTemplatesAction.INSTANCE, names); }
@Override protected GetIndexTemplatesResponse newResponse() { return new GetIndexTemplatesResponse(); }
public GetIndexTemplatesRequestBuilder(ElasticsearchClient client, GetIndexTemplatesAction action, String... names) { super(client, action, new GetIndexTemplatesRequest(names)); } }
@Override public GetIndexTemplatesRequestBuilder newRequestBuilder(ElasticsearchClient client) { return new GetIndexTemplatesRequestBuilder(client, this); } }
public static GetIndexTemplatesResponse fromXContent(XContentParser parser) throws IOException { final List<IndexTemplateMetaData> templates = new ArrayList<>(); for (XContentParser.Token token = parser.nextToken(); token != XContentParser.Token.END_OBJECT; token = parser.nextToken()) { if (token == XContentParser.Token.FIELD_NAME) { final IndexTemplateMetaData templateMetaData = IndexTemplateMetaData.Builder.fromXContent(parser, parser.currentName()); templates.add(templateMetaData); } } return new GetIndexTemplatesResponse(templates); } }
public GetIndexTemplatesRequestBuilder(ElasticsearchClient client, GetIndexTemplatesAction action, String... names) { super(client, action, new GetIndexTemplatesRequest(names)); } }
@Override public GetIndexTemplatesRequestBuilder newRequestBuilder(ElasticsearchClient client) { return new GetIndexTemplatesRequestBuilder(client, this); } }
@Override protected GetIndexTemplatesResponse newResponse() { return new GetIndexTemplatesResponse(); }
@Override public GetIndexTemplatesRequestBuilder newRequestBuilder(ElasticsearchClient client) { return new GetIndexTemplatesRequestBuilder(client, this); } }
@Override protected GetIndexTemplatesResponse newResponse() { return new GetIndexTemplatesResponse(); }
@Override public GetIndexTemplatesRequestBuilder prepareGetTemplates(String... names) { return new GetIndexTemplatesRequestBuilder(this, GetIndexTemplatesAction.INSTANCE, names); }
@Override public GetIndexTemplatesRequestBuilder newRequestBuilder(ElasticsearchClient client) { return new GetIndexTemplatesRequestBuilder(client, this); } }