From 9e243560064b8fc80a91de5a8e74c9c389788c1c Mon Sep 17 00:00:00 2001 From: Martijn van Groningen Date: Thu, 16 Sep 2021 14:40:25 +0200 Subject: [PATCH] Deprecate ignore_throttled parameter Backporting #77479 to 7.x branch. Frozen indices are deprecated, which will make ignore_throttled obsolete. Some changes to HLRC HLRC and related tests were required in order to deprecate ignore_throttled parameter: * Change HLRC request classes to set indices options initial value to null. This avoids sending the ignore_throttled parameter (and other indices options parameters) and therefore avoids the depracation warning header in the response. All these request classes had the indices options set to what is the defaukt in the corresponding action request class. So sending these indices options params was a noop, which is the same as not sending indices options parameters, which is what this change does. * For transport action request classes that are reused in the HLRC as request class, change the corresponding hlrc request converter to only send indices options params if the indices options are different than what the default is. * For tests that use a non default indices options, allow 'ignore_throttled is deprecated' warning. Other changes: * A number of tests have been changed to allowed warning header for deprecated ignore_throttled parameter. * Some rest v7 compat yaml tests are temporary muted, but will be unmuted once this change has been backported. Relates to #70192 --- .../client/AsyncSearchRequestConverters.java | 5 +- .../client/IndicesRequestConverters.java | 65 ++++++++++++++----- .../client/RequestConverters.java | 26 ++++++-- .../client/core/CountRequest.java | 4 +- .../client/eql/EqlSearchRequest.java | 2 +- .../ExplainLifecycleRequest.java | 2 +- .../RemoveIndexLifecyclePolicyRequest.java | 3 +- .../client/indices/CloseIndexRequest.java | 4 +- .../indices/GetFieldMappingsRequest.java | 2 +- .../client/indices/GetIndexRequest.java | 4 +- .../client/indices/GetMappingsRequest.java | 2 +- .../client/indices/PutMappingRequest.java | 4 +- .../indices/ReloadAnalyzersRequest.java | 4 +- .../client/ESRestHighLevelClientTestCase.java | 7 ++ .../elasticsearch/client/IndicesClientIT.java | 5 +- .../org/elasticsearch/client/RankEvalIT.java | 2 +- .../client/RequestConvertersTests.java | 25 +++++-- .../client/core/CountRequestTests.java | 6 +- .../documentation/CRUDDocumentationIT.java | 6 +- .../IndicesClientDocumentationIT.java | 64 +++++++++++------- .../documentation/SearchDocumentationIT.java | 9 +-- .../client/eql/EqlSearchRequestTests.java | 5 +- ...emoveIndexLifecyclePolicyRequestTests.java | 13 +++- .../indices/alias/get/GetAliasesRequest.java | 4 +- .../indices/delete/DeleteIndexRequest.java | 5 +- .../admin/indices/open/OpenIndexRequest.java | 4 +- .../settings/get/GetSettingsRequest.java | 4 +- .../settings/put/UpdateSettingsRequest.java | 4 +- .../validate/query/ValidateQueryRequest.java | 4 +- .../fieldcaps/FieldCapabilitiesRequest.java | 3 +- .../action/support/IndicesOptions.java | 12 +++- .../support/broadcast/BroadcastRequest.java | 2 + .../action/support/IndicesOptionsTests.java | 3 +- .../xpack/eql/action/EqlSearchRequest.java | 3 +- ...stractSearchableSnapshotsRestTestCase.java | 10 +++ .../test/indices.freeze/10_basic.yml | 7 +- .../rest-api-spec/test/ml/datafeeds_crud.yml | 8 +++ .../rest-api-spec/test/ml/jobs_crud.yml | 4 ++ .../continuous/DateHistogramGroupByIT.java | 7 +- .../DateHistogramGroupByOtherTimeFieldIT.java | 6 +- .../continuous/HistogramGroupByIT.java | 7 +- .../continuous/LatestContinuousIT.java | 3 - .../continuous/TermsGroupByIT.java | 7 +- .../continuous/TermsOnDateGroupByIT.java | 7 +- .../92_put_watch_with_indices_options.yml | 33 ++++++++++ .../watcher/support/WatcherUtilsTests.java | 10 +++ .../xpack/restart/FullClusterRestartIT.java | 2 + 47 files changed, 310 insertions(+), 118 deletions(-) diff --git a/client/rest-high-level/src/main/java/org/elasticsearch/client/AsyncSearchRequestConverters.java b/client/rest-high-level/src/main/java/org/elasticsearch/client/AsyncSearchRequestConverters.java index a5e2977bcfa2d..4d74012587340 100644 --- a/client/rest-high-level/src/main/java/org/elasticsearch/client/AsyncSearchRequestConverters.java +++ b/client/rest-high-level/src/main/java/org/elasticsearch/client/AsyncSearchRequestConverters.java @@ -11,6 +11,7 @@ import org.apache.http.client.methods.HttpDelete; import org.apache.http.client.methods.HttpGet; import org.apache.http.client.methods.HttpPost; +import org.elasticsearch.action.search.SearchRequest; import org.elasticsearch.client.RequestConverters.Params; import org.elasticsearch.client.asyncsearch.DeleteAsyncSearchRequest; import org.elasticsearch.client.asyncsearch.GetAsyncSearchRequest; @@ -53,7 +54,9 @@ static void addSearchRequestParams(Params params, SubmitAsyncSearchRequest reque params.putParam(RestSearchAction.TYPED_KEYS_PARAM, "true"); params.withRouting(request.getRouting()); params.withPreference(request.getPreference()); - params.withIndicesOptions(request.getIndicesOptions()); + if (SearchRequest.DEFAULT_INDICES_OPTIONS.equals(request.getIndicesOptions()) == false) { + params.withIndicesOptions(request.getIndicesOptions()); + } params.withSearchType(request.getSearchType().name().toLowerCase(Locale.ROOT)); params.withMaxConcurrentShardRequests(request.getMaxConcurrentShardRequests()); if (request.getRequestCache() != null) { 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 9b6c30254b5a9..67d9df7e72de2 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 @@ -27,6 +27,7 @@ import org.elasticsearch.action.admin.indices.shrink.ResizeType; import org.elasticsearch.action.admin.indices.template.delete.DeleteIndexTemplateRequest; import org.elasticsearch.action.admin.indices.validate.query.ValidateQueryRequest; +import org.elasticsearch.action.support.broadcast.BroadcastRequest; import org.elasticsearch.action.support.ActiveShardCount; import org.elasticsearch.client.indices.AnalyzeRequest; import org.elasticsearch.client.indices.CloseIndexRequest; @@ -104,7 +105,9 @@ static Request deleteIndex(DeleteIndexRequest deleteIndexRequest) { RequestConverters.Params parameters = new RequestConverters.Params(); parameters.withTimeout(deleteIndexRequest.timeout()); parameters.withMasterTimeout(deleteIndexRequest.masterNodeTimeout()); - parameters.withIndicesOptions(deleteIndexRequest.indicesOptions()); + if (DeleteIndexRequest.DEFAULT_INDICES_OPTIONS.equals(deleteIndexRequest.indicesOptions()) == false) { + parameters.withIndicesOptions(deleteIndexRequest.indicesOptions()); + } request.addParameters(parameters.asMap()); return request; } @@ -117,7 +120,9 @@ static Request openIndex(OpenIndexRequest openIndexRequest) { parameters.withTimeout(openIndexRequest.timeout()); parameters.withMasterTimeout(openIndexRequest.masterNodeTimeout()); parameters.withWaitForActiveShards(openIndexRequest.waitForActiveShards()); - parameters.withIndicesOptions(openIndexRequest.indicesOptions()); + if (OpenIndexRequest.DEFAULT_INDICES_OPTIONS.equals(openIndexRequest.indicesOptions()) == false) { + parameters.withIndicesOptions(openIndexRequest.indicesOptions()); + } request.addParameters(parameters.asMap()); return request; } @@ -129,7 +134,9 @@ static Request closeIndex(CloseIndexRequest closeIndexRequest) { RequestConverters.Params parameters = new RequestConverters.Params(); parameters.withTimeout(closeIndexRequest.timeout()); parameters.withMasterTimeout(closeIndexRequest.masterNodeTimeout()); - parameters.withIndicesOptions(closeIndexRequest.indicesOptions()); + if (CloseIndexRequest.DEFAULT_INDICES_OPTIONS.equals(closeIndexRequest.indicesOptions()) == false) { + parameters.withIndicesOptions(closeIndexRequest.indicesOptions()); + } final ActiveShardCount activeShardCount = closeIndexRequest.waitForActiveShards(); if (activeShardCount == ActiveShardCount.DEFAULT) { @@ -188,7 +195,9 @@ static Request putMapping(PutMappingRequest putMappingRequest) throws IOExceptio RequestConverters.Params parameters = new RequestConverters.Params(); parameters.withTimeout(putMappingRequest.timeout()); parameters.withMasterTimeout(putMappingRequest.masterNodeTimeout()); - parameters.withIndicesOptions(putMappingRequest.indicesOptions()); + if (PutMappingRequest.DEFAULT_INDICES_OPTIONS.equals(putMappingRequest.indicesOptions()) == false) { + parameters.withIndicesOptions(putMappingRequest.indicesOptions()); + } request.addParameters(parameters.asMap()); request.setEntity(RequestConverters.createEntity(putMappingRequest, RequestConverters.REQUEST_BODY_CONTENT_TYPE)); return request; @@ -293,7 +302,9 @@ static Request refresh(RefreshRequest refreshRequest) { Request request = new Request(HttpPost.METHOD_NAME, RequestConverters.endpoint(indices, "_refresh")); RequestConverters.Params parameters = new RequestConverters.Params(); - parameters.withIndicesOptions(refreshRequest.indicesOptions()); + if (BroadcastRequest.DEFAULT_INDICES_OPTIONS.equals(refreshRequest.indicesOptions()) == false) { + parameters.withIndicesOptions(refreshRequest.indicesOptions()); + } request.addParameters(parameters.asMap()); return request; } @@ -303,7 +314,9 @@ static Request flush(FlushRequest flushRequest) { Request request = new Request(HttpPost.METHOD_NAME, RequestConverters.endpoint(indices, "_flush")); RequestConverters.Params parameters = new RequestConverters.Params(); - parameters.withIndicesOptions(flushRequest.indicesOptions()); + if (BroadcastRequest.DEFAULT_INDICES_OPTIONS.equals(flushRequest.indicesOptions()) == false) { + parameters.withIndicesOptions(flushRequest.indicesOptions()); + } parameters.putParam("wait_if_ongoing", Boolean.toString(flushRequest.waitIfOngoing())); parameters.putParam("force", Boolean.toString(flushRequest.force())); request.addParameters(parameters.asMap()); @@ -324,7 +337,9 @@ static Request forceMerge(ForceMergeRequest forceMergeRequest) { Request request = new Request(HttpPost.METHOD_NAME, RequestConverters.endpoint(indices, "_forcemerge")); RequestConverters.Params parameters = new RequestConverters.Params(); - parameters.withIndicesOptions(forceMergeRequest.indicesOptions()); + if (BroadcastRequest.DEFAULT_INDICES_OPTIONS.equals(forceMergeRequest.indicesOptions()) == false) { + parameters.withIndicesOptions(forceMergeRequest.indicesOptions()); + } parameters.putParam("max_num_segments", Integer.toString(forceMergeRequest.maxNumSegments())); parameters.putParam("only_expunge_deletes", Boolean.toString(forceMergeRequest.onlyExpungeDeletes())); parameters.putParam("flush", Boolean.toString(forceMergeRequest.flush())); @@ -337,7 +352,9 @@ static Request clearCache(ClearIndicesCacheRequest clearIndicesCacheRequest) { Request request = new Request(HttpPost.METHOD_NAME, RequestConverters.endpoint(indices, "_cache/clear")); RequestConverters.Params parameters = new RequestConverters.Params(); - parameters.withIndicesOptions(clearIndicesCacheRequest.indicesOptions()); + if (BroadcastRequest.DEFAULT_INDICES_OPTIONS.equals(clearIndicesCacheRequest.indicesOptions()) == false) { + parameters.withIndicesOptions(clearIndicesCacheRequest.indicesOptions()); + } parameters.putParam("query", Boolean.toString(clearIndicesCacheRequest.queryCache())); parameters.putParam("fielddata", Boolean.toString(clearIndicesCacheRequest.fieldDataCache())); parameters.putParam("request", Boolean.toString(clearIndicesCacheRequest.requestCache())); @@ -357,7 +374,9 @@ static Request existsAlias(GetAliasesRequest getAliasesRequest) { Request request = new Request(HttpHead.METHOD_NAME, RequestConverters.endpoint(indices, "_alias", aliases)); RequestConverters.Params params = new RequestConverters.Params(); - params.withIndicesOptions(getAliasesRequest.indicesOptions()); + if (GetAliasesRequest.DEFAULT_INDICES_OPTIONS.equals(getAliasesRequest.indicesOptions()) == false) { + params.withIndicesOptions(getAliasesRequest.indicesOptions()); + } params.withLocal(getAliasesRequest.local()); request.addParameters(params.asMap()); return request; @@ -477,7 +496,9 @@ static Request getSettings(GetSettingsRequest getSettingsRequest) { Request request = new Request(HttpGet.METHOD_NAME, endpoint); RequestConverters.Params params = new RequestConverters.Params(); - params.withIndicesOptions(getSettingsRequest.indicesOptions()); + if (GetSettingsRequest.DEFAULT_INDICES_OPTIONS.equals(getSettingsRequest.indicesOptions()) == false) { + params.withIndicesOptions(getSettingsRequest.indicesOptions()); + } params.withLocal(getSettingsRequest.local()); params.withIncludeDefaults(getSettingsRequest.includeDefaults()); params.withMasterTimeout(getSettingsRequest.masterNodeTimeout()); @@ -514,7 +535,9 @@ static Request getIndex(GetIndexRequest getIndexRequest) { Request request = new Request(HttpGet.METHOD_NAME, endpoint); RequestConverters.Params params = new RequestConverters.Params(); - params.withIndicesOptions(getIndexRequest.indicesOptions()); + if (GetIndexRequest.DEFAULT_INDICES_OPTIONS.equals(getIndexRequest.indicesOptions()) == false) { + params.withIndicesOptions(getIndexRequest.indicesOptions()); + } params.withLocal(getIndexRequest.local()); params.withIncludeDefaults(getIndexRequest.includeDefaults()); params.withHuman(getIndexRequest.humanReadable()); @@ -557,7 +580,9 @@ static Request indicesExist(GetIndexRequest getIndexRequest) { RequestConverters.Params params = new RequestConverters.Params(); params.withLocal(getIndexRequest.local()); params.withHuman(getIndexRequest.humanReadable()); - params.withIndicesOptions(getIndexRequest.indicesOptions()); + if (GetIndexRequest.DEFAULT_INDICES_OPTIONS.equals(getIndexRequest.indicesOptions()) == false) { + params.withIndicesOptions(getIndexRequest.indicesOptions()); + } params.withIncludeDefaults(getIndexRequest.includeDefaults()); request.addParameters(params.asMap()); return request; @@ -570,7 +595,9 @@ static Request indexPutSettings(UpdateSettingsRequest updateSettingsRequest) thr RequestConverters.Params parameters = new RequestConverters.Params(); parameters.withTimeout(updateSettingsRequest.timeout()); parameters.withMasterTimeout(updateSettingsRequest.masterNodeTimeout()); - parameters.withIndicesOptions(updateSettingsRequest.indicesOptions()); + if (UpdateSettingsRequest.DEFAULT_INDICES_OPTIONS.equals(updateSettingsRequest.indicesOptions()) == false) { + parameters.withIndicesOptions(updateSettingsRequest.indicesOptions()); + } parameters.withPreserveExisting(updateSettingsRequest.isPreserveExisting()); request.addParameters(parameters.asMap()); request.setEntity(RequestConverters.createEntity(updateSettingsRequest, RequestConverters.REQUEST_BODY_CONTENT_TYPE)); @@ -662,7 +689,9 @@ static Request validateQuery(ValidateQueryRequest validateQueryRequest) throws I String endpoint = RequestConverters.endpoint(indices, types, "_validate/query"); Request request = new Request(HttpGet.METHOD_NAME, endpoint); RequestConverters.Params params = new RequestConverters.Params(); - params.withIndicesOptions(validateQueryRequest.indicesOptions()); + if (ValidateQueryRequest.DEFAULT_INDICES_OPTIONS.equals(validateQueryRequest.indicesOptions()) == false) { + params.withIndicesOptions(validateQueryRequest.indicesOptions()); + } params.putParam("explain", Boolean.toString(validateQueryRequest.explain())); params.putParam("all_shards", Boolean.toString(validateQueryRequest.allShards())); params.putParam("rewrite", Boolean.toString(validateQueryRequest.rewrite())); @@ -677,7 +706,9 @@ static Request getAlias(GetAliasesRequest getAliasesRequest) { String endpoint = RequestConverters.endpoint(indices, "_alias", aliases); Request request = new Request(HttpGet.METHOD_NAME, endpoint); RequestConverters.Params params = new RequestConverters.Params(); - params.withIndicesOptions(getAliasesRequest.indicesOptions()); + if (GetAliasesRequest.DEFAULT_INDICES_OPTIONS.equals(getAliasesRequest.indicesOptions()) == false) { + params.withIndicesOptions(getAliasesRequest.indicesOptions()); + } params.withLocal(getAliasesRequest.local()); request.addParameters(params.asMap()); return request; @@ -807,7 +838,9 @@ static Request reloadAnalyzers(ReloadAnalyzersRequest reloadAnalyzersRequest) { String endpoint = RequestConverters.endpoint(reloadAnalyzersRequest.getIndices(), "_reload_search_analyzers"); Request request = new Request(HttpPost.METHOD_NAME, endpoint); RequestConverters.Params parameters = new RequestConverters.Params(); - parameters.withIndicesOptions(reloadAnalyzersRequest.indicesOptions()); + if (ReloadAnalyzersRequest.DEFAULT_INDICES_OPTIONS.equals(reloadAnalyzersRequest.indicesOptions()) == false) { + parameters.withIndicesOptions(reloadAnalyzersRequest.indicesOptions()); + } request.addParameters(parameters.asMap()); 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 40b75504df077..bc769862de0cb 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 @@ -417,7 +417,9 @@ static void addSearchRequestParams(Params params, SearchRequest searchRequest) { params.putParam(RestSearchAction.TYPED_KEYS_PARAM, "true"); params.withRouting(searchRequest.routing()); params.withPreference(searchRequest.preference()); - params.withIndicesOptions(searchRequest.indicesOptions()); + if (SearchRequest.DEFAULT_INDICES_OPTIONS.equals(searchRequest.indicesOptions()) == false) { + params.withIndicesOptions(searchRequest.indicesOptions()); + } params.withSearchType(searchRequest.searchType().name().toLowerCase(Locale.ROOT)); if (searchRequest.isCcsMinimizeRoundtrips() != SearchRequest.defaultCcsMinimizeRoundtrips(searchRequest)) { params.putParam("ccs_minimize_roundtrips", Boolean.toString(searchRequest.isCcsMinimizeRoundtrips())); @@ -453,7 +455,9 @@ static Request clearScroll(ClearScrollRequest clearScrollRequest) throws IOExcep static Request openPointInTime(OpenPointInTimeRequest openRequest) { Request request = new Request(HttpPost.METHOD_NAME, endpoint(openRequest.indices(), "_pit")); Params params = new Params(); - params.withIndicesOptions(openRequest.indicesOptions()); + if (OpenPointInTimeRequest.DEFAULT_INDICES_OPTIONS.equals(openRequest.indicesOptions()) == false) { + params.withIndicesOptions(openRequest.indicesOptions()); + } params.withRouting(openRequest.routing()); params.withPreference(openRequest.preference()); params.putParam("keep_alive", openRequest.keepAlive()); @@ -557,7 +561,9 @@ static Request fieldCaps(FieldCapabilitiesRequest fieldCapabilitiesRequest) thro Params params = new Params(); params.withFields(fieldCapabilitiesRequest.fields()); - params.withIndicesOptions(fieldCapabilitiesRequest.indicesOptions()); + if (FieldCapabilitiesRequest.DEFAULT_INDICES_OPTIONS.equals(fieldCapabilitiesRequest.indicesOptions()) == false) { + params.withIndicesOptions(fieldCapabilitiesRequest.indicesOptions()); + } request.addParameters(params.asMap()); if (fieldCapabilitiesRequest.indexFilter() != null) { request.setEntity(createEntity(fieldCapabilitiesRequest, REQUEST_BODY_CONTENT_TYPE)); @@ -569,7 +575,9 @@ static Request rankEval(RankEvalRequest rankEvalRequest) throws IOException { Request request = new Request(HttpGet.METHOD_NAME, endpoint(rankEvalRequest.indices(), Strings.EMPTY_ARRAY, "_rank_eval")); Params params = new Params(); - params.withIndicesOptions(rankEvalRequest.indicesOptions()); + if (SearchRequest.DEFAULT_INDICES_OPTIONS.equals(rankEvalRequest.indicesOptions()) == false) { + params.withIndicesOptions(rankEvalRequest.indicesOptions()); + } params.putParam("search_type", rankEvalRequest.searchType().name().toLowerCase(Locale.ROOT)); request.addParameters(params.asMap()); request.setEntity(createEntity(rankEvalRequest.getRankEvalSpec(), REQUEST_BODY_CONTENT_TYPE)); @@ -631,9 +639,13 @@ private static Request prepareDeleteByQueryRequest(DeleteByQueryRequest deleteBy .withTimeout(deleteByQueryRequest.getTimeout()) .withWaitForActiveShards(deleteByQueryRequest.getWaitForActiveShards()) .withRequestsPerSecond(deleteByQueryRequest.getRequestsPerSecond()) - .withIndicesOptions(deleteByQueryRequest.indicesOptions()) .withWaitForCompletion(waitForCompletion) .withSlices(deleteByQueryRequest.getSlices()); + + if (SearchRequest.DEFAULT_INDICES_OPTIONS.equals(deleteByQueryRequest.indicesOptions()) == false) { + params = params.withIndicesOptions(deleteByQueryRequest.indicesOptions()); + } + if (deleteByQueryRequest.isAbortOnVersionConflict() == false) { params.putParam("conflicts", "proceed"); } @@ -663,9 +675,11 @@ static Request prepareUpdateByQueryRequest(UpdateByQueryRequest updateByQueryReq .withTimeout(updateByQueryRequest.getTimeout()) .withWaitForActiveShards(updateByQueryRequest.getWaitForActiveShards()) .withRequestsPerSecond(updateByQueryRequest.getRequestsPerSecond()) - .withIndicesOptions(updateByQueryRequest.indicesOptions()) .withWaitForCompletion(waitForCompletion) .withSlices(updateByQueryRequest.getSlices()); + if (SearchRequest.DEFAULT_INDICES_OPTIONS.equals(updateByQueryRequest.indicesOptions()) == false) { + params = params.withIndicesOptions(updateByQueryRequest.indicesOptions()); + } if (updateByQueryRequest.isAbortOnVersionConflict() == false) { params.putParam("conflicts", "proceed"); } diff --git a/client/rest-high-level/src/main/java/org/elasticsearch/client/core/CountRequest.java b/client/rest-high-level/src/main/java/org/elasticsearch/client/core/CountRequest.java index 51594834cafa0..06010a071c642 100644 --- a/client/rest-high-level/src/main/java/org/elasticsearch/client/core/CountRequest.java +++ b/client/rest-high-level/src/main/java/org/elasticsearch/client/core/CountRequest.java @@ -23,8 +23,6 @@ import java.util.Arrays; import java.util.Objects; -import static org.elasticsearch.action.search.SearchRequest.DEFAULT_INDICES_OPTIONS; - /** * Encapsulates a request to _count API against one, several or all indices. */ @@ -35,7 +33,7 @@ public final class CountRequest extends ActionRequest implements IndicesRequest. private String routing; private String preference; private QueryBuilder query; - private IndicesOptions indicesOptions = DEFAULT_INDICES_OPTIONS; + private IndicesOptions indicesOptions; private int terminateAfter = SearchContext.DEFAULT_TERMINATE_AFTER; private Float minScore; diff --git a/client/rest-high-level/src/main/java/org/elasticsearch/client/eql/EqlSearchRequest.java b/client/rest-high-level/src/main/java/org/elasticsearch/client/eql/EqlSearchRequest.java index aaf965ba3bdd5..73bca59e1be9a 100644 --- a/client/rest-high-level/src/main/java/org/elasticsearch/client/eql/EqlSearchRequest.java +++ b/client/rest-high-level/src/main/java/org/elasticsearch/client/eql/EqlSearchRequest.java @@ -28,7 +28,7 @@ public class EqlSearchRequest implements Validatable, ToXContentObject { private String[] indices; - private IndicesOptions indicesOptions = IndicesOptions.fromOptions(true, true, true, false); + private IndicesOptions indicesOptions; private QueryBuilder filter = null; private String timestampField = "@timestamp"; diff --git a/client/rest-high-level/src/main/java/org/elasticsearch/client/indexlifecycle/ExplainLifecycleRequest.java b/client/rest-high-level/src/main/java/org/elasticsearch/client/indexlifecycle/ExplainLifecycleRequest.java index d5a2b7eef6325..10b718dbe4179 100644 --- a/client/rest-high-level/src/main/java/org/elasticsearch/client/indexlifecycle/ExplainLifecycleRequest.java +++ b/client/rest-high-level/src/main/java/org/elasticsearch/client/indexlifecycle/ExplainLifecycleRequest.java @@ -22,7 +22,7 @@ public class ExplainLifecycleRequest extends TimedRequest { private final String[] indices; - private IndicesOptions indicesOptions = IndicesOptions.strictExpandOpen(); + private IndicesOptions indicesOptions; public ExplainLifecycleRequest(String... indices) { if (indices.length == 0) { diff --git a/client/rest-high-level/src/main/java/org/elasticsearch/client/indexlifecycle/RemoveIndexLifecyclePolicyRequest.java b/client/rest-high-level/src/main/java/org/elasticsearch/client/indexlifecycle/RemoveIndexLifecyclePolicyRequest.java index d3c80e28d8b40..f010db94b9784 100644 --- a/client/rest-high-level/src/main/java/org/elasticsearch/client/indexlifecycle/RemoveIndexLifecyclePolicyRequest.java +++ b/client/rest-high-level/src/main/java/org/elasticsearch/client/indexlifecycle/RemoveIndexLifecyclePolicyRequest.java @@ -21,7 +21,8 @@ public class RemoveIndexLifecyclePolicyRequest extends TimedRequest { private final IndicesOptions indicesOptions; public RemoveIndexLifecyclePolicyRequest(List indices) { - this(indices, IndicesOptions.strictExpandOpen()); + this.indices = Objects.requireNonNull(indices); + this.indicesOptions = null; } public RemoveIndexLifecyclePolicyRequest(List indices, IndicesOptions indicesOptions) { diff --git a/client/rest-high-level/src/main/java/org/elasticsearch/client/indices/CloseIndexRequest.java b/client/rest-high-level/src/main/java/org/elasticsearch/client/indices/CloseIndexRequest.java index 5a69fb5822305..748d921232bb8 100644 --- a/client/rest-high-level/src/main/java/org/elasticsearch/client/indices/CloseIndexRequest.java +++ b/client/rest-high-level/src/main/java/org/elasticsearch/client/indices/CloseIndexRequest.java @@ -21,8 +21,10 @@ */ public class CloseIndexRequest extends TimedRequest implements Validatable { + public static final IndicesOptions DEFAULT_INDICES_OPTIONS = IndicesOptions.strictExpandOpen(); + private String[] indices; - private IndicesOptions indicesOptions = IndicesOptions.strictExpandOpen(); + private IndicesOptions indicesOptions = DEFAULT_INDICES_OPTIONS; private ActiveShardCount waitForActiveShards = null; /** diff --git a/client/rest-high-level/src/main/java/org/elasticsearch/client/indices/GetFieldMappingsRequest.java b/client/rest-high-level/src/main/java/org/elasticsearch/client/indices/GetFieldMappingsRequest.java index 191c9a42c4350..4cc7441ff1187 100644 --- a/client/rest-high-level/src/main/java/org/elasticsearch/client/indices/GetFieldMappingsRequest.java +++ b/client/rest-high-level/src/main/java/org/elasticsearch/client/indices/GetFieldMappingsRequest.java @@ -24,7 +24,7 @@ public class GetFieldMappingsRequest implements Validatable { private String[] indices = Strings.EMPTY_ARRAY; - private IndicesOptions indicesOptions = IndicesOptions.strictExpandOpen(); + private IndicesOptions indicesOptions; /** * Indicate whether the receiving node should operate based on local index information or forward requests, diff --git a/client/rest-high-level/src/main/java/org/elasticsearch/client/indices/GetIndexRequest.java b/client/rest-high-level/src/main/java/org/elasticsearch/client/indices/GetIndexRequest.java index a7f606cd9602e..2224c35c7d33d 100644 --- a/client/rest-high-level/src/main/java/org/elasticsearch/client/indices/GetIndexRequest.java +++ b/client/rest-high-level/src/main/java/org/elasticsearch/client/indices/GetIndexRequest.java @@ -23,13 +23,15 @@ public enum Feature { SETTINGS; } + public static final IndicesOptions DEFAULT_INDICES_OPTIONS = IndicesOptions.fromOptions(false, false, true, true); + static final Feature[] DEFAULT_FEATURES = new Feature[] { Feature.ALIASES, Feature.MAPPINGS, Feature.SETTINGS }; private Feature[] features = DEFAULT_FEATURES; private boolean humanReadable = false; private transient boolean includeDefaults = false; private final String[] indices; - private IndicesOptions indicesOptions = IndicesOptions.fromOptions(false, false, true, true); + private IndicesOptions indicesOptions = DEFAULT_INDICES_OPTIONS; private boolean local = false; public GetIndexRequest(String... indices) { diff --git a/client/rest-high-level/src/main/java/org/elasticsearch/client/indices/GetMappingsRequest.java b/client/rest-high-level/src/main/java/org/elasticsearch/client/indices/GetMappingsRequest.java index 74bdd80702d85..29c4df678a187 100644 --- a/client/rest-high-level/src/main/java/org/elasticsearch/client/indices/GetMappingsRequest.java +++ b/client/rest-high-level/src/main/java/org/elasticsearch/client/indices/GetMappingsRequest.java @@ -17,7 +17,7 @@ public class GetMappingsRequest extends TimedRequest { private boolean local = false; private boolean includeDefaults = false; private String[] indices = Strings.EMPTY_ARRAY; - private IndicesOptions indicesOptions = IndicesOptions.strictExpandOpen(); + private IndicesOptions indicesOptions; /** * Indicates whether the receiving node should operate based on local index information or diff --git a/client/rest-high-level/src/main/java/org/elasticsearch/client/indices/PutMappingRequest.java b/client/rest-high-level/src/main/java/org/elasticsearch/client/indices/PutMappingRequest.java index e7806ea3fda43..6171500fc561f 100644 --- a/client/rest-high-level/src/main/java/org/elasticsearch/client/indices/PutMappingRequest.java +++ b/client/rest-high-level/src/main/java/org/elasticsearch/client/indices/PutMappingRequest.java @@ -31,8 +31,10 @@ */ public class PutMappingRequest extends TimedRequest implements IndicesRequest, ToXContentObject { + public static final IndicesOptions DEFAULT_INDICES_OPTIONS = IndicesOptions.fromOptions(false, false, true, true); + private final String[] indices; - private IndicesOptions indicesOptions = IndicesOptions.fromOptions(false, false, true, true); + private IndicesOptions indicesOptions = DEFAULT_INDICES_OPTIONS; private BytesReference source; private XContentType xContentType; diff --git a/client/rest-high-level/src/main/java/org/elasticsearch/client/indices/ReloadAnalyzersRequest.java b/client/rest-high-level/src/main/java/org/elasticsearch/client/indices/ReloadAnalyzersRequest.java index 5c0b9bf4e4c9a..4b17000d5e388 100644 --- a/client/rest-high-level/src/main/java/org/elasticsearch/client/indices/ReloadAnalyzersRequest.java +++ b/client/rest-high-level/src/main/java/org/elasticsearch/client/indices/ReloadAnalyzersRequest.java @@ -17,8 +17,10 @@ */ public final class ReloadAnalyzersRequest implements Validatable { + public static final IndicesOptions DEFAULT_INDICES_OPTIONS = IndicesOptions.strictExpandOpen(); + private final String[] indices; - private IndicesOptions indicesOptions = IndicesOptions.strictExpandOpen(); + private IndicesOptions indicesOptions = DEFAULT_INDICES_OPTIONS; /** * Creates a new reload analyzers request diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/ESRestHighLevelClientTestCase.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/ESRestHighLevelClientTestCase.java index 38b4e3aa801e2..fa3f706590f99 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/ESRestHighLevelClientTestCase.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/ESRestHighLevelClientTestCase.java @@ -63,6 +63,13 @@ public abstract class ESRestHighLevelClientTestCase extends ESRestTestCase { + public static final String IGNORE_THROTTLED_DEPRECATION_WARNING = "[ignore_throttled] parameter is deprecated because frozen " + + "indices have been deprecated. Consider cold or frozen tiers in place of frozen indices."; + + protected static final RequestOptions IGNORE_THROTTLED_WARNING = RequestOptions.DEFAULT.toBuilder() + .setWarningsHandler( + warnings -> List.of(IGNORE_THROTTLED_DEPRECATION_WARNING).equals(warnings) == false + ).build(); protected static final String CONFLICT_PIPELINE_ID = "conflict_pipeline"; private static RestHighLevelClient restHighLevelClient; diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/IndicesClientIT.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/IndicesClientIT.java index 3d60060cffc9c..b23496bcfcebd 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/IndicesClientIT.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/IndicesClientIT.java @@ -882,13 +882,14 @@ public void testOpenNonExistentIndex() throws IOException { OpenIndexRequest lenientOpenIndexRequest = new OpenIndexRequest(nonExistentIndex); lenientOpenIndexRequest.indicesOptions(IndicesOptions.lenientExpandOpen()); OpenIndexResponse lenientOpenIndexResponse = execute(lenientOpenIndexRequest, highLevelClient().indices()::open, - highLevelClient().indices()::openAsync); + highLevelClient().indices()::openAsync, IGNORE_THROTTLED_WARNING); assertThat(lenientOpenIndexResponse.isAcknowledged(), equalTo(true)); OpenIndexRequest strictOpenIndexRequest = new OpenIndexRequest(nonExistentIndex); strictOpenIndexRequest.indicesOptions(IndicesOptions.strictExpandOpen()); ElasticsearchException strictException = expectThrows(ElasticsearchException.class, - () -> execute(openIndexRequest, highLevelClient().indices()::open, highLevelClient().indices()::openAsync)); + () -> execute(openIndexRequest, highLevelClient().indices()::open, + highLevelClient().indices()::openAsync, IGNORE_THROTTLED_WARNING)); assertEquals(RestStatus.NOT_FOUND, strictException.status()); } diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/RankEvalIT.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/RankEvalIT.java index 53be9e516dfe9..cffa76fdc3f53 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/RankEvalIT.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/RankEvalIT.java @@ -99,7 +99,7 @@ public void testRankEvalRequest() throws IOException { // now try this when test2 is closed closeIndex("index2"); rankEvalRequest.indicesOptions(IndicesOptions.fromParameters(null, "true", null, "false", SearchRequest.DEFAULT_INDICES_OPTIONS)); - response = execute(rankEvalRequest, highLevelClient()::rankEval, highLevelClient()::rankEvalAsync); + response = execute(rankEvalRequest, highLevelClient()::rankEval, highLevelClient()::rankEvalAsync, IGNORE_THROTTLED_WARNING); } private static List createTestEvaluationSpec() { diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/RequestConvertersTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/RequestConvertersTests.java index 00c4b1e2af7bf..a4704019b02e0 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/RequestConvertersTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/RequestConvertersTests.java @@ -1602,7 +1602,7 @@ public void testPointInTime() throws Exception { openRequest.preference(preference); expectedParams.put("preference", preference); } - openRequest.indicesOptions(setRandomIndicesOptions(openRequest.indicesOptions(), expectedParams)); + setRandomIndicesOptions(openRequest::indicesOptions, openRequest::indicesOptions, expectedParams); final Request request = RequestConverters.openPointInTime(openRequest); assertThat(request.getParameters(), equalTo(expectedParams)); assertThat(request.getMethod(), equalTo(HttpPost.METHOD_NAME)); @@ -1741,7 +1741,8 @@ public void testFieldCaps() throws IOException { endpoint.add("_field_caps"); assertEquals(endpoint.toString(), request.getEndpoint()); - assertEquals(5, request.getParameters().size()); + int expectedSize = FieldCapabilitiesRequest.DEFAULT_INDICES_OPTIONS.equals(fieldCapabilitiesRequest.indicesOptions()) ? 1 : 5; + assertEquals(expectedSize, request.getParameters().size()); // Note that we don't check the field param value explicitly, as field names are // passed through @@ -1782,7 +1783,8 @@ public void testFieldCapsWithIndexFilter() throws IOException { endpoint.add("_field_caps"); assertEquals(endpoint.toString(), request.getEndpoint()); - assertEquals(5, request.getParameters().size()); + int expectedSize = FieldCapabilitiesRequest.DEFAULT_INDICES_OPTIONS.equals(fieldCapabilitiesRequest.indicesOptions()) ? 1 : 5; + assertEquals(expectedSize, request.getParameters().size()); // Note that we don't check the field param value explicitly, as field names are // passed through @@ -1821,7 +1823,8 @@ public void testRankEval() throws Exception { } endpoint.add(RestRankEvalAction.ENDPOINT); assertEquals(endpoint.toString(), request.getEndpoint()); - assertEquals(5, request.getParameters().size()); + int expectedSize = SearchRequest.DEFAULT_INDICES_OPTIONS.equals(rankEvalRequest.indicesOptions()) ? 1 : 5; + assertEquals(expectedSize, request.getParameters().size()); assertEquals(expectedParams, request.getParameters()); assertToXContentBody(spec, request.getEntity()); } @@ -2157,9 +2160,19 @@ public static void setRandomIndicesOptions(Consumer setter, Supp Map expectedParams) { if (randomBoolean()) { - setter.accept(IndicesOptions.fromOptions(randomBoolean(), randomBoolean(), randomBoolean(), randomBoolean(), - true, false, false, randomBoolean())); + // randomly not set random indices options. + return; } + + IndicesOptions defaults = getter.get(); + IndicesOptions random = IndicesOptions.fromOptions(randomBoolean(), randomBoolean(), randomBoolean(), randomBoolean(), true, false, + false, randomBoolean()); + if (random.equals(defaults)) { + // Random indices options is equal to the defaults, we expect no params to be set. + return; + } + + setter.accept(random); expectedParams.put("ignore_unavailable", Boolean.toString(getter.get().ignoreUnavailable())); expectedParams.put("allow_no_indices", Boolean.toString(getter.get().allowNoIndices())); if (getter.get().expandWildcardsOpen() && getter.get().expandWildcardsClosed()) { diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/core/CountRequestTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/core/CountRequestTests.java index fbb93ea61454f..d592a19397a72 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/core/CountRequestTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/core/CountRequestTests.java @@ -63,7 +63,7 @@ protected NamedXContentRegistry xContentRegistry() { public void testIllegalArguments() { CountRequest countRequest = new CountRequest(); assertNotNull(countRequest.indices()); - assertNotNull(countRequest.indicesOptions()); + assertNull(countRequest.indicesOptions()); assertNotNull(countRequest.types()); Exception e = expectThrows(NullPointerException.class, () -> countRequest.indices((String[]) null)); @@ -123,7 +123,9 @@ private CountRequest mutate(CountRequest countRequest) { private static CountRequest copyRequest(CountRequest countRequest) { CountRequest result = new CountRequest(); result.indices(countRequest.indices()); - result.indicesOptions(countRequest.indicesOptions()); + if (result.indicesOptions() != null) { + result.indicesOptions(countRequest.indicesOptions()); + } result.types(countRequest.types()); result.routing(countRequest.routing()); result.preference(countRequest.preference()); diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/CRUDDocumentationIT.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/CRUDDocumentationIT.java index 1054cbc372f3b..6baa19cc633b9 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/CRUDDocumentationIT.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/CRUDDocumentationIT.java @@ -1047,9 +1047,10 @@ public void testUpdateByQuery() throws Exception { request.setIndicesOptions(IndicesOptions.LENIENT_EXPAND_OPEN); // <1> // end::update-by-query-request-indicesOptions + RequestOptions requestOptions = IGNORE_THROTTLED_WARNING; // tag::update-by-query-execute BulkByScrollResponse bulkResponse = - client.updateByQuery(request, RequestOptions.DEFAULT); + client.updateByQuery(request, requestOptions); // end::update-by-query-execute assertSame(0, bulkResponse.getSearchFailures().size()); assertSame(0, bulkResponse.getBulkFailures().size()); @@ -1159,9 +1160,10 @@ public void testDeleteByQuery() throws Exception { request.setIndicesOptions(IndicesOptions.LENIENT_EXPAND_OPEN); // <1> // end::delete-by-query-request-indicesOptions + RequestOptions requestOptions = IGNORE_THROTTLED_WARNING; // tag::delete-by-query-execute BulkByScrollResponse bulkResponse = - client.deleteByQuery(request, RequestOptions.DEFAULT); + client.deleteByQuery(request, requestOptions); // end::delete-by-query-execute assertSame(0, bulkResponse.getSearchFailures().size()); assertSame(0, bulkResponse.getBulkFailures().size()); diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/IndicesClientDocumentationIT.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/IndicesClientDocumentationIT.java index 416e4992b8978..8c386880083e5 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/IndicesClientDocumentationIT.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/IndicesClientDocumentationIT.java @@ -111,6 +111,7 @@ import java.util.concurrent.TimeUnit; import static org.elasticsearch.client.IndicesClientIT.FROZEN_INDICES_DEPRECATION_WARNING; +import static org.elasticsearch.client.IndicesClientIT.IGNORE_THROTTLED_DEPRECATION_WARNING; import static org.elasticsearch.client.IndicesClientIT.LEGACY_TEMPLATE_OPTIONS; import static org.hamcrest.Matchers.containsInAnyOrder; import static org.hamcrest.Matchers.equalTo; @@ -161,8 +162,9 @@ public void testIndicesExist() throws IOException { request.indicesOptions(indicesOptions); // <4> // end::indices-exists-request-optionals + RequestOptions requestOptions = IGNORE_THROTTLED_WARNING; // tag::indices-exists-execute - boolean exists = client.indices().exists(request, RequestOptions.DEFAULT); + boolean exists = client.indices().exists(request, requestOptions); // end::indices-exists-execute assertTrue(exists); } @@ -229,8 +231,9 @@ public void testDeleteIndex() throws IOException { request.indicesOptions(IndicesOptions.lenientExpandOpen()); // <1> // end::delete-index-request-indicesOptions + RequestOptions requestOptions = IGNORE_THROTTLED_WARNING; // tag::delete-index-execute - AcknowledgedResponse deleteIndexResponse = client.indices().delete(request, RequestOptions.DEFAULT); + AcknowledgedResponse deleteIndexResponse = client.indices().delete(request, requestOptions); // end::delete-index-execute // tag::delete-index-response @@ -593,8 +596,9 @@ public void testGetMapping() throws IOException { request.indicesOptions(IndicesOptions.lenientExpandOpen()); // <1> // end::get-mappings-request-indicesOptions + RequestOptions requestOptions = IGNORE_THROTTLED_WARNING; // tag::get-mappings-execute - GetMappingsResponse getMappingResponse = client.indices().getMapping(request, RequestOptions.DEFAULT); + GetMappingsResponse getMappingResponse = client.indices().getMapping(request, requestOptions); // end::get-mappings-execute // tag::get-mappings-response @@ -713,10 +717,11 @@ public void testGetFieldMapping() throws IOException, InterruptedException { request.local(true); // <1> // end::get-field-mappings-request-local + RequestOptions requestOptions = IGNORE_THROTTLED_WARNING; { // tag::get-field-mappings-execute GetFieldMappingsResponse response = - client.indices().getFieldMapping(request, RequestOptions.DEFAULT); + client.indices().getFieldMapping(request, requestOptions); // end::get-field-mappings-execute // tag::get-field-mappings-response @@ -767,7 +772,7 @@ public void onFailure(Exception e) { }); // tag::get-field-mappings-execute-async - client.indices().getFieldMappingAsync(request, RequestOptions.DEFAULT, listener); // <1> + client.indices().getFieldMappingAsync(request, requestOptions, listener); // <1> // end::get-field-mappings-execute-async assertTrue(latch.await(30L, TimeUnit.SECONDS)); @@ -807,8 +812,9 @@ public void testOpenIndex() throws Exception { request.indicesOptions(IndicesOptions.strictExpandOpen()); // <1> // end::open-index-request-indicesOptions + RequestOptions requestOptions = IGNORE_THROTTLED_WARNING; // tag::open-index-execute - OpenIndexResponse openIndexResponse = client.indices().open(request, RequestOptions.DEFAULT); + OpenIndexResponse openIndexResponse = client.indices().open(request, requestOptions); // end::open-index-execute // tag::open-index-response @@ -838,7 +844,7 @@ public void onFailure(Exception e) { listener = new LatchedActionListener<>(listener, latch); // tag::open-index-execute-async - client.indices().openAsync(request, RequestOptions.DEFAULT, listener); // <1> + client.indices().openAsync(request, requestOptions, listener); // <1> // end::open-index-execute-async assertTrue(latch.await(30L, TimeUnit.SECONDS)); @@ -874,7 +880,7 @@ public void testRefreshIndex() throws Exception { // end::refresh-request // tag::refresh-request-indicesOptions - request.indicesOptions(IndicesOptions.lenientExpandOpen()); // <1> + request.indicesOptions(IndicesOptions.strictExpandOpenAndForbidClosed()); // <1> // end::refresh-request-indicesOptions // tag::refresh-execute @@ -954,8 +960,9 @@ public void testFlushIndex() throws Exception { request.force(true); // <1> // end::flush-request-force + RequestOptions requestOptions = IGNORE_THROTTLED_WARNING; // tag::flush-execute - FlushResponse flushResponse = client.indices().flush(request, RequestOptions.DEFAULT); + FlushResponse flushResponse = client.indices().flush(request, requestOptions); // end::flush-execute // tag::flush-response @@ -984,7 +991,7 @@ public void onFailure(Exception e) { listener = new LatchedActionListener<>(listener, latch); // tag::flush-execute-async - client.indices().flushAsync(request, RequestOptions.DEFAULT, listener); // <1> + client.indices().flushAsync(request, requestOptions, listener); // <1> // end::flush-execute-async assertTrue(latch.await(30L, TimeUnit.SECONDS)); @@ -1114,8 +1121,9 @@ public void testGetSettings() throws Exception { request.indicesOptions(IndicesOptions.lenientExpandOpen()); // <1> // end::get-settings-request-indicesOptions + RequestOptions requestOptions = IGNORE_THROTTLED_WARNING; // tag::get-settings-execute - GetSettingsResponse getSettingsResponse = client.indices().getSettings(request, RequestOptions.DEFAULT); + GetSettingsResponse getSettingsResponse = client.indices().getSettings(request, requestOptions); // end::get-settings-execute // tag::get-settings-response @@ -1150,7 +1158,7 @@ public void onFailure(Exception e) { listener = new LatchedActionListener<>(listener, latch); // tag::get-settings-execute-async - client.indices().getSettingsAsync(request, RequestOptions.DEFAULT, listener); // <1> + client.indices().getSettingsAsync(request, requestOptions, listener); // <1> // end::get-settings-execute-async assertTrue(latch.await(30L, TimeUnit.SECONDS)); @@ -1167,7 +1175,6 @@ public void testGetSettingsWithDefaults() throws Exception { } GetSettingsRequest request = new GetSettingsRequest().indices("index"); - request.indicesOptions(IndicesOptions.lenientExpandOpen()); // tag::get-settings-request-include-defaults request.includeDefaults(true); // <1> @@ -1233,8 +1240,9 @@ public void testGetIndex() throws Exception { request.includeDefaults(true); // <1> // end::get-index-request-includeDefaults + RequestOptions requestOptions = IGNORE_THROTTLED_WARNING; // tag::get-index-execute - GetIndexResponse getIndexResponse = client.indices().get(request, RequestOptions.DEFAULT); + GetIndexResponse getIndexResponse = client.indices().get(request, requestOptions); // end::get-index-execute // tag::get-index-response @@ -1278,7 +1286,7 @@ public void onFailure(Exception e) { listener = new LatchedActionListener<>(listener, latch); // tag::get-index-execute-async - client.indices().getAsync(request, RequestOptions.DEFAULT, listener); // <1> + client.indices().getAsync(request, requestOptions, listener); // <1> // end::get-index-execute-async assertTrue(latch.await(30L, TimeUnit.SECONDS)); @@ -1319,8 +1327,9 @@ public void testForceMergeIndex() throws Exception { request.flush(true); // <1> // end::force-merge-request-flush + RequestOptions requestOptions = IGNORE_THROTTLED_WARNING; // tag::force-merge-execute - ForceMergeResponse forceMergeResponse = client.indices().forcemerge(request, RequestOptions.DEFAULT); + ForceMergeResponse forceMergeResponse = client.indices().forcemerge(request, requestOptions); // end::force-merge-execute // tag::force-merge-response @@ -1345,7 +1354,7 @@ public void onFailure(Exception e) { // end::force-merge-execute-listener // tag::force-merge-execute-async - client.indices().forcemergeAsync(request, RequestOptions.DEFAULT, listener); // <1> + client.indices().forcemergeAsync(request, requestOptions, listener); // <1> // end::force-merge-execute-async } { @@ -1397,8 +1406,9 @@ public void testClearCache() throws Exception { request.fields("field1", "field2", "field3"); // <1> // end::clear-cache-request-fields + RequestOptions requestOptions = IGNORE_THROTTLED_WARNING; // tag::clear-cache-execute - ClearIndicesCacheResponse clearCacheResponse = client.indices().clearCache(request, RequestOptions.DEFAULT); + ClearIndicesCacheResponse clearCacheResponse = client.indices().clearCache(request, requestOptions); // end::clear-cache-execute // tag::clear-cache-response @@ -1473,8 +1483,9 @@ public void testCloseIndex() throws Exception { request.indicesOptions(IndicesOptions.lenientExpandOpen()); // <1> // end::close-index-request-indicesOptions + RequestOptions requestOptions = IGNORE_THROTTLED_WARNING; // tag::close-index-execute - AcknowledgedResponse closeIndexResponse = client.indices().close(request, RequestOptions.DEFAULT); + AcknowledgedResponse closeIndexResponse = client.indices().close(request, requestOptions); // end::close-index-execute // tag::close-index-response @@ -1541,8 +1552,9 @@ public void testExistsAlias() throws Exception { request.local(true); // <1> // end::exists-alias-request-local + RequestOptions requestOptions = IGNORE_THROTTLED_WARNING; // tag::exists-alias-execute - boolean exists = client.indices().existsAlias(request, RequestOptions.DEFAULT); + boolean exists = client.indices().existsAlias(request, requestOptions); // end::exists-alias-execute assertTrue(exists); @@ -2008,8 +2020,9 @@ public void testGetAlias() throws Exception { request.local(true); // <1> // end::get-alias-request-local + RequestOptions requestOptions = IGNORE_THROTTLED_WARNING; // tag::get-alias-execute - GetAliasesResponse response = client.indices().getAlias(request, RequestOptions.DEFAULT); + GetAliasesResponse response = client.indices().getAlias(request, requestOptions); // end::get-alias-execute // tag::get-alias-response @@ -2048,7 +2061,7 @@ public void onFailure(Exception e) { listener = new LatchedActionListener<>(listener, latch); // tag::get-alias-execute-async - client.indices().getAliasAsync(request, RequestOptions.DEFAULT, listener); // <1> + client.indices().getAliasAsync(request, requestOptions, listener); // <1> // end::get-alias-execute-async assertTrue(latch.await(30L, TimeUnit.SECONDS)); @@ -2121,9 +2134,10 @@ public void testIndexPutSettings() throws Exception { request.indicesOptions(IndicesOptions.lenientExpandOpen()); // <1> // end::indices-put-settings-request-indicesOptions + RequestOptions requestOptions = IGNORE_THROTTLED_WARNING; // tag::indices-put-settings-execute AcknowledgedResponse updateSettingsResponse = - client.indices().putSettings(request, RequestOptions.DEFAULT); + client.indices().putSettings(request, requestOptions); // end::indices-put-settings-execute // tag::indices-put-settings-response @@ -2987,7 +3001,7 @@ public void testFreezeIndex() throws Exception { final RequestOptions freezeIndexOptions = RequestOptions.DEFAULT.toBuilder() .setWarningsHandler( - warnings -> org.elasticsearch.core.List.of(FROZEN_INDICES_DEPRECATION_WARNING).equals(warnings) == false + warnings -> org.elasticsearch.core.List.of(FROZEN_INDICES_DEPRECATION_WARNING, IGNORE_THROTTLED_DEPRECATION_WARNING).equals(warnings) == false ) .build(); @@ -3072,7 +3086,7 @@ public void testUnfreezeIndex() throws Exception { // tag::unfreeze-index-execute final RequestOptions unfreezeIndexOptions = RequestOptions.DEFAULT.toBuilder() .setWarningsHandler( - warnings -> org.elasticsearch.core.List.of(FROZEN_INDICES_DEPRECATION_WARNING).equals(warnings) == false + warnings -> org.elasticsearch.core.List.of(FROZEN_INDICES_DEPRECATION_WARNING, IGNORE_THROTTLED_DEPRECATION_WARNING).equals(warnings) == false ) .build(); ShardsAcknowledgedResponse openIndexResponse = client.indices().unfreeze(request, unfreezeIndexOptions); diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/SearchDocumentationIT.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/SearchDocumentationIT.java index 7b64a2f27cda6..28e7cf69369c7 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/SearchDocumentationIT.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/documentation/SearchDocumentationIT.java @@ -149,7 +149,7 @@ public void testSearch() throws Exception { // tag::search-request-preference searchRequest.preference("_local"); // <1> // end::search-request-preference - assertNotNull(client.search(searchRequest, RequestOptions.DEFAULT)); + assertNotNull(client.search(searchRequest, IGNORE_THROTTLED_WARNING)); } { // tag::search-source-basics @@ -777,7 +777,7 @@ public void testPointInTime() throws Exception { openRequest.preference("_local"); // <1> // end::open-point-in-time-preference - openResponse = client.openPointInTime(openRequest, RequestOptions.DEFAULT); + openResponse = client.openPointInTime(openRequest, IGNORE_THROTTLED_WARNING); pitId = openResponse.getPointInTimeId(); client.closePointInTime(new ClosePointInTimeRequest(pitId), RequestOptions.DEFAULT); } @@ -1119,8 +1119,9 @@ public void testFieldCaps() throws Exception { request.indicesOptions(IndicesOptions.lenientExpandOpen()); // <1> // end::field-caps-request-indicesOptions + RequestOptions requestOptions = IGNORE_THROTTLED_WARNING; // tag::field-caps-execute - FieldCapabilitiesResponse response = client.fieldCaps(request, RequestOptions.DEFAULT); + FieldCapabilitiesResponse response = client.fieldCaps(request, requestOptions); // end::field-caps-execute // tag::field-caps-response @@ -1371,7 +1372,7 @@ public void testCount() throws Exception { .indicesOptions(IndicesOptions.lenientExpandOpen()) // <3> .preference("_local"); // <4> // end::count-request-args - assertNotNull(client.count(countRequest, RequestOptions.DEFAULT)); + assertNotNull(client.count(countRequest, IGNORE_THROTTLED_WARNING)); } { // tag::count-source-basics diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/eql/EqlSearchRequestTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/eql/EqlSearchRequestTests.java index 0b3c1634e993f..7c23e5fd59de3 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/eql/EqlSearchRequestTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/eql/EqlSearchRequestTests.java @@ -8,6 +8,7 @@ package org.elasticsearch.client.eql; +import org.elasticsearch.action.support.IndicesOptions; import org.elasticsearch.client.AbstractRequestTestCase; import org.elasticsearch.common.settings.Settings; import org.elasticsearch.common.xcontent.NamedXContentRegistry; @@ -70,7 +71,9 @@ protected void assertInstances(org.elasticsearch.xpack.eql.action.EqlSearchReque assertThat(serverInstance.tiebreakerField(), equalTo(clientTestInstance.tiebreakerField())); assertThat(serverInstance.filter(), equalTo(clientTestInstance.filter())); assertThat(serverInstance.query(), equalTo(clientTestInstance.query())); - assertThat(serverInstance.indicesOptions(), equalTo(clientTestInstance.indicesOptions())); + IndicesOptions actual = clientTestInstance.indicesOptions() == null ? + org.elasticsearch.xpack.eql.action.EqlSearchRequest.DEFAULT_INDICES_OPTIONS : clientTestInstance.indicesOptions(); + assertThat(serverInstance.indicesOptions(), equalTo(actual)); assertThat(serverInstance.indices(), equalTo(clientTestInstance.indices())); assertThat(serverInstance.fetchSize(), equalTo(clientTestInstance.fetchSize())); assertThat(serverInstance.size(), equalTo(clientTestInstance.size())); diff --git a/client/rest-high-level/src/test/java/org/elasticsearch/client/indexlifecycle/RemoveIndexLifecyclePolicyRequestTests.java b/client/rest-high-level/src/test/java/org/elasticsearch/client/indexlifecycle/RemoveIndexLifecyclePolicyRequestTests.java index d1f354ac34ff5..c2e8c332dbc91 100644 --- a/client/rest-high-level/src/test/java/org/elasticsearch/client/indexlifecycle/RemoveIndexLifecyclePolicyRequestTests.java +++ b/client/rest-high-level/src/test/java/org/elasticsearch/client/indexlifecycle/RemoveIndexLifecyclePolicyRequestTests.java @@ -42,11 +42,15 @@ protected RemoveIndexLifecyclePolicyRequest createInstance() { } private RemoveIndexLifecyclePolicyRequest copyInstance(RemoveIndexLifecyclePolicyRequest req) { - return new RemoveIndexLifecyclePolicyRequest(new ArrayList<>(req.indices()), IndicesOptions.fromOptions( + if (req.indicesOptions() != null) { + return new RemoveIndexLifecyclePolicyRequest(new ArrayList<>(req.indices()), IndicesOptions.fromOptions( req.indicesOptions().ignoreUnavailable(), req.indicesOptions().allowNoIndices(), req.indicesOptions().expandWildcardsOpen(), req.indicesOptions().expandWildcardsClosed(), req.indicesOptions().allowAliasesToMultipleIndices(), req.indicesOptions().forbidClosedIndices(), req.indicesOptions().ignoreAliases(), req.indicesOptions().ignoreThrottled())); + } else { + return new RemoveIndexLifecyclePolicyRequest(new ArrayList<>(req.indices())); + } } private RemoveIndexLifecyclePolicyRequest mutateInstance(RemoveIndexLifecyclePolicyRequest req) { @@ -55,9 +59,14 @@ private RemoveIndexLifecyclePolicyRequest mutateInstance(RemoveIndexLifecyclePol randomValueOtherThan(req.indicesOptions(), () -> IndicesOptions.fromOptions(randomBoolean(), randomBoolean(), randomBoolean(), randomBoolean(), randomBoolean(), randomBoolean(), randomBoolean(), randomBoolean()))); } else { - return new RemoveIndexLifecyclePolicyRequest( + if (req.indicesOptions() != null) { + return new RemoveIndexLifecyclePolicyRequest( randomValueOtherThan(req.indices(), () -> Arrays.asList(generateRandomStringArray(20, 20, false))), req.indicesOptions()); + } else { + return new RemoveIndexLifecyclePolicyRequest( + randomValueOtherThan(req.indices(), () -> Arrays.asList(generateRandomStringArray(20, 20, false)))); + } } } diff --git a/server/src/main/java/org/elasticsearch/action/admin/indices/alias/get/GetAliasesRequest.java b/server/src/main/java/org/elasticsearch/action/admin/indices/alias/get/GetAliasesRequest.java index 009e3a9435649..91734def3b13a 100644 --- a/server/src/main/java/org/elasticsearch/action/admin/indices/alias/get/GetAliasesRequest.java +++ b/server/src/main/java/org/elasticsearch/action/admin/indices/alias/get/GetAliasesRequest.java @@ -20,9 +20,11 @@ public class GetAliasesRequest extends MasterNodeReadRequest implements AliasesRequest { + public static final IndicesOptions DEFAULT_INDICES_OPTIONS = IndicesOptions.strictExpandHidden(); + private String[] indices = Strings.EMPTY_ARRAY; private String[] aliases = Strings.EMPTY_ARRAY; - private IndicesOptions indicesOptions = IndicesOptions.strictExpandHidden(); + private IndicesOptions indicesOptions = DEFAULT_INDICES_OPTIONS; private String[] originalAliases = Strings.EMPTY_ARRAY; public GetAliasesRequest(String... aliases) { diff --git a/server/src/main/java/org/elasticsearch/action/admin/indices/delete/DeleteIndexRequest.java b/server/src/main/java/org/elasticsearch/action/admin/indices/delete/DeleteIndexRequest.java index 11d8d61d7096c..141108df95580 100644 --- a/server/src/main/java/org/elasticsearch/action/admin/indices/delete/DeleteIndexRequest.java +++ b/server/src/main/java/org/elasticsearch/action/admin/indices/delete/DeleteIndexRequest.java @@ -25,9 +25,12 @@ */ public class DeleteIndexRequest extends AcknowledgedRequest implements IndicesRequest.Replaceable { + public static final IndicesOptions DEFAULT_INDICES_OPTIONS = + IndicesOptions.fromOptions(false, true, true, true, false, false, true, false); + private String[] indices; // Delete index should work by default on both open and closed indices. - private IndicesOptions indicesOptions = IndicesOptions.fromOptions(false, true, true, true, false, false, true, false); + private IndicesOptions indicesOptions = DEFAULT_INDICES_OPTIONS; public DeleteIndexRequest(StreamInput in) throws IOException { super(in); diff --git a/server/src/main/java/org/elasticsearch/action/admin/indices/open/OpenIndexRequest.java b/server/src/main/java/org/elasticsearch/action/admin/indices/open/OpenIndexRequest.java index 9c0e9c1abf1bf..2aa76cc314cc4 100644 --- a/server/src/main/java/org/elasticsearch/action/admin/indices/open/OpenIndexRequest.java +++ b/server/src/main/java/org/elasticsearch/action/admin/indices/open/OpenIndexRequest.java @@ -27,8 +27,10 @@ */ public class OpenIndexRequest extends AcknowledgedRequest implements IndicesRequest.Replaceable { + public static final IndicesOptions DEFAULT_INDICES_OPTIONS = IndicesOptions.fromOptions(false, true, false, true); + private String[] indices; - private IndicesOptions indicesOptions = IndicesOptions.fromOptions(false, true, false, true); + private IndicesOptions indicesOptions = DEFAULT_INDICES_OPTIONS; private ActiveShardCount waitForActiveShards = ActiveShardCount.DEFAULT; public OpenIndexRequest(StreamInput in) throws IOException { diff --git a/server/src/main/java/org/elasticsearch/action/admin/indices/settings/get/GetSettingsRequest.java b/server/src/main/java/org/elasticsearch/action/admin/indices/settings/get/GetSettingsRequest.java index 2e5c1d4ec4c6a..5b31766dd78a5 100644 --- a/server/src/main/java/org/elasticsearch/action/admin/indices/settings/get/GetSettingsRequest.java +++ b/server/src/main/java/org/elasticsearch/action/admin/indices/settings/get/GetSettingsRequest.java @@ -24,8 +24,10 @@ public class GetSettingsRequest extends MasterNodeReadRequest implements IndicesRequest.Replaceable { + public static final IndicesOptions DEFAULT_INDICES_OPTIONS = IndicesOptions.fromOptions(false, true, true, true); + private String[] indices = Strings.EMPTY_ARRAY; - private IndicesOptions indicesOptions = IndicesOptions.fromOptions(false, true, true, true); + private IndicesOptions indicesOptions = DEFAULT_INDICES_OPTIONS; private String[] names = Strings.EMPTY_ARRAY; private boolean humanReadable = false; private boolean includeDefaults = false; diff --git a/server/src/main/java/org/elasticsearch/action/admin/indices/settings/put/UpdateSettingsRequest.java b/server/src/main/java/org/elasticsearch/action/admin/indices/settings/put/UpdateSettingsRequest.java index ec41573a86759..78cf32952a66c 100644 --- a/server/src/main/java/org/elasticsearch/action/admin/indices/settings/put/UpdateSettingsRequest.java +++ b/server/src/main/java/org/elasticsearch/action/admin/indices/settings/put/UpdateSettingsRequest.java @@ -39,8 +39,10 @@ public class UpdateSettingsRequest extends AcknowledgedRequest implements IndicesRequest.Replaceable, ToXContentObject { + public static final IndicesOptions DEFAULT_INDICES_OPTIONS = IndicesOptions.fromOptions(false, false, true, true); + private String[] indices; - private IndicesOptions indicesOptions = IndicesOptions.fromOptions(false, false, true, true); + private IndicesOptions indicesOptions = DEFAULT_INDICES_OPTIONS; private Settings settings = EMPTY_SETTINGS; private boolean preserveExisting = false; private String origin = ""; diff --git a/server/src/main/java/org/elasticsearch/action/admin/indices/validate/query/ValidateQueryRequest.java b/server/src/main/java/org/elasticsearch/action/admin/indices/validate/query/ValidateQueryRequest.java index 560862ee5e036..e0e576bd5675a 100644 --- a/server/src/main/java/org/elasticsearch/action/admin/indices/validate/query/ValidateQueryRequest.java +++ b/server/src/main/java/org/elasticsearch/action/admin/indices/validate/query/ValidateQueryRequest.java @@ -30,6 +30,8 @@ */ public class ValidateQueryRequest extends BroadcastRequest implements ToXContentObject { + public static final IndicesOptions DEFAULT_INDICES_OPTIONS = IndicesOptions.fromOptions(false, false, true, false); + private QueryBuilder query = new MatchAllQueryBuilder(); private boolean explain; @@ -65,7 +67,7 @@ public ValidateQueryRequest(StreamInput in) throws IOException { */ public ValidateQueryRequest(String... indices) { super(indices); - indicesOptions(IndicesOptions.fromOptions(false, false, true, false)); + indicesOptions(DEFAULT_INDICES_OPTIONS); } @Override diff --git a/server/src/main/java/org/elasticsearch/action/fieldcaps/FieldCapabilitiesRequest.java b/server/src/main/java/org/elasticsearch/action/fieldcaps/FieldCapabilitiesRequest.java index 5ea8455fce2af..291ec65018a38 100644 --- a/server/src/main/java/org/elasticsearch/action/fieldcaps/FieldCapabilitiesRequest.java +++ b/server/src/main/java/org/elasticsearch/action/fieldcaps/FieldCapabilitiesRequest.java @@ -31,9 +31,10 @@ public final class FieldCapabilitiesRequest extends ActionRequest implements IndicesRequest.Replaceable, ToXContentObject { public static final String NAME = "field_caps_request"; + public static final IndicesOptions DEFAULT_INDICES_OPTIONS = IndicesOptions.strictExpandOpen(); private String[] indices = Strings.EMPTY_ARRAY; - private IndicesOptions indicesOptions = IndicesOptions.strictExpandOpen(); + private IndicesOptions indicesOptions = DEFAULT_INDICES_OPTIONS; private String[] fields = Strings.EMPTY_ARRAY; private boolean includeUnmapped = false; // pkg private API mainly for cross cluster search to signal that we do multiple reductions ie. the results should not be merged diff --git a/server/src/main/java/org/elasticsearch/action/support/IndicesOptions.java b/server/src/main/java/org/elasticsearch/action/support/IndicesOptions.java index 9693c95211383..4c6949d33565b 100644 --- a/server/src/main/java/org/elasticsearch/action/support/IndicesOptions.java +++ b/server/src/main/java/org/elasticsearch/action/support/IndicesOptions.java @@ -9,6 +9,8 @@ import org.elasticsearch.Version; import org.elasticsearch.ElasticsearchParseException; +import org.elasticsearch.common.logging.DeprecationCategory; +import org.elasticsearch.common.logging.DeprecationLogger; import org.elasticsearch.core.Nullable; import org.elasticsearch.common.xcontent.ParseField; import org.elasticsearch.common.io.stream.StreamInput; @@ -104,6 +106,10 @@ public enum Option { public static final EnumSet