|
@@ -10,7 +10,9 @@ package org.elasticsearch.rest.action.admin.indices;
|
|
|
|
|
|
import org.elasticsearch.action.admin.indices.template.put.PutIndexTemplateRequest;
|
|
|
import org.elasticsearch.client.node.NodeClient;
|
|
|
+import org.elasticsearch.common.RestApiVersion;
|
|
|
import org.elasticsearch.common.Strings;
|
|
|
+import org.elasticsearch.common.logging.DeprecationLogger;
|
|
|
import org.elasticsearch.common.xcontent.XContentHelper;
|
|
|
import org.elasticsearch.rest.BaseRestHandler;
|
|
|
import org.elasticsearch.rest.RestRequest;
|
|
@@ -26,6 +28,8 @@ import static org.elasticsearch.rest.RestRequest.Method.PUT;
|
|
|
|
|
|
public class RestPutIndexTemplateAction extends BaseRestHandler {
|
|
|
|
|
|
+ private static final DeprecationLogger deprecationLogger = DeprecationLogger.getLogger(RestPutIndexTemplateAction.class);
|
|
|
+
|
|
|
@Override
|
|
|
public List<Route> routes() {
|
|
|
return List.of(
|
|
@@ -40,9 +44,14 @@ public class RestPutIndexTemplateAction extends BaseRestHandler {
|
|
|
|
|
|
@Override
|
|
|
public RestChannelConsumer prepareRequest(final RestRequest request, final NodeClient client) throws IOException {
|
|
|
-
|
|
|
PutIndexTemplateRequest putRequest = new PutIndexTemplateRequest(request.param("name"));
|
|
|
- putRequest.patterns(asList(request.paramAsStringArray("index_patterns", Strings.EMPTY_ARRAY)));
|
|
|
+ if (request.getRestApiVersion() == RestApiVersion.V_7 && request.hasParam("template")) {
|
|
|
+ deprecationLogger.compatibleApiWarning("template_parameter_deprecation",
|
|
|
+ "Deprecated parameter [template] used, replaced by [index_patterns]");
|
|
|
+ putRequest.patterns(List.of(request.param("template")));
|
|
|
+ } else {
|
|
|
+ putRequest.patterns(asList(request.paramAsStringArray("index_patterns", Strings.EMPTY_ARRAY)));
|
|
|
+ }
|
|
|
putRequest.order(request.paramAsInt("order", putRequest.order()));
|
|
|
putRequest.masterNodeTimeout(request.paramAsTime("master_timeout", putRequest.masterNodeTimeout()));
|
|
|
putRequest.create(request.paramAsBoolean("create", false));
|
|
@@ -51,6 +60,11 @@ public class RestPutIndexTemplateAction extends BaseRestHandler {
|
|
|
Map<String, Object> sourceAsMap = XContentHelper.convertToMap(request.requiredContent(), false,
|
|
|
request.getXContentType()).v2();
|
|
|
sourceAsMap = RestCreateIndexAction.prepareMappings(sourceAsMap);
|
|
|
+ if (request.getRestApiVersion() == RestApiVersion.V_7 && sourceAsMap.containsKey("template")) {
|
|
|
+ deprecationLogger.compatibleApiWarning("template_field_deprecation",
|
|
|
+ "Deprecated field [template] used, replaced by [index_patterns]");
|
|
|
+ putRequest.patterns(List.of((String) sourceAsMap.remove("template")));
|
|
|
+ }
|
|
|
putRequest.source(sourceAsMap);
|
|
|
|
|
|
return channel -> client.admin().indices().putTemplate(putRequest, new RestToXContentListener<>(channel));
|