Fix failures in BulkProcessorIT#testGlobalParametersAndBulkProcessor. (#38129)
This PR fixes a couple test issues: * It narrows an assertWarnings call that was too broad, and wasn't always applicable with certain random sequences. * Previously, we could send a typeless bulk request containing '_type: 'null'. Now we omit the _type key altogether for typeless requests.
This commit is contained in:
parent
c9701be1e8
commit
440d1eda8a
|
@ -34,6 +34,7 @@ import org.elasticsearch.common.bytes.BytesArray;
|
|||
import org.elasticsearch.common.unit.ByteSizeUnit;
|
||||
import org.elasticsearch.common.unit.ByteSizeValue;
|
||||
import org.elasticsearch.common.unit.TimeValue;
|
||||
import org.elasticsearch.common.xcontent.XContentBuilder;
|
||||
import org.elasticsearch.common.xcontent.XContentType;
|
||||
import org.elasticsearch.index.mapper.MapperService;
|
||||
import org.elasticsearch.rest.action.document.RestBulkAction;
|
||||
|
@ -427,7 +428,6 @@ public class BulkProcessorIT extends ESRestHighLevelClientTestCase {
|
|||
assertThat(hits, containsInAnyOrder(expectedIds(numDocs)));
|
||||
}
|
||||
}
|
||||
assertWarnings(RestBulkAction.TYPES_DEPRECATION_MESSAGE);
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
|
@ -438,7 +438,7 @@ public class BulkProcessorIT extends ESRestHighLevelClientTestCase {
|
|||
.<Matcher<SearchHit>>toArray(Matcher[]::new);
|
||||
}
|
||||
|
||||
private static MultiGetRequest indexDocs(BulkProcessor processor, int numDocs, String localIndex, String localType,
|
||||
private MultiGetRequest indexDocs(BulkProcessor processor, int numDocs, String localIndex, String localType,
|
||||
String globalIndex, String globalType, String globalPipeline) throws Exception {
|
||||
MultiGetRequest multiGetRequest = new MultiGetRequest();
|
||||
for (int i = 1; i <= numDocs; i++) {
|
||||
|
@ -448,6 +448,11 @@ public class BulkProcessorIT extends ESRestHighLevelClientTestCase {
|
|||
} else {
|
||||
BytesArray data = bytesBulkRequest(localIndex, localType, i);
|
||||
processor.add(data, globalIndex, globalType, globalPipeline, null, XContentType.JSON);
|
||||
|
||||
if (localType != null) {
|
||||
// If the payload contains types, parsing it into a bulk request results in a warning.
|
||||
assertWarnings(RestBulkAction.TYPES_DEPRECATION_MESSAGE);
|
||||
}
|
||||
}
|
||||
multiGetRequest.add(localIndex, Integer.toString(i));
|
||||
}
|
||||
|
@ -455,26 +460,29 @@ public class BulkProcessorIT extends ESRestHighLevelClientTestCase {
|
|||
}
|
||||
|
||||
private static BytesArray bytesBulkRequest(String localIndex, String localType, int id) throws IOException {
|
||||
String action = Strings.toString(jsonBuilder()
|
||||
.startObject()
|
||||
.startObject("index")
|
||||
.field("_index", localIndex)
|
||||
.field("_type", localType)
|
||||
.field("_id", Integer.toString(id))
|
||||
.endObject()
|
||||
.endObject()
|
||||
);
|
||||
String source = Strings.toString(jsonBuilder()
|
||||
XContentBuilder action = jsonBuilder().startObject().startObject("index");
|
||||
|
||||
if (localIndex != null) {
|
||||
action.field("_index", localIndex);
|
||||
}
|
||||
|
||||
if (localType != null) {
|
||||
action.field("_type", localType);
|
||||
}
|
||||
|
||||
action.field("_id", Integer.toString(id));
|
||||
action.endObject().endObject();
|
||||
|
||||
XContentBuilder source = jsonBuilder()
|
||||
.startObject()
|
||||
.field("field", randomRealisticUnicodeOfLengthBetween(1, 30))
|
||||
.endObject()
|
||||
);
|
||||
.endObject();
|
||||
|
||||
String request = action + "\n" + source + "\n";
|
||||
String request = Strings.toString(action) + "\n" + Strings.toString(source) + "\n";
|
||||
return new BytesArray(request);
|
||||
}
|
||||
|
||||
private static MultiGetRequest indexDocs(BulkProcessor processor, int numDocs) throws Exception {
|
||||
private MultiGetRequest indexDocs(BulkProcessor processor, int numDocs) throws Exception {
|
||||
return indexDocs(processor, numDocs, "test", null, null, null, null);
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue