diff --git a/client/rest-high-level/src/main/java/org/elasticsearch/client/IndicesRequestConverters.java b/client/rest-high-level/src/main/java/org/elasticsearch/client/IndicesRequestConverters.java index d6dc4704be546..5e78a223bad28 100644 --- a/client/rest-high-level/src/main/java/org/elasticsearch/client/IndicesRequestConverters.java +++ b/client/rest-high-level/src/main/java/org/elasticsearch/client/IndicesRequestConverters.java @@ -117,9 +117,6 @@ static Request createIndex(CreateIndexRequest createIndexRequest) throws IOExcep parameters.withTimeout(createIndexRequest.timeout()); parameters.withMasterTimeout(createIndexRequest.masterNodeTimeout()); parameters.withWaitForActiveShards(createIndexRequest.waitForActiveShards()); - if (createIndexRequest.preferV2Templates() != null) { - parameters.putParam(IndexMetadata.PREFER_V2_TEMPLATES_FLAG, Boolean.toString(createIndexRequest.preferV2Templates())); - } request.addParameters(parameters.asMap()); request.setEntity(RequestConverters.createEntity(createIndexRequest, RequestConverters.REQUEST_BODY_CONTENT_TYPE)); return request; diff --git a/client/rest-high-level/src/main/java/org/elasticsearch/client/RequestConverters.java b/client/rest-high-level/src/main/java/org/elasticsearch/client/RequestConverters.java index 293a9623c5335..f166b2f605fe3 100644 --- a/client/rest-high-level/src/main/java/org/elasticsearch/client/RequestConverters.java +++ b/client/rest-high-level/src/main/java/org/elasticsearch/client/RequestConverters.java @@ -56,7 +56,6 @@ import org.elasticsearch.client.security.RefreshPolicy; import org.elasticsearch.client.tasks.TaskId; import org.elasticsearch.cluster.health.ClusterHealthStatus; -import org.elasticsearch.cluster.metadata.IndexMetadata; import org.elasticsearch.common.Nullable; import org.elasticsearch.common.Priority; import org.elasticsearch.common.Strings; @@ -134,9 +133,6 @@ static Request bulk(BulkRequest bulkRequest) throws IOException { parameters.withRefreshPolicy(bulkRequest.getRefreshPolicy()); parameters.withPipeline(bulkRequest.pipeline()); parameters.withRouting(bulkRequest.routing()); - if (bulkRequest.preferV2Templates() != null) { - parameters.putParam(IndexMetadata.PREFER_V2_TEMPLATES_FLAG, Boolean.toString(bulkRequest.preferV2Templates())); - } // Bulk API only supports newline delimited JSON or Smile. Before executing // the bulk, we need to check that all requests have the same content-type // and this content-type is supported by the Bulk API. @@ -350,9 +346,6 @@ static Request index(IndexRequest indexRequest) { parameters.withPipeline(indexRequest.getPipeline()); parameters.withRefreshPolicy(indexRequest.getRefreshPolicy()); parameters.withWaitForActiveShards(indexRequest.waitForActiveShards()); - if (indexRequest.preferV2Templates() != null) { - parameters.putParam(IndexMetadata.PREFER_V2_TEMPLATES_FLAG, Boolean.toString(indexRequest.preferV2Templates())); - } BytesRef source = indexRequest.source().toBytesRef(); ContentType contentType = createContentType(indexRequest.getContentType()); @@ -381,9 +374,6 @@ static Request update(UpdateRequest updateRequest) throws IOException { parameters.withRetryOnConflict(updateRequest.retryOnConflict()); parameters.withVersion(updateRequest.version()); parameters.withVersionType(updateRequest.versionType()); - if (updateRequest.preferV2Templates() != null) { - parameters.putParam(IndexMetadata.PREFER_V2_TEMPLATES_FLAG, Boolean.toString(updateRequest.preferV2Templates())); - } // The Java API allows update requests with different content types // set for the partial document and the upsert document. This client diff --git a/client/rest-high-level/src/main/java/org/elasticsearch/client/indices/CreateIndexRequest.java b/client/rest-high-level/src/main/java/org/elasticsearch/client/indices/CreateIndexRequest.java index 2e55165b5746d..1a018591dc770 100644 --- a/client/rest-high-level/src/main/java/org/elasticsearch/client/indices/CreateIndexRequest.java +++ b/client/rest-high-level/src/main/java/org/elasticsearch/client/indices/CreateIndexRequest.java @@ -25,7 +25,6 @@ import org.elasticsearch.action.support.ActiveShardCount; import org.elasticsearch.client.TimedRequest; import org.elasticsearch.client.Validatable; -import org.elasticsearch.common.Nullable; import org.elasticsearch.common.ParseField; import org.elasticsearch.common.Strings; import org.elasticsearch.common.bytes.BytesArray; @@ -63,7 +62,6 @@ public class CreateIndexRequest extends TimedRequest implements Validatable, ToX private BytesReference mappings; private XContentType mappingsXContentType; - private Boolean preferV2Templates; private final Set aliases = new HashSet<>(); @@ -267,16 +265,6 @@ public CreateIndexRequest aliases(Collection aliases) { return this; } - public CreateIndexRequest preferV2Templates(Boolean preferV2Templates) { - this.preferV2Templates = preferV2Templates; - return this; - } - - @Nullable - public Boolean preferV2Templates() { - return this.preferV2Templates; - } - /** * Sets the settings and mappings as a single source. * diff --git a/docs/reference/api-conventions.asciidoc b/docs/reference/api-conventions.asciidoc index 5ad56b686b6b1..7249a597842f3 100644 --- a/docs/reference/api-conventions.asciidoc +++ b/docs/reference/api-conventions.asciidoc @@ -385,7 +385,6 @@ Returns: "settings": { "index.number_of_replicas": "1", "index.number_of_shards": "1", - "index.prefer_v2_templates": "false", "index.creation_date": "1474389951325", "index.uuid": "n6gzFZTgS664GUfx0Xrpjw", "index.version.created": ..., @@ -422,8 +421,7 @@ Returns: "version": { "created": ... }, - "provided_name" : "twitter", - "prefer_v2_templates": "false" + "provided_name" : "twitter" } } } diff --git a/docs/reference/indices/index-templates.asciidoc b/docs/reference/indices/index-templates.asciidoc index 59d37804a9888..d4f87601dbf68 100644 --- a/docs/reference/indices/index-templates.asciidoc +++ b/docs/reference/indices/index-templates.asciidoc @@ -9,11 +9,9 @@ This documentation is about V2 (version 2) index templates. For V1 templates ple [NOTE] ==== -In {es} 7.8 the `prefer_v2_templates` querystring parameter was introduced to the index, update, -bulk, and create index APIs to allow configuring whether to favor V2 or V1 index templates. In 7.x -the default value for this parameter is `false` meaning that the <> take precedence. In 8.x the default value for the parameter is `true` meaning that V2 -index templates take precedence (V1 templates may still match if no V2 template matches). +In {es} 7.8 V2 templates were introduced. When a V2 index template matches a given index it always +takes precedence over a V1 template. If no V2 index template matches, a V1 template may still match +and be applied. ==== An index template is a way to tell {es} how to configure an index when it is created. Templates are diff --git a/docs/reference/indices/templates.asciidoc b/docs/reference/indices/templates.asciidoc index df53ccf921965..bf5173b612f98 100644 --- a/docs/reference/indices/templates.asciidoc +++ b/docs/reference/indices/templates.asciidoc @@ -9,11 +9,9 @@ replaced by V2 templates. For information about V2 templates, see <> take precedence (V1 templates may still match if no V2 template matches). +In {es} 7.8 V2 templates were introduced. When a V2 index template matches a given index it always +takes precedence over a V1 template. If no V2 index template matches, a V1 template may still match +and be applied. ==== Creates or updates an index template. diff --git a/rest-api-spec/src/main/resources/rest-api-spec/api/bulk.json b/rest-api-spec/src/main/resources/rest-api-spec/api/bulk.json index 34b4bd9939ad3..085ff88d0c135 100644 --- a/rest-api-spec/src/main/resources/rest-api-spec/api/bulk.json +++ b/rest-api-spec/src/main/resources/rest-api-spec/api/bulk.json @@ -87,10 +87,6 @@ "pipeline":{ "type":"string", "description":"The pipeline id to preprocess incoming documents with" - }, - "prefer_v2_templates": { - "type": "boolean", - "description": "favor V2 templates instead of V1 templates during automatic index creation" } }, "body":{ diff --git a/rest-api-spec/src/main/resources/rest-api-spec/api/create.json b/rest-api-spec/src/main/resources/rest-api-spec/api/create.json index 21eca1bc792be..171f3da44d36d 100644 --- a/rest-api-spec/src/main/resources/rest-api-spec/api/create.json +++ b/rest-api-spec/src/main/resources/rest-api-spec/api/create.json @@ -90,10 +90,6 @@ "pipeline":{ "type":"string", "description":"The pipeline id to preprocess incoming documents with" - }, - "prefer_v2_templates": { - "type": "boolean", - "description": "favor V2 templates instead of V1 templates during automatic index creation" } }, "body":{ diff --git a/rest-api-spec/src/main/resources/rest-api-spec/api/index.json b/rest-api-spec/src/main/resources/rest-api-spec/api/index.json index 2f0cee7b0e1b8..7ecd7a0e9279e 100644 --- a/rest-api-spec/src/main/resources/rest-api-spec/api/index.json +++ b/rest-api-spec/src/main/resources/rest-api-spec/api/index.json @@ -139,10 +139,6 @@ "pipeline":{ "type":"string", "description":"The pipeline id to preprocess incoming documents with" - }, - "prefer_v2_templates": { - "type": "boolean", - "description": "favor V2 templates instead of V1 templates during automatic index creation" } }, "body":{ diff --git a/rest-api-spec/src/main/resources/rest-api-spec/api/indices.create.json b/rest-api-spec/src/main/resources/rest-api-spec/api/indices.create.json index 29252f06d487f..2b9e8617a661c 100644 --- a/rest-api-spec/src/main/resources/rest-api-spec/api/indices.create.json +++ b/rest-api-spec/src/main/resources/rest-api-spec/api/indices.create.json @@ -37,10 +37,6 @@ "master_timeout":{ "type":"time", "description":"Specify timeout for connection to master" - }, - "prefer_v2_templates": { - "type": "boolean", - "description": "favor V2 templates instead of V1 templates during index creation" } }, "body":{ diff --git a/rest-api-spec/src/main/resources/rest-api-spec/api/indices.rollover.json b/rest-api-spec/src/main/resources/rest-api-spec/api/indices.rollover.json index 727070de94487..4ed1f9b490969 100644 --- a/rest-api-spec/src/main/resources/rest-api-spec/api/indices.rollover.json +++ b/rest-api-spec/src/main/resources/rest-api-spec/api/indices.rollover.json @@ -57,10 +57,6 @@ "wait_for_active_shards":{ "type":"string", "description":"Set the number of active shards to wait for on the newly created rollover index before the operation returns." - }, - "prefer_v2_templates": { - "type": "boolean", - "description": "favor V2 templates instead of V1 templates during automatic index creation" } }, "body":{ diff --git a/rest-api-spec/src/main/resources/rest-api-spec/api/update.json b/rest-api-spec/src/main/resources/rest-api-spec/api/update.json index 479a9111ac2a6..45b6f764387eb 100644 --- a/rest-api-spec/src/main/resources/rest-api-spec/api/update.json +++ b/rest-api-spec/src/main/resources/rest-api-spec/api/update.json @@ -99,10 +99,6 @@ "if_primary_term":{ "type":"number", "description":"only perform the update operation if the last operation that has changed the document has the specified primary term" - }, - "prefer_v2_templates": { - "type": "boolean", - "description": "favor V2 templates instead of V1 templates during automatic index creation" } }, "body":{ diff --git a/rest-api-spec/src/main/resources/rest-api-spec/test/indices.put_index_template/15_composition.yml b/rest-api-spec/src/main/resources/rest-api-spec/test/indices.put_index_template/15_composition.yml index 9ef465bc1a10b..0099ec96b2e9d 100644 --- a/rest-api-spec/src/main/resources/rest-api-spec/test/indices.put_index_template/15_composition.yml +++ b/rest-api-spec/src/main/resources/rest-api-spec/test/indices.put_index_template/15_composition.yml @@ -61,7 +61,6 @@ - do: indices.create: index: bar-baz - prefer_v2_templates: true body: settings: index.priority: 17 @@ -121,7 +120,6 @@ - do: indices.create: - prefer_v2_templates: true index: bar-baz - do: @@ -166,7 +164,6 @@ - do: indices.create: - prefer_v2_templates: true index: bazfoo - do: @@ -196,7 +193,6 @@ - do: indices.create: - prefer_v2_templates: true index: eggplant - do: @@ -204,32 +200,3 @@ index: eggplant - match: {eggplant.settings.index.number_of_shards: "3"} - ---- -"Version 1 templates are preferred if the flag is set": - - skip: - version: " - 7.7.99" - reason: "index template v2 API unavailable before 7.8" - features: allowed_warnings - - - do: - allowed_warnings: - - "index template [my-template] has index patterns [eggplant] matching patterns from existing older templates [global] with patterns (global => [*]); this template [my-template] will take precedence during new index creation" - indices.put_index_template: - name: my-template - body: - index_patterns: ["eggplant"] - template: - settings: - number_of_replicas: 2 - - - do: - indices.create: - prefer_v2_templates: false - index: eggplant - - - do: - indices.get: - index: eggplant - - - match: {eggplant.settings.index.number_of_replicas: "1"} diff --git a/server/src/internalClusterTest/java/org/elasticsearch/indices/template/TemplatePreferenceIT.java b/server/src/internalClusterTest/java/org/elasticsearch/indices/template/TemplatePreferenceIT.java deleted file mode 100644 index d6dc2a991ce20..0000000000000 --- a/server/src/internalClusterTest/java/org/elasticsearch/indices/template/TemplatePreferenceIT.java +++ /dev/null @@ -1,256 +0,0 @@ -/* - * Licensed to Elasticsearch under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -package org.elasticsearch.indices.template; - -import org.elasticsearch.action.admin.indices.alias.Alias; -import org.elasticsearch.action.admin.indices.create.CreateIndexRequest; -import org.elasticsearch.action.admin.indices.rollover.RolloverRequest; -import org.elasticsearch.action.admin.indices.settings.get.GetSettingsResponse; -import org.elasticsearch.action.admin.indices.template.delete.DeleteIndexTemplateV2Action; -import org.elasticsearch.action.admin.indices.template.put.PutIndexTemplateV2Action; -import org.elasticsearch.action.bulk.BulkRequest; -import org.elasticsearch.action.index.IndexRequest; -import org.elasticsearch.action.update.UpdateRequest; -import org.elasticsearch.cluster.metadata.IndexTemplateV2; -import org.elasticsearch.cluster.metadata.Template; -import org.elasticsearch.common.settings.Settings; -import org.elasticsearch.test.ESSingleNodeTestCase; -import org.junit.After; -import org.junit.Before; - -import java.util.Collections; - -import static org.elasticsearch.test.hamcrest.ElasticsearchAssertions.assertAcked; -import static org.hamcrest.Matchers.equalTo; - -public class TemplatePreferenceIT extends ESSingleNodeTestCase { - - private static final String INDEX = "index"; - - @Before - public void setup() throws Exception { - assertAcked(client().admin().indices().preparePutTemplate("v1") - .setOrder(10) - .setSettings(Settings.builder() - .put("index.priority", 15) - .put("index.soft_deletes.enabled", true) - .build()) - .setPatterns(Collections.singletonList(INDEX + "*")).get()); - - Template v2Settings = new Template(Settings.builder() - .put("index.priority", 23) - .build(), null, null); - IndexTemplateV2 v2template = new IndexTemplateV2(Collections.singletonList(INDEX + "*"), v2Settings, null, null, null, null); - PutIndexTemplateV2Action.Request request = new PutIndexTemplateV2Action.Request("v2"); - request.indexTemplate(v2template); - assertAcked(client().execute(PutIndexTemplateV2Action.INSTANCE, request).get()); - } - - @After - public void cleanup() throws Exception { - assertAcked(client().admin().indices().prepareDeleteTemplate("v1").get()); - assertAcked(client().execute(DeleteIndexTemplateV2Action.INSTANCE, new DeleteIndexTemplateV2Action.Request("v2")).get()); - } - - public void testCreateIndexPreference() throws Exception { - client().admin().indices().prepareCreate(INDEX).get(); - assertUsedV1(); - - client().admin().indices().create(new CreateIndexRequest(INDEX).preferV2Templates(false)).get(); - assertUsedV1(); - - client().admin().indices().create(new CreateIndexRequest(INDEX).preferV2Templates(true)).get(); - assertUsedV2(); - } - - public void testIndexingRequestPreference() throws Exception { - client().index(new IndexRequest(INDEX).source("foo", "bar")).get(); - assertUsedV1(); - - client().index(new IndexRequest(INDEX).source("foo", "bar").preferV2Templates(false)).get(); - assertUsedV1(); - - client().index(new IndexRequest(INDEX).source("foo", "bar").preferV2Templates(true)).get(); - assertUsedV2(); - - client().update(new UpdateRequest(INDEX, "1").doc("foo", "bar").docAsUpsert(true)).get(); - assertUsedV1(); - - client().update(new UpdateRequest(INDEX, "1").doc("foo", "bar").docAsUpsert(true).preferV2Templates(false)).get(); - assertUsedV1(); - - client().update(new UpdateRequest(INDEX, "1").doc("foo", "bar").docAsUpsert(true).preferV2Templates(true)).get(); - assertUsedV2(); - - client().bulk(new BulkRequest(INDEX).add(new IndexRequest(INDEX).source("foo", "bar"))).get(); - assertUsedV1(); - - client().bulk(new BulkRequest(INDEX).add(new IndexRequest(INDEX).source("foo", "bar")).preferV2Templates(false)).get(); - assertUsedV1(); - - client().bulk(new BulkRequest(INDEX).add(new IndexRequest(INDEX).source("foo", "bar")).preferV2Templates(true)).get(); - assertUsedV2(); - } - - public void testRolloverMaintainsSetting() throws Exception { - { - client().admin().indices().prepareCreate(INDEX + "-1") - .addAlias(new Alias("alias").writeIndex(true)) - .get(); - - client().admin().indices().prepareRolloverIndex("alias").get(); - GetSettingsResponse resp = client().admin().indices().prepareGetSettings().setIndices(INDEX + "-000002").get(); - assertThat("expected index to use V1 template and have priority of 15", - resp.getSetting(INDEX + "-000002", "index.priority"), equalTo("15")); - client().admin().indices().prepareDelete(INDEX + "*").get(); - } - - { - client().admin().indices().prepareCreate(INDEX + "-1") - .addAlias(new Alias("alias").writeIndex(true)) - .get(); - - RolloverRequest request = new RolloverRequest("alias", INDEX + "-000002"); - request.getCreateIndexRequest().preferV2Templates(false); - client().admin().indices().rolloverIndex(request).get(); - GetSettingsResponse resp = client().admin().indices().prepareGetSettings().setIndices(INDEX + "-000002").get(); - assertThat("expected index to use V1 template and have priority of 15", - resp.getSetting(INDEX + "-000002", "index.priority"), equalTo("15")); - client().admin().indices().prepareDelete(INDEX + "*").get(); - } - - { - client().admin().indices().prepareCreate(INDEX + "-1") - .addAlias(new Alias("alias").writeIndex(true)) - .get(); - - RolloverRequest request = new RolloverRequest("alias", INDEX + "-000002"); - request.getCreateIndexRequest().preferV2Templates(true); - client().admin().indices().rolloverIndex(request).get(); - GetSettingsResponse resp = client().admin().indices().prepareGetSettings().setIndices(INDEX + "-000002").get(); - assertThat("expected index to use V2 template and have priority of 23", - resp.getSetting(INDEX + "-000002", "index.priority"), equalTo("23")); - client().admin().indices().prepareDelete(INDEX + "*").get(); - } - - { - client().admin().indices().create(new CreateIndexRequest(INDEX + "-1") - .alias(new Alias("alias").writeIndex(true)) - .preferV2Templates(false)) - .get(); - - client().admin().indices().prepareRolloverIndex("alias").get(); - GetSettingsResponse resp = client().admin().indices().prepareGetSettings().setIndices(INDEX + "-000002").get(); - assertThat("expected index to use V1 template and have priority of 15", - resp.getSetting(INDEX + "-000002", "index.priority"), equalTo("15")); - client().admin().indices().prepareDelete(INDEX + "*").get(); - } - - { - client().admin().indices().create(new CreateIndexRequest(INDEX + "-1") - .alias(new Alias("alias").writeIndex(true)) - .preferV2Templates(false)) - .get(); - - RolloverRequest request = new RolloverRequest("alias", INDEX + "-000002"); - request.getCreateIndexRequest().preferV2Templates(false); - client().admin().indices().rolloverIndex(request).get(); - GetSettingsResponse resp = client().admin().indices().prepareGetSettings().setIndices(INDEX + "-000002").get(); - assertThat("expected index to use V1 template and have priority of 15", - resp.getSetting(INDEX + "-000002", "index.priority"), equalTo("15")); - client().admin().indices().prepareDelete(INDEX + "*").get(); - } - - { - client().admin().indices().create(new CreateIndexRequest(INDEX + "-1") - .alias(new Alias("alias").writeIndex(true)) - .preferV2Templates(false)) - .get(); - - RolloverRequest request = new RolloverRequest("alias", INDEX + "-000002"); - request.getCreateIndexRequest().preferV2Templates(true); - client().admin().indices().rolloverIndex(request).get(); - GetSettingsResponse resp = client().admin().indices().prepareGetSettings().setIndices(INDEX + "-000002").get(); - assertThat("expected index to use V2 template and have priority of 23", - resp.getSetting(INDEX + "-000002", "index.priority"), equalTo("23")); - client().admin().indices().prepareDelete(INDEX + "*").get(); - } - - { - client().admin().indices().create(new CreateIndexRequest(INDEX + "-1") - .alias(new Alias("alias").writeIndex(true)) - .preferV2Templates(true)) - .get(); - - client().admin().indices().prepareRolloverIndex("alias").get(); - GetSettingsResponse resp = client().admin().indices().prepareGetSettings().setIndices(INDEX + "-000002").get(); - assertThat("expected index to use V2 template and have priority of 23", - resp.getSetting(INDEX + "-000002", "index.priority"), equalTo("23")); - client().admin().indices().prepareDelete(INDEX + "*").get(); - } - - { - client().admin().indices().create(new CreateIndexRequest(INDEX + "-1") - .alias(new Alias("alias").writeIndex(true)) - .preferV2Templates(true)) - .get(); - - RolloverRequest request = new RolloverRequest("alias", INDEX + "-000002"); - request.getCreateIndexRequest().preferV2Templates(false); - client().admin().indices().rolloverIndex(request).get(); - GetSettingsResponse resp = client().admin().indices().prepareGetSettings().setIndices(INDEX + "-000002").get(); - assertThat("expected index to use V1 template and have priority of 15", - resp.getSetting(INDEX + "-000002", "index.priority"), equalTo("15")); - client().admin().indices().prepareDelete(INDEX + "*").get(); - } - - { - client().admin().indices().create(new CreateIndexRequest(INDEX + "-1") - .alias(new Alias("alias").writeIndex(true)) - .preferV2Templates(true)) - .get(); - - RolloverRequest request = new RolloverRequest("alias", INDEX + "-000002"); - request.getCreateIndexRequest().preferV2Templates(true); - client().admin().indices().rolloverIndex(request).get(); - GetSettingsResponse resp = client().admin().indices().prepareGetSettings().setIndices(INDEX + "-000002").get(); - assertThat("expected index to use V2 template and have priority of 23", - resp.getSetting(INDEX + "-000002", "index.priority"), equalTo("23")); - client().admin().indices().prepareDelete(INDEX + "*").get(); - } - - assertWarnings("index [index-000002] matches multiple v1 templates [one_shard_index_template, " + - "random-soft-deletes-template, v1], v2 index templates will only match a single index template"); - } - - private void assertUsedV1() { - GetSettingsResponse resp = client().admin().indices().prepareGetSettings().setIndices(INDEX).get(); - assertThat("expected index to use V1 template and have priority of 15", - resp.getSetting(INDEX, "index.priority"), equalTo("15")); - client().admin().indices().prepareDelete(INDEX).get(); - } - - private void assertUsedV2() { - GetSettingsResponse resp = client().admin().indices().prepareGetSettings().setIndices(INDEX).get(); - assertThat("expected index to use V2 template and have priority of 23", - resp.getSetting(INDEX, "index.priority"), equalTo("23")); - client().admin().indices().prepareDelete(INDEX).get(); - } -} diff --git a/server/src/main/java/org/elasticsearch/action/admin/indices/create/CreateIndexClusterStateUpdateRequest.java b/server/src/main/java/org/elasticsearch/action/admin/indices/create/CreateIndexClusterStateUpdateRequest.java index 7df9ae194df64..f57a936db4ce6 100644 --- a/server/src/main/java/org/elasticsearch/action/admin/indices/create/CreateIndexClusterStateUpdateRequest.java +++ b/server/src/main/java/org/elasticsearch/action/admin/indices/create/CreateIndexClusterStateUpdateRequest.java @@ -25,7 +25,6 @@ import org.elasticsearch.cluster.ack.ClusterStateUpdateRequest; import org.elasticsearch.cluster.block.ClusterBlock; import org.elasticsearch.cluster.metadata.IndexMetadata; -import org.elasticsearch.common.Nullable; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.index.Index; @@ -45,7 +44,6 @@ public class CreateIndexClusterStateUpdateRequest extends ClusterStateUpdateRequ private Index recoverFrom; private ResizeType resizeType; private boolean copySettings; - private Boolean preferV2Templates; private Settings settings = Settings.Builder.EMPTY_SETTINGS; @@ -98,11 +96,6 @@ public CreateIndexClusterStateUpdateRequest copySettings(final boolean copySetti return this; } - public CreateIndexClusterStateUpdateRequest preferV2Templates(@Nullable Boolean preferV2Templates) { - this.preferV2Templates = preferV2Templates; - return this; - } - public String cause() { return cause; } @@ -153,9 +146,4 @@ public ResizeType resizeType() { public boolean copySettings() { return copySettings; } - - @Nullable - public Boolean preferV2Templates() { - return preferV2Templates; - } } diff --git a/server/src/main/java/org/elasticsearch/action/admin/indices/create/CreateIndexRequest.java b/server/src/main/java/org/elasticsearch/action/admin/indices/create/CreateIndexRequest.java index bffbdb78d9afa..45825a4fa24be 100644 --- a/server/src/main/java/org/elasticsearch/action/admin/indices/create/CreateIndexRequest.java +++ b/server/src/main/java/org/elasticsearch/action/admin/indices/create/CreateIndexRequest.java @@ -29,7 +29,6 @@ import org.elasticsearch.action.support.ActiveShardCount; import org.elasticsearch.action.support.IndicesOptions; import org.elasticsearch.action.support.master.AcknowledgedRequest; -import org.elasticsearch.common.Nullable; import org.elasticsearch.common.ParseField; import org.elasticsearch.common.Strings; import org.elasticsearch.common.bytes.BytesArray; @@ -84,8 +83,6 @@ public class CreateIndexRequest extends AcknowledgedRequest private final Map mappings = new HashMap<>(); - private Boolean preferV2Templates; - private final Set aliases = new HashSet<>(); private ActiveShardCount waitForActiveShards = ActiveShardCount.DEFAULT; @@ -121,9 +118,6 @@ public CreateIndexRequest(StreamInput in) throws IOException { in.readBoolean(); // updateAllTypes } waitForActiveShards = ActiveShardCount.readFrom(in); - if (in.getVersion().onOrAfter(Version.V_7_8_0)) { - preferV2Templates = in.readOptionalBoolean(); - } } public CreateIndexRequest() { @@ -175,16 +169,6 @@ public CreateIndexRequest index(String index) { return this; } - public CreateIndexRequest preferV2Templates(@Nullable Boolean preferV2Templates) { - this.preferV2Templates = preferV2Templates; - return this; - } - - @Nullable - public Boolean preferV2Templates() { - return this.preferV2Templates; - } - /** * The settings to create the index with. */ @@ -499,9 +483,6 @@ public void writeTo(StreamOutput out) throws IOException { out.writeBoolean(true); // updateAllTypes } waitForActiveShards.writeTo(out); - if (out.getVersion().onOrAfter(Version.V_7_8_0)) { - out.writeOptionalBoolean(preferV2Templates); - } } @Override diff --git a/server/src/main/java/org/elasticsearch/action/admin/indices/create/TransportCreateIndexAction.java b/server/src/main/java/org/elasticsearch/action/admin/indices/create/TransportCreateIndexAction.java index 4ea7d64b16135..34867ee037e37 100644 --- a/server/src/main/java/org/elasticsearch/action/admin/indices/create/TransportCreateIndexAction.java +++ b/server/src/main/java/org/elasticsearch/action/admin/indices/create/TransportCreateIndexAction.java @@ -87,7 +87,6 @@ static void innerCreateIndex(CreateIndexRequest request, .ackTimeout(request.timeout()).masterNodeTimeout(request.masterNodeTimeout()) .settings(request.settings()).mappings(request.mappings()) .aliases(request.aliases()) - .preferV2Templates(request.preferV2Templates()) .waitForActiveShards(request.waitForActiveShards()); createIndexService.createIndex(updateRequest, ActionListener.map(listener, response -> diff --git a/server/src/main/java/org/elasticsearch/action/admin/indices/rollover/MetadataRolloverService.java b/server/src/main/java/org/elasticsearch/action/admin/indices/rollover/MetadataRolloverService.java index 487c3c50d8a04..9f99c3c2aa538 100644 --- a/server/src/main/java/org/elasticsearch/action/admin/indices/rollover/MetadataRolloverService.java +++ b/server/src/main/java/org/elasticsearch/action/admin/indices/rollover/MetadataRolloverService.java @@ -201,8 +201,7 @@ static CreateIndexClusterStateUpdateRequest prepareCreateIndexRequest(final Stri .settings(b.build()) .aliases(createIndexRequest.aliases()) .waitForActiveShards(ActiveShardCount.NONE) // not waiting for shards here, will wait on the alias switch operation - .mappings(createIndexRequest.mappings()) - .preferV2Templates(createIndexRequest.preferV2Templates()); + .mappings(createIndexRequest.mappings()); } /** diff --git a/server/src/main/java/org/elasticsearch/action/admin/indices/rollover/TransportRolloverAction.java b/server/src/main/java/org/elasticsearch/action/admin/indices/rollover/TransportRolloverAction.java index c88d74812b9af..04f850a6824f6 100644 --- a/server/src/main/java/org/elasticsearch/action/admin/indices/rollover/TransportRolloverAction.java +++ b/server/src/main/java/org/elasticsearch/action/admin/indices/rollover/TransportRolloverAction.java @@ -40,7 +40,6 @@ import org.elasticsearch.common.Nullable; import org.elasticsearch.common.inject.Inject; import org.elasticsearch.common.io.stream.StreamInput; -import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.unit.ByteSizeValue; import org.elasticsearch.index.shard.DocsStats; import org.elasticsearch.tasks.Task; @@ -135,13 +134,6 @@ public void onResponse(IndicesStatsResponse statsResponse) { + rolloverIndexName + "]", new ClusterStateUpdateTask() { @Override public ClusterState execute(ClusterState currentState) throws Exception { - // If they haven't explicitly specified whether to use V2 or V1 templates, inherit their preference - // from the existing index (the source index) settings. - if (rolloverRequest.getCreateIndexRequest().preferV2Templates() == null) { - Settings originalIndexSettings = currentState.metadata().index(sourceIndexName).getSettings(); - rolloverRequest.getCreateIndexRequest() - .preferV2Templates(IndexMetadata.PREFER_V2_TEMPLATES_SETTING.get(originalIndexSettings)); - } MetadataRolloverService.RolloverResult rolloverResult = rolloverService.rolloverClusterState(currentState, rolloverRequest.getRolloverTarget(), rolloverRequest.getNewIndexName(), rolloverRequest.getCreateIndexRequest(), metConditions, false); diff --git a/server/src/main/java/org/elasticsearch/action/bulk/BulkRequest.java b/server/src/main/java/org/elasticsearch/action/bulk/BulkRequest.java index 5c897a42d8c7d..ee373446e42f4 100644 --- a/server/src/main/java/org/elasticsearch/action/bulk/BulkRequest.java +++ b/server/src/main/java/org/elasticsearch/action/bulk/BulkRequest.java @@ -19,7 +19,6 @@ package org.elasticsearch.action.bulk; -import org.elasticsearch.Version; import org.elasticsearch.action.ActionRequest; import org.elasticsearch.action.ActionRequestValidationException; import org.elasticsearch.action.CompositeIndicesRequest; @@ -76,7 +75,6 @@ public class BulkRequest extends ActionRequest implements CompositeIndicesReques private String globalRouting; private String globalIndex; private String globalType; - private Boolean preferV2Templates; private long sizeInBytes = 0; @@ -91,9 +89,6 @@ public BulkRequest(StreamInput in) throws IOException { } refreshPolicy = RefreshPolicy.readFrom(in); timeout = in.readTimeValue(); - if (in.getVersion().onOrAfter(Version.V_7_8_0)) { - this.preferV2Templates = in.readOptionalBoolean(); - } } public BulkRequest(@Nullable String globalIndex) { @@ -212,16 +207,6 @@ public List> requests() { return this.requests; } - public BulkRequest preferV2Templates(@Nullable Boolean preferV2Templates) { - this.preferV2Templates = preferV2Templates; - return this; - } - - @Nullable - public Boolean preferV2Templates() { - return this.preferV2Templates; - } - /** * The number of actions in the bulk request. */ @@ -424,9 +409,6 @@ public void writeTo(StreamOutput out) throws IOException { } refreshPolicy.writeTo(out); out.writeTimeValue(timeout); - if (out.getVersion().onOrAfter(Version.V_7_8_0)) { - out.writeOptionalBoolean(preferV2Templates); - } } @Override diff --git a/server/src/main/java/org/elasticsearch/action/bulk/TransportBulkAction.java b/server/src/main/java/org/elasticsearch/action/bulk/TransportBulkAction.java index beb8ae58444b2..870fe6846e5a4 100644 --- a/server/src/main/java/org/elasticsearch/action/bulk/TransportBulkAction.java +++ b/server/src/main/java/org/elasticsearch/action/bulk/TransportBulkAction.java @@ -169,9 +169,7 @@ protected void doExecute(Task task, BulkRequest bulkRequest, ActionListener() { @Override public void onResponse(CreateIndexResponse result) { @@ -278,8 +276,7 @@ public void onFailure(Exception e) { } } - static boolean resolvePipelines(final DocWriteRequest originalRequest, final IndexRequest indexRequest, - final boolean preferV2Templates, final Metadata metadata) { + static boolean resolvePipelines(final DocWriteRequest originalRequest, final IndexRequest indexRequest, final Metadata metadata) { if (indexRequest.isPipelineResolved() == false) { final String requestPipeline = indexRequest.getPipeline(); indexRequest.setPipeline(IngestService.NOOP_PIPELINE_NAME); @@ -319,7 +316,7 @@ static boolean resolvePipelines(final DocWriteRequest originalRequest, final // templates to look for pipelines in either a matching V2 template (which takes // precedence), or if a V2 template does not match, any V1 templates String v2Template = MetadataIndexTemplateService.findV2Template(metadata, indexRequest.index(), false); - if (v2Template != null && preferV2Templates) { + if (v2Template != null) { Settings settings = MetadataIndexTemplateService.resolveSettings(metadata, v2Template); if (defaultPipeline == null && IndexSettings.DEFAULT_PIPELINE.exists(settings)) { defaultPipeline = IndexSettings.DEFAULT_PIPELINE.get(settings); @@ -388,7 +385,6 @@ boolean shouldAutoCreate(String index, ClusterState state) { } void createIndex(String index, - Boolean preferV2Templates, TimeValue timeout, Version minNodeVersion, ActionListener listener) { @@ -396,7 +392,6 @@ void createIndex(String index, createIndexRequest.index(index); createIndexRequest.cause("auto(bulk api)"); createIndexRequest.masterNodeTimeout(timeout); - createIndexRequest.preferV2Templates(preferV2Templates); if (minNodeVersion.onOrAfter(Version.V_7_8_0)) { client.execute(AutoCreateAction.INSTANCE, createIndexRequest, listener); } else { diff --git a/server/src/main/java/org/elasticsearch/action/bulk/TransportSingleItemBulkWriteAction.java b/server/src/main/java/org/elasticsearch/action/bulk/TransportSingleItemBulkWriteAction.java index 60f144f5ead68..c080006b19d77 100644 --- a/server/src/main/java/org/elasticsearch/action/bulk/TransportSingleItemBulkWriteAction.java +++ b/server/src/main/java/org/elasticsearch/action/bulk/TransportSingleItemBulkWriteAction.java @@ -22,7 +22,6 @@ import org.elasticsearch.action.ActionListener; import org.elasticsearch.action.DocWriteRequest; import org.elasticsearch.action.DocWriteResponse; -import org.elasticsearch.action.index.IndexRequest; import org.elasticsearch.action.support.ActionFilters; import org.elasticsearch.action.support.HandledTransportAction; import org.elasticsearch.action.support.WriteRequest; @@ -73,9 +72,6 @@ public static BulkRequest toSingleItemBulkRequest(ReplicatedWriteRequest requ bulkRequest.setRefreshPolicy(request.getRefreshPolicy()); bulkRequest.timeout(request.timeout()); bulkRequest.waitForActiveShards(request.waitForActiveShards()); - if (request instanceof IndexRequest) { - bulkRequest.preferV2Templates(((IndexRequest) request).preferV2Templates()); - } request.setRefreshPolicy(WriteRequest.RefreshPolicy.NONE); return bulkRequest; } diff --git a/server/src/main/java/org/elasticsearch/action/index/IndexRequest.java b/server/src/main/java/org/elasticsearch/action/index/IndexRequest.java index 10b1395d3b0aa..2a9101a848fcd 100644 --- a/server/src/main/java/org/elasticsearch/action/index/IndexRequest.java +++ b/server/src/main/java/org/elasticsearch/action/index/IndexRequest.java @@ -117,7 +117,6 @@ public class IndexRequest extends ReplicatedWriteRequest implement private boolean isRetry = false; private long ifSeqNo = UNASSIGNED_SEQ_NO; private long ifPrimaryTerm = UNASSIGNED_PRIMARY_TERM; - private Boolean preferV2Templates; public IndexRequest(StreamInput in) throws IOException { super(in); @@ -156,9 +155,6 @@ public IndexRequest(StreamInput in) throws IOException { ifSeqNo = UNASSIGNED_SEQ_NO; ifPrimaryTerm = UNASSIGNED_PRIMARY_TERM; } - if (in.getVersion().onOrAfter(Version.V_7_8_0)) { - this.preferV2Templates = in.readOptionalBoolean(); - } } public IndexRequest() { @@ -643,16 +639,6 @@ public long ifSeqNo() { return ifSeqNo; } - public IndexRequest preferV2Templates(@Nullable Boolean preferV2Templates) { - this.preferV2Templates = preferV2Templates; - return this; - } - - @Nullable - public Boolean preferV2Templates() { - return this.preferV2Templates; - } - /** * If set, only perform this indexing request if the document was last modification was assigned this primary term. * @@ -756,9 +742,6 @@ public void writeTo(StreamOutput out) throws IOException { "sequence number based compare and write is not supported until all nodes are on version 7.0 or higher. " + "Stream version [" + out.getVersion() + "]"); } - if (out.getVersion().onOrAfter(Version.V_7_8_0)) { - out.writeOptionalBoolean(preferV2Templates); - } } @Override diff --git a/server/src/main/java/org/elasticsearch/action/update/TransportUpdateAction.java b/server/src/main/java/org/elasticsearch/action/update/TransportUpdateAction.java index bc179350f029c..db1bd1100916f 100644 --- a/server/src/main/java/org/elasticsearch/action/update/TransportUpdateAction.java +++ b/server/src/main/java/org/elasticsearch/action/update/TransportUpdateAction.java @@ -120,7 +120,6 @@ protected void doExecute(Task task, final UpdateRequest request, final ActionLis client.admin().indices().create(new CreateIndexRequest() .index(request.index()) .cause("auto(update api)") - .preferV2Templates(request.preferV2Templates()) .masterNodeTimeout(request.timeout()), new ActionListener() { @Override public void onResponse(CreateIndexResponse result) { diff --git a/server/src/main/java/org/elasticsearch/action/update/UpdateRequest.java b/server/src/main/java/org/elasticsearch/action/update/UpdateRequest.java index 5f7b9eb9a04de..bb1b732e78d77 100644 --- a/server/src/main/java/org/elasticsearch/action/update/UpdateRequest.java +++ b/server/src/main/java/org/elasticsearch/action/update/UpdateRequest.java @@ -122,7 +122,6 @@ public class UpdateRequest extends InstanceShardOperationRequest private boolean scriptedUpsert = false; private boolean docAsUpsert = false; private boolean detectNoop = true; - private Boolean preferV2Templates; @Nullable private IndexRequest doc; @@ -169,9 +168,6 @@ public UpdateRequest(StreamInput in) throws IOException { ifPrimaryTerm = in.readVLong(); detectNoop = in.readBoolean(); scriptedUpsert = in.readBoolean(); - if (in.getVersion().onOrAfter(Version.V_7_8_0)) { - preferV2Templates = in.readOptionalBoolean(); - } } public UpdateRequest(String index, String id) { @@ -873,16 +869,6 @@ public UpdateRequest scriptedUpsert(boolean scriptedUpsert) { return this; } - @Nullable - public Boolean preferV2Templates() { - return this.preferV2Templates; - } - - public UpdateRequest preferV2Templates(@Nullable Boolean preferV2Templates) { - this.preferV2Templates = preferV2Templates; - return this; - } - @Override public void writeTo(StreamOutput out) throws IOException { super.writeTo(out); @@ -936,9 +922,6 @@ public void writeTo(StreamOutput out) throws IOException { out.writeVLong(ifPrimaryTerm); out.writeBoolean(detectNoop); out.writeBoolean(scriptedUpsert); - if (out.getVersion().onOrAfter(Version.V_7_8_0)) { - out.writeOptionalBoolean(preferV2Templates); - } } @Override diff --git a/server/src/main/java/org/elasticsearch/cluster/metadata/IndexMetadata.java b/server/src/main/java/org/elasticsearch/cluster/metadata/IndexMetadata.java index 39b778f463515..1e9510c031cdb 100644 --- a/server/src/main/java/org/elasticsearch/cluster/metadata/IndexMetadata.java +++ b/server/src/main/java/org/elasticsearch/cluster/metadata/IndexMetadata.java @@ -246,11 +246,6 @@ public Iterator> settings() { Setting.simpleString(key, value -> IP_VALIDATOR.accept(key, value), Property.Dynamic, Property.IndexScope)); public static final Setting.AffixSetting INDEX_ROUTING_INITIAL_RECOVERY_GROUP_SETTING = Setting.prefixKeySetting("index.routing.allocation.initial_recovery.", key -> Setting.simpleString(key)); - // this is only setable internally not a registered setting!! - public static final String PREFER_V2_TEMPLATES_FLAG = "prefer_v2_templates"; - public static final String SETTING_PREFER_V2_TEMPLATES = "index." + PREFER_V2_TEMPLATES_FLAG; - public static final Setting PREFER_V2_TEMPLATES_SETTING = Setting.boolSetting(SETTING_PREFER_V2_TEMPLATES, false, - Property.Dynamic, Property.IndexScope); /** * The number of active shard copies to check for before proceeding with a write operation. diff --git a/server/src/main/java/org/elasticsearch/cluster/metadata/MetadataCreateIndexService.java b/server/src/main/java/org/elasticsearch/cluster/metadata/MetadataCreateIndexService.java index 0ed10ee63a786..5694fae69714b 100644 --- a/server/src/main/java/org/elasticsearch/cluster/metadata/MetadataCreateIndexService.java +++ b/server/src/main/java/org/elasticsearch/cluster/metadata/MetadataCreateIndexService.java @@ -327,19 +327,14 @@ public ClusterState applyCreateIndexRequest(ClusterState currentState, CreateInd // Check to see if a v2 template matched final String v2Template = MetadataIndexTemplateService.findV2Template(currentState.metadata(), request.index(), isHiddenFromRequest == null ? false : isHiddenFromRequest); - final boolean preferV2Templates = resolvePreferV2Templates(request); - if (v2Template != null && preferV2Templates) { + if (v2Template != null) { // If a v2 template was found, it takes precedence over all v1 templates, so create // the index using that template and the request's specified settings return applyCreateIndexRequestWithV2Template(currentState, request, silent, v2Template, metadataTransformer); } else { - if (v2Template != null) { - logger.debug("ignoring matching index template [{}] as [prefer_v2_templates] is set to false", v2Template); - } - // A v2 template wasn't found (or is not preferred), check the v1 templates, in the - // event no templates are found creation still works using the request's specified - // index settings + // A v2 template wasn't found, check the v1 templates, in the event no templates are + // found creation still works using the request's specified index settings final List v1Templates = MetadataIndexTemplateService.findV1Templates(currentState.metadata(), request.index(), isHiddenFromRequest); @@ -354,11 +349,6 @@ public ClusterState applyCreateIndexRequest(ClusterState currentState, CreateInd } } - private static boolean resolvePreferV2Templates(CreateIndexClusterStateUpdateRequest request) { - return request.preferV2Templates() == null ? - IndexMetadata.PREFER_V2_TEMPLATES_SETTING.get(request.settings()) : request.preferV2Templates(); - } - public ClusterState applyCreateIndexRequest(ClusterState currentState, CreateIndexClusterStateUpdateRequest request, boolean silent) throws Exception { return applyCreateIndexRequest(currentState, request, silent, null); @@ -428,8 +418,7 @@ private ClusterState applyCreateIndexWithTemporaryService(final ClusterState cur private IndexMetadata buildAndValidateTemporaryIndexMetadata(final ClusterState currentState, final Settings aggregatedIndexSettings, final CreateIndexClusterStateUpdateRequest request, - final int routingNumShards, - final boolean preferV2Templates) { + final int routingNumShards) { final boolean isHiddenAfterTemplates = IndexMetadata.INDEX_HIDDEN_SETTING.get(aggregatedIndexSettings); validateDotIndex(request.index(), currentState, isHiddenAfterTemplates); @@ -437,12 +426,6 @@ private IndexMetadata buildAndValidateTemporaryIndexMetadata(final ClusterState // remove the setting it's temporary and is only relevant once we create the index final Settings.Builder settingsBuilder = Settings.builder().put(aggregatedIndexSettings); settingsBuilder.remove(IndexMetadata.INDEX_NUMBER_OF_ROUTING_SHARDS_SETTING.getKey()); - // This setting was added in 7.8, so we can only add it if all nodes are 7.8+, otherwise - // the nodes can throw an error about "unknown setting [index.prefer_v2_templates]" when - // they go to create the index - if (currentState.nodes().mastersFirstStream().allMatch(dn -> dn.getVersion().onOrAfter(Version.V_7_8_0))) { - settingsBuilder.put(IndexMetadata.PREFER_V2_TEMPLATES_SETTING.getKey(), preferV2Templates); - } final Settings indexSettings = settingsBuilder.build(); final IndexMetadata.Builder tmpImdBuilder = IndexMetadata.builder(request.index()); @@ -482,8 +465,7 @@ private ClusterState applyCreateIndexRequestWithV1Templates(final ClusterState c aggregateIndexSettings(currentState, request, MetadataIndexTemplateService.resolveSettings(templates), mappings, null, settings, indexScopedSettings); int routingNumShards = getIndexNumberOfRoutingShards(aggregatedIndexSettings, null); - IndexMetadata tmpImd = buildAndValidateTemporaryIndexMetadata(currentState, aggregatedIndexSettings, request, routingNumShards, - resolvePreferV2Templates(request)); + IndexMetadata tmpImd = buildAndValidateTemporaryIndexMetadata(currentState, aggregatedIndexSettings, request, routingNumShards); return applyCreateIndexWithTemporaryService(currentState, request, silent, null, tmpImd, mappings, indexService -> resolveAndValidateAliases(request.index(), request.aliases(), @@ -517,8 +499,7 @@ private ClusterState applyCreateIndexRequestWithV2Template(final ClusterState cu MetadataIndexTemplateService.resolveSettings(currentState.metadata(), templateName), mappings, null, settings, indexScopedSettings); int routingNumShards = getIndexNumberOfRoutingShards(aggregatedIndexSettings, null); - IndexMetadata tmpImd = buildAndValidateTemporaryIndexMetadata(currentState, aggregatedIndexSettings, request, routingNumShards, - resolvePreferV2Templates(request)); + IndexMetadata tmpImd = buildAndValidateTemporaryIndexMetadata(currentState, aggregatedIndexSettings, request, routingNumShards); return applyCreateIndexWithTemporaryService(currentState, request, silent, null, tmpImd, mappings, indexService -> resolveAndValidateAliases(request.index(), request.aliases(), @@ -559,8 +540,7 @@ private ClusterState applyCreateIndexRequestWithExistingMetadata(final ClusterSt final Settings aggregatedIndexSettings = aggregateIndexSettings(currentState, request, Settings.EMPTY, mappings, sourceMetadata, settings, indexScopedSettings); final int routingNumShards = getIndexNumberOfRoutingShards(aggregatedIndexSettings, sourceMetadata); - IndexMetadata tmpImd = buildAndValidateTemporaryIndexMetadata(currentState, aggregatedIndexSettings, request, routingNumShards, - IndexMetadata.PREFER_V2_TEMPLATES_SETTING.get(sourceMetadata.getSettings())); + IndexMetadata tmpImd = buildAndValidateTemporaryIndexMetadata(currentState, aggregatedIndexSettings, request, routingNumShards); return applyCreateIndexWithTemporaryService(currentState, request, silent, sourceMetadata, tmpImd, mappings, indexService -> resolveAndValidateAliases(request.index(), request.aliases(), Collections.emptyList(), diff --git a/server/src/main/java/org/elasticsearch/common/settings/IndexScopedSettings.java b/server/src/main/java/org/elasticsearch/common/settings/IndexScopedSettings.java index 1db278d2358e7..b5454332dc797 100644 --- a/server/src/main/java/org/elasticsearch/common/settings/IndexScopedSettings.java +++ b/server/src/main/java/org/elasticsearch/common/settings/IndexScopedSettings.java @@ -82,7 +82,6 @@ public final class IndexScopedSettings extends AbstractScopedSettings { IndexMetadata.INDEX_DATA_PATH_SETTING, IndexMetadata.INDEX_FORMAT_SETTING, IndexMetadata.INDEX_HIDDEN_SETTING, - IndexMetadata.PREFER_V2_TEMPLATES_SETTING, SearchSlowLog.INDEX_SEARCH_SLOWLOG_THRESHOLD_FETCH_DEBUG_SETTING, SearchSlowLog.INDEX_SEARCH_SLOWLOG_THRESHOLD_FETCH_WARN_SETTING, SearchSlowLog.INDEX_SEARCH_SLOWLOG_THRESHOLD_FETCH_INFO_SETTING, diff --git a/server/src/main/java/org/elasticsearch/rest/action/admin/indices/RestCreateIndexAction.java b/server/src/main/java/org/elasticsearch/rest/action/admin/indices/RestCreateIndexAction.java index 8d38e4f114239..b7ca1ae35d462 100644 --- a/server/src/main/java/org/elasticsearch/rest/action/admin/indices/RestCreateIndexAction.java +++ b/server/src/main/java/org/elasticsearch/rest/action/admin/indices/RestCreateIndexAction.java @@ -23,8 +23,6 @@ import org.elasticsearch.action.admin.indices.create.CreateIndexRequest; import org.elasticsearch.action.support.ActiveShardCount; import org.elasticsearch.client.node.NodeClient; -import org.elasticsearch.cluster.metadata.IndexMetadata; -import org.elasticsearch.common.Nullable; import org.elasticsearch.common.logging.DeprecationLogger; import org.elasticsearch.common.xcontent.LoggingDeprecationHandler; import org.elasticsearch.common.xcontent.XContentHelper; @@ -58,11 +56,6 @@ public String getName() { return "create_index_action"; } - @Nullable - public static Boolean preferV2Templates(final RestRequest request) { - return request.paramAsBoolean(IndexMetadata.PREFER_V2_TEMPLATES_FLAG, null); - } - @Override public RestChannelConsumer prepareRequest(final RestRequest request, final NodeClient client) throws IOException { final boolean includeTypeName = request.paramAsBoolean(INCLUDE_TYPE_NAME_PARAMETER, @@ -73,7 +66,6 @@ public RestChannelConsumer prepareRequest(final RestRequest request, final NodeC } CreateIndexRequest createIndexRequest = new CreateIndexRequest(request.param("index")); - createIndexRequest.preferV2Templates(preferV2Templates(request)); if (request.hasContent()) { Map sourceAsMap = XContentHelper.convertToMap(request.requiredContent(), false, diff --git a/server/src/main/java/org/elasticsearch/rest/action/admin/indices/RestRolloverIndexAction.java b/server/src/main/java/org/elasticsearch/rest/action/admin/indices/RestRolloverIndexAction.java index 0fcf86dc4f2bb..c09bde69eb931 100644 --- a/server/src/main/java/org/elasticsearch/rest/action/admin/indices/RestRolloverIndexAction.java +++ b/server/src/main/java/org/elasticsearch/rest/action/admin/indices/RestRolloverIndexAction.java @@ -67,7 +67,6 @@ public RestChannelConsumer prepareRequest(final RestRequest request, final NodeC rolloverIndexRequest.masterNodeTimeout(request.paramAsTime("master_timeout", rolloverIndexRequest.masterNodeTimeout())); rolloverIndexRequest.getCreateIndexRequest().waitForActiveShards( ActiveShardCount.parseString(request.param("wait_for_active_shards"))); - rolloverIndexRequest.getCreateIndexRequest().preferV2Templates(RestCreateIndexAction.preferV2Templates(request)); return channel -> client.admin().indices().rolloverIndex(rolloverIndexRequest, new RestToXContentListener<>(channel)); } } diff --git a/server/src/main/java/org/elasticsearch/rest/action/document/RestBulkAction.java b/server/src/main/java/org/elasticsearch/rest/action/document/RestBulkAction.java index cace954fe5fe0..24ee7208b8e33 100644 --- a/server/src/main/java/org/elasticsearch/rest/action/document/RestBulkAction.java +++ b/server/src/main/java/org/elasticsearch/rest/action/document/RestBulkAction.java @@ -31,7 +31,6 @@ import org.elasticsearch.rest.BaseRestHandler; import org.elasticsearch.rest.RestRequest; import org.elasticsearch.rest.action.RestStatusToXContentListener; -import org.elasticsearch.rest.action.admin.indices.RestCreateIndexAction; import org.elasticsearch.rest.action.search.RestSearchAction; import org.elasticsearch.search.fetch.subphase.FetchSourceContext; @@ -101,7 +100,6 @@ public RestChannelConsumer prepareRequest(final RestRequest request, final NodeC bulkRequest.setRefreshPolicy(request.param("refresh")); bulkRequest.add(request.requiredContent(), defaultIndex, defaultType, defaultRouting, defaultFetchSourceContext, defaultPipeline, allowExplicitIndex, request.getXContentType()); - bulkRequest.preferV2Templates(RestCreateIndexAction.preferV2Templates(request)); return channel -> client.bulk(bulkRequest, new RestStatusToXContentListener<>(channel)); } diff --git a/server/src/main/java/org/elasticsearch/rest/action/document/RestIndexAction.java b/server/src/main/java/org/elasticsearch/rest/action/document/RestIndexAction.java index cf7e9546a9971..4c7c0dc8f7ee3 100644 --- a/server/src/main/java/org/elasticsearch/rest/action/document/RestIndexAction.java +++ b/server/src/main/java/org/elasticsearch/rest/action/document/RestIndexAction.java @@ -32,7 +32,6 @@ import org.elasticsearch.rest.RestRequest; import org.elasticsearch.rest.action.RestActions; import org.elasticsearch.rest.action.RestStatusToXContentListener; -import org.elasticsearch.rest.action.admin.indices.RestCreateIndexAction; import java.io.IOException; import java.util.List; @@ -146,7 +145,6 @@ public RestChannelConsumer prepareRequest(final RestRequest request, final NodeC indexRequest.versionType(VersionType.fromString(request.param("version_type"), indexRequest.versionType())); indexRequest.setIfSeqNo(request.paramAsLong("if_seq_no", indexRequest.ifSeqNo())); indexRequest.setIfPrimaryTerm(request.paramAsLong("if_primary_term", indexRequest.ifPrimaryTerm())); - indexRequest.preferV2Templates(RestCreateIndexAction.preferV2Templates(request)); String sOpType = request.param("op_type"); String waitForActiveShards = request.param("wait_for_active_shards"); if (waitForActiveShards != null) { diff --git a/server/src/main/java/org/elasticsearch/rest/action/document/RestUpdateAction.java b/server/src/main/java/org/elasticsearch/rest/action/document/RestUpdateAction.java index 6caac07416c3b..c652e097f037e 100644 --- a/server/src/main/java/org/elasticsearch/rest/action/document/RestUpdateAction.java +++ b/server/src/main/java/org/elasticsearch/rest/action/document/RestUpdateAction.java @@ -31,7 +31,6 @@ import org.elasticsearch.rest.RestRequest; import org.elasticsearch.rest.action.RestActions; import org.elasticsearch.rest.action.RestStatusToXContentListener; -import org.elasticsearch.rest.action.admin.indices.RestCreateIndexAction; import org.elasticsearch.search.fetch.subphase.FetchSourceContext; import java.io.IOException; @@ -75,7 +74,6 @@ public RestChannelConsumer prepareRequest(final RestRequest request, final NodeC updateRequest.routing(request.param("routing")); updateRequest.timeout(request.paramAsTime("timeout", updateRequest.timeout())); updateRequest.setRefreshPolicy(request.param("refresh")); - updateRequest.preferV2Templates(RestCreateIndexAction.preferV2Templates(request)); String waitForActiveShards = request.param("wait_for_active_shards"); if (waitForActiveShards != null) { updateRequest.waitForActiveShards(ActiveShardCount.parseString(waitForActiveShards)); diff --git a/server/src/test/java/org/elasticsearch/action/bulk/TransportBulkActionIndicesThatCannotBeCreatedTests.java b/server/src/test/java/org/elasticsearch/action/bulk/TransportBulkActionIndicesThatCannotBeCreatedTests.java index b5efd05e5414a..164b84fa6d760 100644 --- a/server/src/test/java/org/elasticsearch/action/bulk/TransportBulkActionIndicesThatCannotBeCreatedTests.java +++ b/server/src/test/java/org/elasticsearch/action/bulk/TransportBulkActionIndicesThatCannotBeCreatedTests.java @@ -138,8 +138,7 @@ boolean shouldAutoCreate(String index, ClusterState state) { } @Override - void createIndex(String index, Boolean preferV2Templates, - TimeValue timeout, Version minNodeVersion, ActionListener listener) { + void createIndex(String index, TimeValue timeout, Version minNodeVersion, ActionListener listener) { // If we try to create an index just immediately assume it worked listener.onResponse(new CreateIndexResponse(true, true, index) {}); } diff --git a/server/src/test/java/org/elasticsearch/action/bulk/TransportBulkActionIngestTests.java b/server/src/test/java/org/elasticsearch/action/bulk/TransportBulkActionIngestTests.java index 39ffe329b598f..9cf1f314233bb 100644 --- a/server/src/test/java/org/elasticsearch/action/bulk/TransportBulkActionIngestTests.java +++ b/server/src/test/java/org/elasticsearch/action/bulk/TransportBulkActionIngestTests.java @@ -157,9 +157,7 @@ void executeBulk(Task task, final BulkRequest bulkRequest, final long startTimeN } @Override - void createIndex(String index, Boolean preferV2Templates, - TimeValue timeout, Version minNodeVersion, - ActionListener listener) { + void createIndex(String index, TimeValue timeout, Version minNodeVersion, ActionListener listener) { indexCreated = true; listener.onResponse(null); } @@ -592,7 +590,6 @@ public void testFindDefaultPipelineFromV2TemplateMatch() { when(state.getMetadata()).thenReturn(metadata); IndexRequest indexRequest = new IndexRequest("missing_index").id("id"); - indexRequest.preferV2Templates(true); indexRequest.source(Collections.emptyMap()); AtomicBoolean responseCalled = new AtomicBoolean(false); AtomicBoolean failureCalled = new AtomicBoolean(false); diff --git a/server/src/test/java/org/elasticsearch/action/bulk/TransportBulkActionTests.java b/server/src/test/java/org/elasticsearch/action/bulk/TransportBulkActionTests.java index 102eee5dc2bfc..301d0c43776bf 100644 --- a/server/src/test/java/org/elasticsearch/action/bulk/TransportBulkActionTests.java +++ b/server/src/test/java/org/elasticsearch/action/bulk/TransportBulkActionTests.java @@ -82,8 +82,7 @@ protected boolean needToCheck() { } @Override - void createIndex(String index, Boolean preferV2Templates, - TimeValue timeout, Version minNodeVersion, ActionListener listener) { + void createIndex(String index, TimeValue timeout, Version minNodeVersion, ActionListener listener) { indexCreated = true; listener.onResponse(null); } @@ -179,14 +178,14 @@ public void testResolveRequiredOrDefaultPipelineDefaultPipeline() { // index name matches with IDM: IndexRequest indexRequest = new IndexRequest("idx"); - boolean result = TransportBulkAction.resolvePipelines(indexRequest, indexRequest, false, metadata); + boolean result = TransportBulkAction.resolvePipelines(indexRequest, indexRequest, metadata); assertThat(result, is(true)); assertThat(indexRequest.isPipelineResolved(), is(true)); assertThat(indexRequest.getPipeline(), equalTo("default-pipeline")); // alias name matches with IDM: indexRequest = new IndexRequest("alias"); - result = TransportBulkAction.resolvePipelines(indexRequest, indexRequest, false, metadata); + result = TransportBulkAction.resolvePipelines(indexRequest, indexRequest, metadata); assertThat(result, is(true)); assertThat(indexRequest.isPipelineResolved(), is(true)); assertThat(indexRequest.getPipeline(), equalTo("default-pipeline")); @@ -197,7 +196,7 @@ public void testResolveRequiredOrDefaultPipelineDefaultPipeline() { .settings(settings(Version.CURRENT).put(IndexSettings.DEFAULT_PIPELINE.getKey(), "default-pipeline")); metadata = Metadata.builder().put(templateBuilder).build(); indexRequest = new IndexRequest("idx"); - result = TransportBulkAction.resolvePipelines(indexRequest, indexRequest, false, metadata); + result = TransportBulkAction.resolvePipelines(indexRequest, indexRequest, metadata); assertThat(result, is(true)); assertThat(indexRequest.isPipelineResolved(), is(true)); assertThat(indexRequest.getPipeline(), equalTo("default-pipeline")); @@ -213,7 +212,7 @@ public void testResolveFinalPipeline() { // index name matches with IDM: IndexRequest indexRequest = new IndexRequest("idx"); - boolean result = TransportBulkAction.resolvePipelines(indexRequest, indexRequest, false, metadata); + boolean result = TransportBulkAction.resolvePipelines(indexRequest, indexRequest, metadata); assertThat(result, is(true)); assertThat(indexRequest.isPipelineResolved(), is(true)); assertThat(indexRequest.getPipeline(), equalTo("_none")); @@ -221,7 +220,7 @@ public void testResolveFinalPipeline() { // alias name matches with IDM: indexRequest = new IndexRequest("alias"); - result = TransportBulkAction.resolvePipelines(indexRequest, indexRequest, false, metadata); + result = TransportBulkAction.resolvePipelines(indexRequest, indexRequest, metadata); assertThat(result, is(true)); assertThat(indexRequest.isPipelineResolved(), is(true)); assertThat(indexRequest.getPipeline(), equalTo("_none")); @@ -233,7 +232,7 @@ public void testResolveFinalPipeline() { .settings(settings(Version.CURRENT).put(IndexSettings.FINAL_PIPELINE.getKey(), "final-pipeline")); metadata = Metadata.builder().put(templateBuilder).build(); indexRequest = new IndexRequest("idx"); - result = TransportBulkAction.resolvePipelines(indexRequest, indexRequest, false, metadata); + result = TransportBulkAction.resolvePipelines(indexRequest, indexRequest, metadata); assertThat(result, is(true)); assertThat(indexRequest.isPipelineResolved(), is(true)); assertThat(indexRequest.getPipeline(), equalTo("_none")); @@ -245,7 +244,7 @@ public void testResolveRequestOrDefaultPipelineAndFinalPipeline() { { Metadata metadata = Metadata.builder().build(); IndexRequest indexRequest = new IndexRequest("idx"); - boolean result = TransportBulkAction.resolvePipelines(indexRequest, indexRequest, false, metadata); + boolean result = TransportBulkAction.resolvePipelines(indexRequest, indexRequest, metadata); assertThat(result, is(false)); assertThat(indexRequest.isPipelineResolved(), is(true)); assertThat(indexRequest.getPipeline(), equalTo(IngestService.NOOP_PIPELINE_NAME)); @@ -255,7 +254,7 @@ public void testResolveRequestOrDefaultPipelineAndFinalPipeline() { { Metadata metadata = Metadata.builder().build(); IndexRequest indexRequest = new IndexRequest("idx").setPipeline("request-pipeline"); - boolean result = TransportBulkAction.resolvePipelines(indexRequest, indexRequest, false, metadata); + boolean result = TransportBulkAction.resolvePipelines(indexRequest, indexRequest, metadata); assertThat(result, is(true)); assertThat(indexRequest.isPipelineResolved(), is(true)); assertThat(indexRequest.getPipeline(), equalTo("request-pipeline")); @@ -269,7 +268,7 @@ public void testResolveRequestOrDefaultPipelineAndFinalPipeline() { .numberOfReplicas(0); Metadata metadata = Metadata.builder().put(builder).build(); IndexRequest indexRequest = new IndexRequest("idx").setPipeline("request-pipeline"); - boolean result = TransportBulkAction.resolvePipelines(indexRequest, indexRequest, false, metadata); + boolean result = TransportBulkAction.resolvePipelines(indexRequest, indexRequest, metadata); assertThat(result, is(true)); assertThat(indexRequest.isPipelineResolved(), is(true)); assertThat(indexRequest.getPipeline(), equalTo("request-pipeline")); @@ -283,7 +282,7 @@ public void testResolveRequestOrDefaultPipelineAndFinalPipeline() { .numberOfReplicas(0); Metadata metadata = Metadata.builder().put(builder).build(); IndexRequest indexRequest = new IndexRequest("idx").setPipeline("request-pipeline"); - boolean result = TransportBulkAction.resolvePipelines(indexRequest, indexRequest, false, metadata); + boolean result = TransportBulkAction.resolvePipelines(indexRequest, indexRequest, metadata); assertThat(result, is(true)); assertThat(indexRequest.isPipelineResolved(), is(true)); assertThat(indexRequest.getPipeline(), equalTo("request-pipeline")); diff --git a/x-pack/plugin/ccr/src/main/java/org/elasticsearch/xpack/ccr/action/TransportResumeFollowAction.java b/x-pack/plugin/ccr/src/main/java/org/elasticsearch/xpack/ccr/action/TransportResumeFollowAction.java index 032f199fd64d4..20595c18dfb09 100644 --- a/x-pack/plugin/ccr/src/main/java/org/elasticsearch/xpack/ccr/action/TransportResumeFollowAction.java +++ b/x-pack/plugin/ccr/src/main/java/org/elasticsearch/xpack/ccr/action/TransportResumeFollowAction.java @@ -369,7 +369,6 @@ static String[] extractLeaderShardHistoryUUIDs(Map ccrIndexMetad nonReplicatedSettings.add(IndexMetadata.INDEX_PRIORITY_SETTING); nonReplicatedSettings.add(IndexMetadata.SETTING_WAIT_FOR_ACTIVE_SHARDS); nonReplicatedSettings.add(IndexMetadata.INDEX_HIDDEN_SETTING); - nonReplicatedSettings.add(IndexMetadata.PREFER_V2_TEMPLATES_SETTING); nonReplicatedSettings.add(EnableAllocationDecider.INDEX_ROUTING_REBALANCE_ENABLE_SETTING); nonReplicatedSettings.add(EnableAllocationDecider.INDEX_ROUTING_ALLOCATION_ENABLE_SETTING);