From fbb9ac34f97f4021d4e0e4dddbd19ae334dd5c4d Mon Sep 17 00:00:00 2001 From: Julie Tibshirani Date: Mon, 22 Oct 2018 08:46:11 -0700 Subject: [PATCH] Deprecate type exists requests. (#34663) --- docs/reference/indices/types-exists.asciidoc | 3 ++ .../test/indices.exists_type/10_basic.yml | 39 --------------- .../types/TypesExistsRequestBuilder.java | 1 + .../client/IndicesAdminClient.java | 13 +++-- .../client/support/AbstractClient.java | 1 + .../admin/indices/RestGetMappingAction.java | 4 ++ .../indices/RestGetMappingActionTests.java | 49 +++++++++++++++++++ 7 files changed, 68 insertions(+), 42 deletions(-) delete mode 100644 rest-api-spec/src/main/resources/rest-api-spec/test/indices.exists_type/10_basic.yml create mode 100644 server/src/test/java/org/elasticsearch/rest/action/admin/indices/RestGetMappingActionTests.java diff --git a/docs/reference/indices/types-exists.asciidoc b/docs/reference/indices/types-exists.asciidoc index 29a9be29e05..f06bd0f4734 100644 --- a/docs/reference/indices/types-exists.asciidoc +++ b/docs/reference/indices/types-exists.asciidoc @@ -1,6 +1,8 @@ [[indices-types-exists]] == Types Exists +deprecated[7.0.0, Types are deprecated and are in the process of being removed. See <>.] + Used to check if a type/types exists in an index/indices. [source,js] @@ -9,6 +11,7 @@ HEAD twitter/_mapping/tweet -------------------------------------------------- // CONSOLE // TEST[setup:twitter] +// TEST[warning:Type exists requests are deprecated, as types have been deprecated.] The HTTP status code indicates if the type exists or not. A `404` means it does not exist, and `200` means it does. diff --git a/rest-api-spec/src/main/resources/rest-api-spec/test/indices.exists_type/10_basic.yml b/rest-api-spec/src/main/resources/rest-api-spec/test/indices.exists_type/10_basic.yml deleted file mode 100644 index f9b46aa800e..00000000000 --- a/rest-api-spec/src/main/resources/rest-api-spec/test/indices.exists_type/10_basic.yml +++ /dev/null @@ -1,39 +0,0 @@ ---- -"Exists type": - - do: - indices.create: - index: test_1 - body: - mappings: - type_1: {} - - - do: - indices.exists_type: - index: test_2 - type: type_1 - - - is_false: '' - - - do: - indices.exists_type: - index: test_1 - type: type_3 - - - is_false: '' - - - do: - indices.exists_type: - index: test_1 - type: type_1 - - - is_true: '' ---- -"Exists type with local flag": - - - do: - indices.exists_type: - index: test_1 - type: type_1 - local: true - - - is_false: '' diff --git a/server/src/main/java/org/elasticsearch/action/admin/indices/exists/types/TypesExistsRequestBuilder.java b/server/src/main/java/org/elasticsearch/action/admin/indices/exists/types/TypesExistsRequestBuilder.java index 3bc24e58386..f73dcdec224 100644 --- a/server/src/main/java/org/elasticsearch/action/admin/indices/exists/types/TypesExistsRequestBuilder.java +++ b/server/src/main/java/org/elasticsearch/action/admin/indices/exists/types/TypesExistsRequestBuilder.java @@ -26,6 +26,7 @@ import org.elasticsearch.common.Strings; /** * A builder for {@link TypesExistsRequest}. */ +@Deprecated public class TypesExistsRequestBuilder extends MasterNodeReadOperationRequestBuilder { /** diff --git a/server/src/main/java/org/elasticsearch/client/IndicesAdminClient.java b/server/src/main/java/org/elasticsearch/client/IndicesAdminClient.java index 60e9334c87d..718dde98a0f 100644 --- a/server/src/main/java/org/elasticsearch/client/IndicesAdminClient.java +++ b/server/src/main/java/org/elasticsearch/client/IndicesAdminClient.java @@ -147,24 +147,31 @@ public interface IndicesAdminClient extends ElasticsearchClient { /** - * Types Exists. + * Types exists. * + * @deprecated Types are deprecated and are in the process of being removed. * @param request The types exists request * @return The result future */ + @Deprecated ActionFuture typesExists(TypesExistsRequest request); /** - * Types exists + * Types exists. * + * @deprecated Types are deprecated and are in the process of being removed. * @param request The types exists * @param listener A listener to be notified with a result */ + @Deprecated void typesExists(TypesExistsRequest request, ActionListener listener); /** - * Indices exists. + * Types exists. + * + * @deprecated Types are deprecated and are in the process of being removed. */ + @Deprecated TypesExistsRequestBuilder prepareTypesExists(String... index); /** diff --git a/server/src/main/java/org/elasticsearch/client/support/AbstractClient.java b/server/src/main/java/org/elasticsearch/client/support/AbstractClient.java index 553c92e6de8..105fd3fcc49 100644 --- a/server/src/main/java/org/elasticsearch/client/support/AbstractClient.java +++ b/server/src/main/java/org/elasticsearch/client/support/AbstractClient.java @@ -1256,6 +1256,7 @@ public abstract class AbstractClient extends AbstractComponent implements Client return new IndicesExistsRequestBuilder(this, IndicesExistsAction.INSTANCE, indices); } + @Deprecated @Override public ActionFuture typesExists(TypesExistsRequest request) { return execute(TypesExistsAction.INSTANCE, request); diff --git a/server/src/main/java/org/elasticsearch/rest/action/admin/indices/RestGetMappingAction.java b/server/src/main/java/org/elasticsearch/rest/action/admin/indices/RestGetMappingAction.java index f5d99bbb46c..a6b0c6c05a1 100644 --- a/server/src/main/java/org/elasticsearch/rest/action/admin/indices/RestGetMappingAction.java +++ b/server/src/main/java/org/elasticsearch/rest/action/admin/indices/RestGetMappingAction.java @@ -76,6 +76,10 @@ public class RestGetMappingAction extends BaseRestHandler { @Override public RestChannelConsumer prepareRequest(final RestRequest request, final NodeClient client) throws IOException { + if (request.method().equals(HEAD)) { + deprecationLogger.deprecated("Type exists requests are deprecated, as types have been deprecated."); + } + final boolean includeTypeName = request.paramAsBoolean("include_type_name", true); final String[] indices = Strings.splitStringByCommaToArray(request.param("index")); final String[] types = request.paramAsStringArrayOrEmptyIfAll("type"); diff --git a/server/src/test/java/org/elasticsearch/rest/action/admin/indices/RestGetMappingActionTests.java b/server/src/test/java/org/elasticsearch/rest/action/admin/indices/RestGetMappingActionTests.java new file mode 100644 index 00000000000..8f9093df2fc --- /dev/null +++ b/server/src/test/java/org/elasticsearch/rest/action/admin/indices/RestGetMappingActionTests.java @@ -0,0 +1,49 @@ +/* + * 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.rest.action.admin.indices; + +import org.elasticsearch.client.node.NodeClient; +import org.elasticsearch.common.settings.Settings; +import org.elasticsearch.rest.RestController; +import org.elasticsearch.rest.RestRequest; +import org.elasticsearch.test.ESTestCase; +import org.elasticsearch.test.rest.FakeRestRequest; + +import java.util.HashMap; +import java.util.Map; + +import static org.mockito.Mockito.mock; + +public class RestGetMappingActionTests extends ESTestCase { + + public void testTypeExistsDeprecation() throws Exception { + Map params = new HashMap<>(); + params.put("type", "_doc"); + RestRequest request = new FakeRestRequest.Builder(xContentRegistry()) + .withMethod(RestRequest.Method.HEAD) + .withParams(params) + .build(); + + RestGetMappingAction handler = new RestGetMappingAction(Settings.EMPTY, mock(RestController.class)); + handler.prepareRequest(request, mock(NodeClient.class)); + + assertWarnings("Type exists requests are deprecated, as types have been deprecated."); + } +}