|
@@ -239,16 +239,16 @@ public class TransportShardBulkAction extends TransportWriteAction<BulkShardRequ
|
|
|
if (updateResult.writeResult != null) {
|
|
|
location = locationToSync(location, updateResult.writeResult.getLocation());
|
|
|
}
|
|
|
- switch (updateResult.result.operation()) {
|
|
|
- case CREATE:
|
|
|
- case INDEX:
|
|
|
+ switch (updateResult.result.getResponseResult()) {
|
|
|
+ case CREATED:
|
|
|
+ case UPDATED:
|
|
|
@SuppressWarnings("unchecked")
|
|
|
WriteResult<IndexResponse> result = updateResult.writeResult;
|
|
|
IndexRequest indexRequest = updateResult.request();
|
|
|
BytesReference indexSourceAsBytes = indexRequest.source();
|
|
|
// add the response
|
|
|
IndexResponse indexResponse = result.getResponse();
|
|
|
- UpdateResponse updateResponse = new UpdateResponse(indexResponse.getShardInfo(), indexResponse.getShardId(), indexResponse.getType(), indexResponse.getId(), indexResponse.getVersion(), indexResponse.getOperation());
|
|
|
+ UpdateResponse updateResponse = new UpdateResponse(indexResponse.getShardInfo(), indexResponse.getShardId(), indexResponse.getType(), indexResponse.getId(), indexResponse.getVersion(), indexResponse.getResult());
|
|
|
if (updateRequest.fields() != null && updateRequest.fields().length > 0) {
|
|
|
Tuple<XContentType, Map<String, Object>> sourceAndContent = XContentHelper.convertToMap(indexSourceAsBytes, true);
|
|
|
updateResponse.setGetResult(updateHelper.extractGetResult(updateRequest, request.index(), indexResponse.getVersion(), sourceAndContent.v2(), sourceAndContent.v1(), indexSourceAsBytes));
|
|
@@ -256,12 +256,12 @@ public class TransportShardBulkAction extends TransportWriteAction<BulkShardRequ
|
|
|
item = request.items()[requestIndex] = new BulkItemRequest(request.items()[requestIndex].id(), indexRequest);
|
|
|
setResponse(item, new BulkItemResponse(item.id(), OP_TYPE_UPDATE, updateResponse));
|
|
|
break;
|
|
|
- case DELETE:
|
|
|
+ case DELETED:
|
|
|
@SuppressWarnings("unchecked")
|
|
|
WriteResult<DeleteResponse> writeResult = updateResult.writeResult;
|
|
|
DeleteResponse response = writeResult.getResponse();
|
|
|
DeleteRequest deleteRequest = updateResult.request();
|
|
|
- updateResponse = new UpdateResponse(response.getShardInfo(), response.getShardId(), response.getType(), response.getId(), response.getVersion(), response.getOperation());
|
|
|
+ updateResponse = new UpdateResponse(response.getShardInfo(), response.getShardId(), response.getType(), response.getId(), response.getVersion(), response.getResult());
|
|
|
updateResponse.setGetResult(updateHelper.extractGetResult(updateRequest, request.index(), response.getVersion(), updateResult.result.updatedSourceAsMap(), updateResult.result.updateSourceContentType(), null));
|
|
|
// Replace the update request to the translated delete request to execute on the replica.
|
|
|
item = request.items()[requestIndex] = new BulkItemRequest(request.items()[requestIndex].id(), deleteRequest);
|
|
@@ -271,6 +271,8 @@ public class TransportShardBulkAction extends TransportWriteAction<BulkShardRequ
|
|
|
setResponse(item, new BulkItemResponse(item.id(), OP_TYPE_UPDATE, updateResult.noopResult));
|
|
|
item.setIgnoreOnReplica(); // no need to go to the replica
|
|
|
break;
|
|
|
+ default:
|
|
|
+ throw new IllegalStateException("Illegal operation " + updateResult.result.getResponseResult());
|
|
|
}
|
|
|
// NOTE: Breaking out of the retry_on_conflict loop!
|
|
|
break;
|
|
@@ -299,20 +301,22 @@ public class TransportShardBulkAction extends TransportWriteAction<BulkShardRequ
|
|
|
} else if (updateResult.result == null) {
|
|
|
setResponse(item, new BulkItemResponse(item.id(), OP_TYPE_UPDATE, new BulkItemResponse.Failure(request.index(), updateRequest.type(), updateRequest.id(), e)));
|
|
|
} else {
|
|
|
- switch (updateResult.result.operation()) {
|
|
|
- case CREATE:
|
|
|
- case INDEX:
|
|
|
+ switch (updateResult.result.getResponseResult()) {
|
|
|
+ case CREATED:
|
|
|
+ case UPDATED:
|
|
|
IndexRequest indexRequest = updateResult.request();
|
|
|
logFailure(e, "index", request.shardId(), indexRequest);
|
|
|
setResponse(item, new BulkItemResponse(item.id(), OP_TYPE_UPDATE,
|
|
|
new BulkItemResponse.Failure(request.index(), indexRequest.type(), indexRequest.id(), e)));
|
|
|
break;
|
|
|
- case DELETE:
|
|
|
+ case DELETED:
|
|
|
DeleteRequest deleteRequest = updateResult.request();
|
|
|
logFailure(e, "delete", request.shardId(), deleteRequest);
|
|
|
setResponse(item, new BulkItemResponse(item.id(), OP_TYPE_DELETE,
|
|
|
new BulkItemResponse.Failure(request.index(), deleteRequest.type(), deleteRequest.id(), e)));
|
|
|
break;
|
|
|
+ default:
|
|
|
+ throw new IllegalStateException("Illegal operation " + updateResult.result.getResponseResult());
|
|
|
}
|
|
|
}
|
|
|
// NOTE: Breaking out of the retry_on_conflict loop!
|
|
@@ -399,9 +403,9 @@ public class TransportShardBulkAction extends TransportWriteAction<BulkShardRequ
|
|
|
|
|
|
private UpdateResult shardUpdateOperation(IndexMetaData metaData, BulkShardRequest bulkShardRequest, UpdateRequest updateRequest, IndexShard indexShard) {
|
|
|
UpdateHelper.Result translate = updateHelper.prepare(updateRequest, indexShard);
|
|
|
- switch (translate.operation()) {
|
|
|
- case CREATE:
|
|
|
- case INDEX:
|
|
|
+ switch (translate.getResponseResult()) {
|
|
|
+ case CREATED:
|
|
|
+ case UPDATED:
|
|
|
IndexRequest indexRequest = translate.action();
|
|
|
try {
|
|
|
WriteResult result = shardIndexOperation(bulkShardRequest, indexRequest, metaData, indexShard, false);
|
|
@@ -414,7 +418,7 @@ public class TransportShardBulkAction extends TransportWriteAction<BulkShardRequ
|
|
|
}
|
|
|
return new UpdateResult(translate, indexRequest, retry, cause, null);
|
|
|
}
|
|
|
- case DELETE:
|
|
|
+ case DELETED:
|
|
|
DeleteRequest deleteRequest = translate.action();
|
|
|
try {
|
|
|
WriteResult<DeleteResponse> result = TransportDeleteAction.executeDeleteRequestOnPrimary(deleteRequest, indexShard);
|
|
@@ -432,7 +436,7 @@ public class TransportShardBulkAction extends TransportWriteAction<BulkShardRequ
|
|
|
indexShard.noopUpdate(updateRequest.type());
|
|
|
return new UpdateResult(translate, updateResponse);
|
|
|
default:
|
|
|
- throw new IllegalStateException("Illegal update operation " + translate.operation());
|
|
|
+ throw new IllegalStateException("Illegal update operation " + translate.getResponseResult());
|
|
|
}
|
|
|
}
|
|
|
|