mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-03-25 09:28:27 +00:00
Remove prefer_v2_templates query string parameter (#56545)
This commit removes the `prefer_v2_templates` flag and setting. This was a brief setting that allowed specifying whether V1 or V2 template should be used when an index is created. It has been removed in favor of V2 templates always having priority. Relates to #53101 Resolves #56528 This is not a breaking change because this flag was never in a released version.
This commit is contained in:
parent
659edb92ff
commit
1337b35572
@ -117,9 +117,6 @@ final class IndicesRequestConverters {
|
||||
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;
|
||||
|
@ -56,7 +56,6 @@ import org.elasticsearch.client.indices.AnalyzeRequest;
|
||||
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 @@ final class RequestConverters {
|
||||
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 @@ final class RequestConverters {
|
||||
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 @@ final class RequestConverters {
|
||||
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
|
||||
|
@ -25,7 +25,6 @@ import org.elasticsearch.action.admin.indices.alias.Alias;
|
||||
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<Alias> aliases = new HashSet<>();
|
||||
|
||||
@ -267,16 +265,6 @@ public class CreateIndexRequest extends TimedRequest implements Validatable, ToX
|
||||
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.
|
||||
*
|
||||
|
@ -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"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
@ -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 <<indices-templates-v1,V1 index
|
||||
templates>> 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
|
||||
|
@ -9,11 +9,9 @@ replaced by V2 templates. For information about V2 templates, see <<indices-temp
|
||||
|
||||
[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 V1 index templates take precedence.
|
||||
In 8.x the default value for the parameter is `true` meaning that <<indices-templates,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.
|
||||
====
|
||||
|
||||
Creates or updates an index template.
|
||||
|
@ -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":{
|
||||
|
@ -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":{
|
||||
|
@ -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":{
|
||||
|
@ -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":{
|
||||
|
@ -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":{
|
||||
|
@ -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":{
|
||||
|
@ -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"}
|
||||
|
@ -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();
|
||||
}
|
||||
}
|
@ -25,7 +25,6 @@ import org.elasticsearch.action.support.ActiveShardCount;
|
||||
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 class CreateIndexClusterStateUpdateRequest extends ClusterStateUpdateRequ
|
||||
return this;
|
||||
}
|
||||
|
||||
public CreateIndexClusterStateUpdateRequest preferV2Templates(@Nullable Boolean preferV2Templates) {
|
||||
this.preferV2Templates = preferV2Templates;
|
||||
return this;
|
||||
}
|
||||
|
||||
public String cause() {
|
||||
return cause;
|
||||
}
|
||||
@ -153,9 +146,4 @@ public class CreateIndexClusterStateUpdateRequest extends ClusterStateUpdateRequ
|
||||
public boolean copySettings() {
|
||||
return copySettings;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public Boolean preferV2Templates() {
|
||||
return preferV2Templates;
|
||||
}
|
||||
}
|
||||
|
@ -29,7 +29,6 @@ import org.elasticsearch.action.admin.indices.mapping.put.PutMappingRequest;
|
||||
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<CreateIndexRequest>
|
||||
|
||||
private final Map<String, String> mappings = new HashMap<>();
|
||||
|
||||
private Boolean preferV2Templates;
|
||||
|
||||
private final Set<Alias> aliases = new HashSet<>();
|
||||
|
||||
private ActiveShardCount waitForActiveShards = ActiveShardCount.DEFAULT;
|
||||
@ -121,9 +118,6 @@ public class CreateIndexRequest extends AcknowledgedRequest<CreateIndexRequest>
|
||||
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 class CreateIndexRequest extends AcknowledgedRequest<CreateIndexRequest>
|
||||
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 class CreateIndexRequest extends AcknowledgedRequest<CreateIndexRequest>
|
||||
out.writeBoolean(true); // updateAllTypes
|
||||
}
|
||||
waitForActiveShards.writeTo(out);
|
||||
if (out.getVersion().onOrAfter(Version.V_7_8_0)) {
|
||||
out.writeOptionalBoolean(preferV2Templates);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -87,7 +87,6 @@ public class TransportCreateIndexAction extends TransportMasterNodeAction<Create
|
||||
.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 ->
|
||||
|
@ -201,8 +201,7 @@ public class MetadataRolloverService {
|
||||
.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());
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -40,7 +40,6 @@ import org.elasticsearch.cluster.service.ClusterService;
|
||||
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 class TransportRolloverAction extends TransportMasterNodeAction<RolloverR
|
||||
+ 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);
|
||||
|
@ -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 class BulkRequest extends ActionRequest implements CompositeIndicesReques
|
||||
}
|
||||
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 class BulkRequest extends ActionRequest implements CompositeIndicesReques
|
||||
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 class BulkRequest extends ActionRequest implements CompositeIndicesReques
|
||||
}
|
||||
refreshPolicy.writeTo(out);
|
||||
out.writeTimeValue(timeout);
|
||||
if (out.getVersion().onOrAfter(Version.V_7_8_0)) {
|
||||
out.writeOptionalBoolean(preferV2Templates);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -169,9 +169,7 @@ public class TransportBulkAction extends HandledTransportAction<BulkRequest, Bul
|
||||
IndexRequest indexRequest = getIndexWriteRequest(actionRequest);
|
||||
if (indexRequest != null) {
|
||||
// Each index request needs to be evaluated, because this method also modifies the IndexRequest
|
||||
boolean preferV2Templates = bulkRequest.preferV2Templates() == null ?
|
||||
IndexMetadata.PREFER_V2_TEMPLATES_SETTING.getDefault(Settings.EMPTY) : bulkRequest.preferV2Templates();
|
||||
boolean indexRequestHasPipeline = resolvePipelines(actionRequest, indexRequest, preferV2Templates, metadata);
|
||||
boolean indexRequestHasPipeline = resolvePipelines(actionRequest, indexRequest, metadata);
|
||||
hasIndexRequestsWithPipelines |= indexRequestHasPipeline;
|
||||
}
|
||||
|
||||
@ -242,7 +240,7 @@ public class TransportBulkAction extends HandledTransportAction<BulkRequest, Bul
|
||||
} else {
|
||||
final AtomicInteger counter = new AtomicInteger(autoCreateIndices.size());
|
||||
for (String index : autoCreateIndices) {
|
||||
createIndex(index, bulkRequest.preferV2Templates(), bulkRequest.timeout(), minNodeVersion,
|
||||
createIndex(index, bulkRequest.timeout(), minNodeVersion,
|
||||
new ActionListener<CreateIndexResponse>() {
|
||||
@Override
|
||||
public void onResponse(CreateIndexResponse result) {
|
||||
@ -278,8 +276,7 @@ public class TransportBulkAction extends HandledTransportAction<BulkRequest, Bul
|
||||
}
|
||||
}
|
||||
|
||||
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 @@ public class TransportBulkAction extends HandledTransportAction<BulkRequest, Bul
|
||||
// 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 @@ public class TransportBulkAction extends HandledTransportAction<BulkRequest, Bul
|
||||
}
|
||||
|
||||
void createIndex(String index,
|
||||
Boolean preferV2Templates,
|
||||
TimeValue timeout,
|
||||
Version minNodeVersion,
|
||||
ActionListener<CreateIndexResponse> listener) {
|
||||
@ -396,7 +392,6 @@ public class TransportBulkAction extends HandledTransportAction<BulkRequest, Bul
|
||||
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 {
|
||||
|
@ -22,7 +22,6 @@ package org.elasticsearch.action.bulk;
|
||||
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 abstract class TransportSingleItemBulkWriteAction<
|
||||
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;
|
||||
}
|
||||
|
@ -117,7 +117,6 @@ public class IndexRequest extends ReplicatedWriteRequest<IndexRequest> 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 class IndexRequest extends ReplicatedWriteRequest<IndexRequest> implement
|
||||
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 class IndexRequest extends ReplicatedWriteRequest<IndexRequest> implement
|
||||
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 class IndexRequest extends ReplicatedWriteRequest<IndexRequest> implement
|
||||
"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
|
||||
|
@ -120,7 +120,6 @@ public class TransportUpdateAction extends TransportInstanceSingleOperationActio
|
||||
client.admin().indices().create(new CreateIndexRequest()
|
||||
.index(request.index())
|
||||
.cause("auto(update api)")
|
||||
.preferV2Templates(request.preferV2Templates())
|
||||
.masterNodeTimeout(request.timeout()), new ActionListener<CreateIndexResponse>() {
|
||||
@Override
|
||||
public void onResponse(CreateIndexResponse result) {
|
||||
|
@ -122,7 +122,6 @@ public class UpdateRequest extends InstanceShardOperationRequest<UpdateRequest>
|
||||
private boolean scriptedUpsert = false;
|
||||
private boolean docAsUpsert = false;
|
||||
private boolean detectNoop = true;
|
||||
private Boolean preferV2Templates;
|
||||
|
||||
@Nullable
|
||||
private IndexRequest doc;
|
||||
@ -169,9 +168,6 @@ public class UpdateRequest extends InstanceShardOperationRequest<UpdateRequest>
|
||||
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 class UpdateRequest extends InstanceShardOperationRequest<UpdateRequest>
|
||||
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 class UpdateRequest extends InstanceShardOperationRequest<UpdateRequest>
|
||||
out.writeVLong(ifPrimaryTerm);
|
||||
out.writeBoolean(detectNoop);
|
||||
out.writeBoolean(scriptedUpsert);
|
||||
if (out.getVersion().onOrAfter(Version.V_7_8_0)) {
|
||||
out.writeOptionalBoolean(preferV2Templates);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -246,11 +246,6 @@ public class IndexMetadata implements Diffable<IndexMetadata>, ToXContentFragmen
|
||||
Setting.simpleString(key, value -> IP_VALIDATOR.accept(key, value), Property.Dynamic, Property.IndexScope));
|
||||
public static final Setting.AffixSetting<String> 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<Boolean> 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.
|
||||
|
@ -327,19 +327,14 @@ public class MetadataCreateIndexService {
|
||||
// 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<IndexTemplateMetadata> v1Templates = MetadataIndexTemplateService.findV1Templates(currentState.metadata(),
|
||||
request.index(), isHiddenFromRequest);
|
||||
|
||||
@ -354,11 +349,6 @@ public class MetadataCreateIndexService {
|
||||
}
|
||||
}
|
||||
|
||||
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 @@ public class MetadataCreateIndexService {
|
||||
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 @@ public class MetadataCreateIndexService {
|
||||
// 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 @@ public class MetadataCreateIndexService {
|
||||
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 @@ public class MetadataCreateIndexService {
|
||||
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 @@ public class MetadataCreateIndexService {
|
||||
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(),
|
||||
|
@ -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,
|
||||
|
@ -23,8 +23,6 @@ import org.apache.logging.log4j.LogManager;
|
||||
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 class RestCreateIndexAction extends BaseRestHandler {
|
||||
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 class RestCreateIndexAction extends BaseRestHandler {
|
||||
}
|
||||
|
||||
CreateIndexRequest createIndexRequest = new CreateIndexRequest(request.param("index"));
|
||||
createIndexRequest.preferV2Templates(preferV2Templates(request));
|
||||
|
||||
if (request.hasContent()) {
|
||||
Map<String, Object> sourceAsMap = XContentHelper.convertToMap(request.requiredContent(), false,
|
||||
|
@ -67,7 +67,6 @@ public class RestRolloverIndexAction extends BaseRestHandler {
|
||||
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));
|
||||
}
|
||||
}
|
||||
|
@ -31,7 +31,6 @@ import org.elasticsearch.index.mapper.MapperService;
|
||||
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 class RestBulkAction extends BaseRestHandler {
|
||||
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));
|
||||
}
|
||||
|
@ -32,7 +32,6 @@ import org.elasticsearch.rest.BaseRestHandler;
|
||||
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 class RestIndexAction extends BaseRestHandler {
|
||||
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) {
|
||||
|
@ -31,7 +31,6 @@ import org.elasticsearch.rest.BaseRestHandler;
|
||||
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 class RestUpdateAction extends BaseRestHandler {
|
||||
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));
|
||||
|
@ -138,8 +138,7 @@ public class TransportBulkActionIndicesThatCannotBeCreatedTests extends ESTestCa
|
||||
}
|
||||
|
||||
@Override
|
||||
void createIndex(String index, Boolean preferV2Templates,
|
||||
TimeValue timeout, Version minNodeVersion, ActionListener<CreateIndexResponse> listener) {
|
||||
void createIndex(String index, TimeValue timeout, Version minNodeVersion, ActionListener<CreateIndexResponse> listener) {
|
||||
// If we try to create an index just immediately assume it worked
|
||||
listener.onResponse(new CreateIndexResponse(true, true, index) {});
|
||||
}
|
||||
|
@ -157,9 +157,7 @@ public class TransportBulkActionIngestTests extends ESTestCase {
|
||||
}
|
||||
|
||||
@Override
|
||||
void createIndex(String index, Boolean preferV2Templates,
|
||||
TimeValue timeout, Version minNodeVersion,
|
||||
ActionListener<CreateIndexResponse> listener) {
|
||||
void createIndex(String index, TimeValue timeout, Version minNodeVersion, ActionListener<CreateIndexResponse> listener) {
|
||||
indexCreated = true;
|
||||
listener.onResponse(null);
|
||||
}
|
||||
@ -592,7 +590,6 @@ public class TransportBulkActionIngestTests extends ESTestCase {
|
||||
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);
|
||||
|
@ -82,8 +82,7 @@ public class TransportBulkActionTests extends ESTestCase {
|
||||
}
|
||||
|
||||
@Override
|
||||
void createIndex(String index, Boolean preferV2Templates,
|
||||
TimeValue timeout, Version minNodeVersion, ActionListener<CreateIndexResponse> listener) {
|
||||
void createIndex(String index, TimeValue timeout, Version minNodeVersion, ActionListener<CreateIndexResponse> listener) {
|
||||
indexCreated = true;
|
||||
listener.onResponse(null);
|
||||
}
|
||||
@ -179,14 +178,14 @@ public class TransportBulkActionTests extends ESTestCase {
|
||||
|
||||
// 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 class TransportBulkActionTests extends ESTestCase {
|
||||
.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 class TransportBulkActionTests extends ESTestCase {
|
||||
|
||||
// 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 class TransportBulkActionTests extends ESTestCase {
|
||||
|
||||
// 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 class TransportBulkActionTests extends ESTestCase {
|
||||
.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 class TransportBulkActionTests extends ESTestCase {
|
||||
{
|
||||
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 class TransportBulkActionTests extends ESTestCase {
|
||||
{
|
||||
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 class TransportBulkActionTests extends ESTestCase {
|
||||
.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 class TransportBulkActionTests extends ESTestCase {
|
||||
.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"));
|
||||
|
@ -369,7 +369,6 @@ public class TransportResumeFollowAction extends TransportMasterNodeAction<Resum
|
||||
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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user