mirror of
https://github.com/honeymoose/OpenSearch.git
synced 2025-02-17 02:14:54 +00:00
Deprecate _type
in simulate pipeline requests (#37949)
As mapping types are being removed throughout Elasticsearch, the use of `_type` in pipeline simulation requests is deprecated. Additionally, the default `_type` used if one is not supplied has been changed to `_doc` for consistency with the rest of Elasticsearch.
This commit is contained in:
parent
b866417650
commit
292e0f6fb7
@ -130,7 +130,6 @@ public class IngestClientIT extends ESRestHighLevelClientTestCase {
|
|||||||
{
|
{
|
||||||
builder.startObject()
|
builder.startObject()
|
||||||
.field("_index", "index")
|
.field("_index", "index")
|
||||||
.field("_type", "doc")
|
|
||||||
.field("_id", "doc_" + 1)
|
.field("_id", "doc_" + 1)
|
||||||
.startObject("_source").field("foo", "rab_" + 1).field("rank", rankValue).endObject()
|
.startObject("_source").field("foo", "rab_" + 1).field("rank", rankValue).endObject()
|
||||||
.endObject();
|
.endObject();
|
||||||
|
@ -296,8 +296,8 @@ public class IngestClientDocumentationIT extends ESRestHighLevelClientTestCase {
|
|||||||
"\"processors\":[{\"set\":{\"field\":\"field2\",\"value\":\"_value\"}}]" +
|
"\"processors\":[{\"set\":{\"field\":\"field2\",\"value\":\"_value\"}}]" +
|
||||||
"}," +
|
"}," +
|
||||||
"\"docs\":[" +
|
"\"docs\":[" +
|
||||||
"{\"_index\":\"index\",\"_type\":\"_doc\",\"_id\":\"id\",\"_source\":{\"foo\":\"bar\"}}," +
|
"{\"_index\":\"index\",\"_id\":\"id\",\"_source\":{\"foo\":\"bar\"}}," +
|
||||||
"{\"_index\":\"index\",\"_type\":\"_doc\",\"_id\":\"id\",\"_source\":{\"foo\":\"rab\"}}" +
|
"{\"_index\":\"index\",\"_id\":\"id\",\"_source\":{\"foo\":\"rab\"}}" +
|
||||||
"]" +
|
"]" +
|
||||||
"}";
|
"}";
|
||||||
SimulatePipelineRequest request = new SimulatePipelineRequest(
|
SimulatePipelineRequest request = new SimulatePipelineRequest(
|
||||||
@ -353,8 +353,8 @@ public class IngestClientDocumentationIT extends ESRestHighLevelClientTestCase {
|
|||||||
"\"processors\":[{\"set\":{\"field\":\"field2\",\"value\":\"_value\"}}]" +
|
"\"processors\":[{\"set\":{\"field\":\"field2\",\"value\":\"_value\"}}]" +
|
||||||
"}," +
|
"}," +
|
||||||
"\"docs\":[" +
|
"\"docs\":[" +
|
||||||
"{\"_index\":\"index\",\"_type\":\"_doc\",\"_id\":\"id\",\"_source\":{\"foo\":\"bar\"}}," +
|
"{\"_index\":\"index\",\"_id\":\"id\",\"_source\":{\"foo\":\"bar\"}}," +
|
||||||
"{\"_index\":\"index\",\"_type\":\"_doc\",\"_id\":\"id\",\"_source\":{\"foo\":\"rab\"}}" +
|
"{\"_index\":\"index\",\"_id\":\"id\",\"_source\":{\"foo\":\"rab\"}}" +
|
||||||
"]" +
|
"]" +
|
||||||
"}";
|
"}";
|
||||||
SimulatePipelineRequest request = new SimulatePipelineRequest(
|
SimulatePipelineRequest request = new SimulatePipelineRequest(
|
||||||
|
@ -65,7 +65,6 @@ POST _ingest/pipeline/_simulate
|
|||||||
"docs": [
|
"docs": [
|
||||||
{
|
{
|
||||||
"_index": "index",
|
"_index": "index",
|
||||||
"_type": "_doc",
|
|
||||||
"_id": "id",
|
"_id": "id",
|
||||||
"_source": {
|
"_source": {
|
||||||
"foo": "bar"
|
"foo": "bar"
|
||||||
@ -73,7 +72,6 @@ POST _ingest/pipeline/_simulate
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"_index": "index",
|
"_index": "index",
|
||||||
"_type": "_doc",
|
|
||||||
"_id": "id",
|
"_id": "id",
|
||||||
"_source": {
|
"_source": {
|
||||||
"foo": "rab"
|
"foo": "rab"
|
||||||
@ -158,7 +156,6 @@ POST _ingest/pipeline/_simulate?verbose
|
|||||||
"docs": [
|
"docs": [
|
||||||
{
|
{
|
||||||
"_index": "index",
|
"_index": "index",
|
||||||
"_type": "_doc",
|
|
||||||
"_id": "id",
|
"_id": "id",
|
||||||
"_source": {
|
"_source": {
|
||||||
"foo": "bar"
|
"foo": "bar"
|
||||||
@ -166,7 +163,6 @@ POST _ingest/pipeline/_simulate?verbose
|
|||||||
},
|
},
|
||||||
{
|
{
|
||||||
"_index": "index",
|
"_index": "index",
|
||||||
"_type": "_doc",
|
|
||||||
"_id": "id",
|
"_id": "id",
|
||||||
"_source": {
|
"_source": {
|
||||||
"foo": "rab"
|
"foo": "rab"
|
||||||
|
@ -112,7 +112,7 @@ and the result:
|
|||||||
"doc" : {
|
"doc" : {
|
||||||
"_id" : "_id",
|
"_id" : "_id",
|
||||||
"_index" : "<myindex-{2016-04-25||/M{yyyy-MM-dd|UTC}}>",
|
"_index" : "<myindex-{2016-04-25||/M{yyyy-MM-dd|UTC}}>",
|
||||||
"_type" : "_type",
|
"_type" : "_doc",
|
||||||
"_source" : {
|
"_source" : {
|
||||||
"date1" : "2016-04-25T12:02:01.789Z"
|
"date1" : "2016-04-25T12:02:01.789Z"
|
||||||
},
|
},
|
||||||
|
@ -193,7 +193,7 @@ response:
|
|||||||
"docs": [
|
"docs": [
|
||||||
{
|
{
|
||||||
"doc": {
|
"doc": {
|
||||||
"_type": "_type",
|
"_type": "_doc",
|
||||||
"_index": "_index",
|
"_index": "_index",
|
||||||
"_id": "_id",
|
"_id": "_id",
|
||||||
"_source": {
|
"_source": {
|
||||||
@ -254,7 +254,7 @@ POST _ingest/pipeline/_simulate
|
|||||||
"docs": [
|
"docs": [
|
||||||
{
|
{
|
||||||
"doc": {
|
"doc": {
|
||||||
"_type": "_type",
|
"_type": "_doc",
|
||||||
"_index": "_index",
|
"_index": "_index",
|
||||||
"_id": "_id",
|
"_id": "_id",
|
||||||
"_source": {
|
"_source": {
|
||||||
|
@ -19,11 +19,14 @@
|
|||||||
|
|
||||||
package org.elasticsearch.action.ingest;
|
package org.elasticsearch.action.ingest;
|
||||||
|
|
||||||
|
import org.apache.logging.log4j.LogManager;
|
||||||
|
import org.apache.logging.log4j.Logger;
|
||||||
import org.elasticsearch.action.ActionRequest;
|
import org.elasticsearch.action.ActionRequest;
|
||||||
import org.elasticsearch.action.ActionRequestValidationException;
|
import org.elasticsearch.action.ActionRequestValidationException;
|
||||||
import org.elasticsearch.common.bytes.BytesReference;
|
import org.elasticsearch.common.bytes.BytesReference;
|
||||||
import org.elasticsearch.common.io.stream.StreamInput;
|
import org.elasticsearch.common.io.stream.StreamInput;
|
||||||
import org.elasticsearch.common.io.stream.StreamOutput;
|
import org.elasticsearch.common.io.stream.StreamOutput;
|
||||||
|
import org.elasticsearch.common.logging.DeprecationLogger;
|
||||||
import org.elasticsearch.common.xcontent.ToXContentObject;
|
import org.elasticsearch.common.xcontent.ToXContentObject;
|
||||||
import org.elasticsearch.common.xcontent.XContentBuilder;
|
import org.elasticsearch.common.xcontent.XContentBuilder;
|
||||||
import org.elasticsearch.common.xcontent.XContentType;
|
import org.elasticsearch.common.xcontent.XContentType;
|
||||||
@ -43,6 +46,9 @@ import java.util.Objects;
|
|||||||
|
|
||||||
public class SimulatePipelineRequest extends ActionRequest implements ToXContentObject {
|
public class SimulatePipelineRequest extends ActionRequest implements ToXContentObject {
|
||||||
|
|
||||||
|
private static final Logger logger = LogManager.getLogger(SimulatePipelineRequest.class);
|
||||||
|
private static final DeprecationLogger deprecationLogger = new DeprecationLogger(logger);
|
||||||
|
|
||||||
private String id;
|
private String id;
|
||||||
private boolean verbose;
|
private boolean verbose;
|
||||||
private BytesReference source;
|
private BytesReference source;
|
||||||
@ -178,8 +184,12 @@ public class SimulatePipelineRequest extends ActionRequest implements ToXContent
|
|||||||
dataMap, Fields.SOURCE);
|
dataMap, Fields.SOURCE);
|
||||||
String index = ConfigurationUtils.readStringOrIntProperty(null, null,
|
String index = ConfigurationUtils.readStringOrIntProperty(null, null,
|
||||||
dataMap, MetaData.INDEX.getFieldName(), "_index");
|
dataMap, MetaData.INDEX.getFieldName(), "_index");
|
||||||
|
if (dataMap.containsKey(MetaData.TYPE.getFieldName())) {
|
||||||
|
deprecationLogger.deprecatedAndMaybeLog("simulate_pipeline_with_types",
|
||||||
|
"[types removal] specifying _type in pipeline simulation requests is deprecated");
|
||||||
|
}
|
||||||
String type = ConfigurationUtils.readStringOrIntProperty(null, null,
|
String type = ConfigurationUtils.readStringOrIntProperty(null, null,
|
||||||
dataMap, MetaData.TYPE.getFieldName(), "_type");
|
dataMap, MetaData.TYPE.getFieldName(), "_doc");
|
||||||
String id = ConfigurationUtils.readStringOrIntProperty(null, null,
|
String id = ConfigurationUtils.readStringOrIntProperty(null, null,
|
||||||
dataMap, MetaData.ID.getFieldName(), "_id");
|
dataMap, MetaData.ID.getFieldName(), "_id");
|
||||||
String routing = ConfigurationUtils.readOptionalStringOrIntProperty(null, null,
|
String routing = ConfigurationUtils.readOptionalStringOrIntProperty(null, null,
|
||||||
|
@ -19,15 +19,6 @@
|
|||||||
|
|
||||||
package org.elasticsearch.action.ingest;
|
package org.elasticsearch.action.ingest;
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Arrays;
|
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Iterator;
|
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
import org.elasticsearch.index.VersionType;
|
import org.elasticsearch.index.VersionType;
|
||||||
import org.elasticsearch.ingest.CompoundProcessor;
|
import org.elasticsearch.ingest.CompoundProcessor;
|
||||||
import org.elasticsearch.ingest.IngestDocument;
|
import org.elasticsearch.ingest.IngestDocument;
|
||||||
@ -38,6 +29,15 @@ import org.elasticsearch.ingest.TestProcessor;
|
|||||||
import org.elasticsearch.test.ESTestCase;
|
import org.elasticsearch.test.ESTestCase;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Arrays;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Iterator;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
import static org.elasticsearch.action.ingest.SimulatePipelineRequest.Fields;
|
import static org.elasticsearch.action.ingest.SimulatePipelineRequest.Fields;
|
||||||
import static org.elasticsearch.action.ingest.SimulatePipelineRequest.SIMULATED_PIPELINE_ID;
|
import static org.elasticsearch.action.ingest.SimulatePipelineRequest.SIMULATED_PIPELINE_ID;
|
||||||
import static org.elasticsearch.ingest.IngestDocument.MetaData.ID;
|
import static org.elasticsearch.ingest.IngestDocument.MetaData.ID;
|
||||||
@ -67,7 +67,15 @@ public class SimulatePipelineRequestParsingTests extends ESTestCase {
|
|||||||
when(ingestService.getProcessorFactories()).thenReturn(registry);
|
when(ingestService.getProcessorFactories()).thenReturn(registry);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testParseUsingPipelineStore() throws Exception {
|
public void testParseUsingPipelineStoreNoType() throws Exception {
|
||||||
|
innerTestParseUsingPipelineStore(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testParseUsingPipelineStoreWithType() throws Exception {
|
||||||
|
innerTestParseUsingPipelineStore(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void innerTestParseUsingPipelineStore(boolean useExplicitType) throws Exception {
|
||||||
int numDocs = randomIntBetween(1, 10);
|
int numDocs = randomIntBetween(1, 10);
|
||||||
|
|
||||||
Map<String, Object> requestContent = new HashMap<>();
|
Map<String, Object> requestContent = new HashMap<>();
|
||||||
@ -80,7 +88,9 @@ public class SimulatePipelineRequestParsingTests extends ESTestCase {
|
|||||||
String type = randomAlphaOfLengthBetween(1, 10);
|
String type = randomAlphaOfLengthBetween(1, 10);
|
||||||
String id = randomAlphaOfLengthBetween(1, 10);
|
String id = randomAlphaOfLengthBetween(1, 10);
|
||||||
doc.put(INDEX.getFieldName(), index);
|
doc.put(INDEX.getFieldName(), index);
|
||||||
doc.put(TYPE.getFieldName(), type);
|
if (useExplicitType) {
|
||||||
|
doc.put(TYPE.getFieldName(), type);
|
||||||
|
}
|
||||||
doc.put(ID.getFieldName(), id);
|
doc.put(ID.getFieldName(), id);
|
||||||
String fieldName = randomAlphaOfLengthBetween(1, 10);
|
String fieldName = randomAlphaOfLengthBetween(1, 10);
|
||||||
String fieldValue = randomAlphaOfLengthBetween(1, 10);
|
String fieldValue = randomAlphaOfLengthBetween(1, 10);
|
||||||
@ -88,7 +98,11 @@ public class SimulatePipelineRequestParsingTests extends ESTestCase {
|
|||||||
docs.add(doc);
|
docs.add(doc);
|
||||||
Map<String, Object> expectedDoc = new HashMap<>();
|
Map<String, Object> expectedDoc = new HashMap<>();
|
||||||
expectedDoc.put(INDEX.getFieldName(), index);
|
expectedDoc.put(INDEX.getFieldName(), index);
|
||||||
expectedDoc.put(TYPE.getFieldName(), type);
|
if (useExplicitType) {
|
||||||
|
expectedDoc.put(TYPE.getFieldName(), type);
|
||||||
|
} else {
|
||||||
|
expectedDoc.put(TYPE.getFieldName(), "_doc");
|
||||||
|
}
|
||||||
expectedDoc.put(ID.getFieldName(), id);
|
expectedDoc.put(ID.getFieldName(), id);
|
||||||
expectedDoc.put(Fields.SOURCE, Collections.singletonMap(fieldName, fieldValue));
|
expectedDoc.put(Fields.SOURCE, Collections.singletonMap(fieldName, fieldValue));
|
||||||
expectedDocs.add(expectedDoc);
|
expectedDocs.add(expectedDoc);
|
||||||
@ -111,9 +125,20 @@ public class SimulatePipelineRequestParsingTests extends ESTestCase {
|
|||||||
assertThat(actualRequest.getPipeline().getId(), equalTo(SIMULATED_PIPELINE_ID));
|
assertThat(actualRequest.getPipeline().getId(), equalTo(SIMULATED_PIPELINE_ID));
|
||||||
assertThat(actualRequest.getPipeline().getDescription(), nullValue());
|
assertThat(actualRequest.getPipeline().getDescription(), nullValue());
|
||||||
assertThat(actualRequest.getPipeline().getProcessors().size(), equalTo(1));
|
assertThat(actualRequest.getPipeline().getProcessors().size(), equalTo(1));
|
||||||
|
if (useExplicitType) {
|
||||||
|
assertWarnings("[types removal] specifying _type in pipeline simulation requests is deprecated");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testParseWithProvidedPipeline() throws Exception {
|
public void testParseWithProvidedPipelineNoType() throws Exception {
|
||||||
|
innerTestParseWithProvidedPipeline(false);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void testParseWithProvidedPipelineWithType() throws Exception {
|
||||||
|
innerTestParseWithProvidedPipeline(true);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void innerTestParseWithProvidedPipeline(boolean useExplicitType) throws Exception {
|
||||||
int numDocs = randomIntBetween(1, 10);
|
int numDocs = randomIntBetween(1, 10);
|
||||||
|
|
||||||
Map<String, Object> requestContent = new HashMap<>();
|
Map<String, Object> requestContent = new HashMap<>();
|
||||||
@ -135,6 +160,14 @@ public class SimulatePipelineRequestParsingTests extends ESTestCase {
|
|||||||
);
|
);
|
||||||
doc.put(field.getFieldName(), value);
|
doc.put(field.getFieldName(), value);
|
||||||
expectedDoc.put(field.getFieldName(), value);
|
expectedDoc.put(field.getFieldName(), value);
|
||||||
|
} else if (field == TYPE) {
|
||||||
|
if (useExplicitType) {
|
||||||
|
String value = randomAlphaOfLengthBetween(1, 10);
|
||||||
|
doc.put(field.getFieldName(), value);
|
||||||
|
expectedDoc.put(field.getFieldName(), value);
|
||||||
|
} else {
|
||||||
|
expectedDoc.put(field.getFieldName(), "_doc");
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
if (randomBoolean()) {
|
if (randomBoolean()) {
|
||||||
String value = randomAlphaOfLengthBetween(1, 10);
|
String value = randomAlphaOfLengthBetween(1, 10);
|
||||||
@ -191,7 +224,6 @@ public class SimulatePipelineRequestParsingTests extends ESTestCase {
|
|||||||
Map<String, Object> expectedDocument = expectedDocsIterator.next();
|
Map<String, Object> expectedDocument = expectedDocsIterator.next();
|
||||||
Map<IngestDocument.MetaData, Object> metadataMap = ingestDocument.extractMetadata();
|
Map<IngestDocument.MetaData, Object> metadataMap = ingestDocument.extractMetadata();
|
||||||
assertThat(metadataMap.get(INDEX), equalTo(expectedDocument.get(INDEX.getFieldName())));
|
assertThat(metadataMap.get(INDEX), equalTo(expectedDocument.get(INDEX.getFieldName())));
|
||||||
assertThat(metadataMap.get(TYPE), equalTo(expectedDocument.get(TYPE.getFieldName())));
|
|
||||||
assertThat(metadataMap.get(ID), equalTo(expectedDocument.get(ID.getFieldName())));
|
assertThat(metadataMap.get(ID), equalTo(expectedDocument.get(ID.getFieldName())));
|
||||||
assertThat(metadataMap.get(ROUTING), equalTo(expectedDocument.get(ROUTING.getFieldName())));
|
assertThat(metadataMap.get(ROUTING), equalTo(expectedDocument.get(ROUTING.getFieldName())));
|
||||||
assertThat(metadataMap.get(VERSION), equalTo(expectedDocument.get(VERSION.getFieldName())));
|
assertThat(metadataMap.get(VERSION), equalTo(expectedDocument.get(VERSION.getFieldName())));
|
||||||
@ -202,6 +234,9 @@ public class SimulatePipelineRequestParsingTests extends ESTestCase {
|
|||||||
assertThat(actualRequest.getPipeline().getId(), equalTo(SIMULATED_PIPELINE_ID));
|
assertThat(actualRequest.getPipeline().getId(), equalTo(SIMULATED_PIPELINE_ID));
|
||||||
assertThat(actualRequest.getPipeline().getDescription(), nullValue());
|
assertThat(actualRequest.getPipeline().getDescription(), nullValue());
|
||||||
assertThat(actualRequest.getPipeline().getProcessors().size(), equalTo(numProcessors));
|
assertThat(actualRequest.getPipeline().getProcessors().size(), equalTo(numProcessors));
|
||||||
|
if (useExplicitType) {
|
||||||
|
assertWarnings("[types removal] specifying _type in pipeline simulation requests is deprecated");
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void testNullPipelineId() {
|
public void testNullPipelineId() {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user