Deprecate type exists requests. (#34663)

This commit is contained in:
Julie Tibshirani 2018-10-22 08:46:11 -07:00 committed by GitHub
parent 52fc502b7e
commit fbb9ac34f9
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
7 changed files with 68 additions and 42 deletions

View File

@ -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.

View File

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

View File

@ -26,6 +26,7 @@ import org.elasticsearch.common.Strings;
/**
* A builder for {@link TypesExistsRequest}.
*/
@Deprecated
public class TypesExistsRequestBuilder extends MasterNodeReadOperationRequestBuilder<TypesExistsRequest, TypesExistsResponse, TypesExistsRequestBuilder> {
/**

View File

@ -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);
/**

View File

@ -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);

View File

@ -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");

View File

@ -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.");
}
}