Browse Source

Deprecate type exists requests. (#34663)

Julie Tibshirani 7 years ago
parent
commit
fbb9ac34f9

+ 3 - 0
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 <<removal-of-types>>.]
+
 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.

+ 0 - 39
rest-api-spec/src/main/resources/rest-api-spec/test/indices.exists_type/10_basic.yml

@@ -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: ''

+ 1 - 0
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<TypesExistsRequest, TypesExistsResponse, TypesExistsRequestBuilder> {
 
     /**

+ 10 - 3
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<TypesExistsResponse> 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<TypesExistsResponse> listener);
 
     /**
-     * Indices exists.
+     * Types exists.
+     *
+     * @deprecated Types are deprecated and are in the process of being removed.
      */
+    @Deprecated
     TypesExistsRequestBuilder prepareTypesExists(String... index);
 
     /**

+ 1 - 0
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<TypesExistsResponse> typesExists(TypesExistsRequest request) {
             return execute(TypesExistsAction.INSTANCE, request);

+ 4 - 0
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");

+ 49 - 0
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<String, String> 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.");
+    }
+}