Pārlūkot izejas kodu

Expose delete by query shard failures follow-up

- Removed if conditions on index name and shard_id
- Added REST test
javanna 11 gadi atpakaļ
vecāks
revīzija
e967400522

+ 21 - 0
rest-api-spec/test/delete_by_query/10_basic.yaml

@@ -40,3 +40,24 @@
         index: test_1
 
   - match:  { count:     2  }
+
+---
+"Delete by query failures":
+  - do:
+      index:
+          index:  test_1
+          type:   test
+          id:     1
+          body:   { foo: bar }
+
+  - do:
+      catch: request
+      delete_by_query:
+        index:  test_1
+        body:
+          query:
+            does_not_exist:
+              foo: bar
+
+  - length: { _indices.test_1._shards.failures: 5 }
+

+ 2 - 6
src/main/java/org/elasticsearch/rest/action/deletebyquery/RestDeleteByQueryAction.java

@@ -116,12 +116,8 @@ public class RestDeleteByQueryAction extends BaseRestHandler {
                             builder.startArray(Fields.FAILURES);
                             for (ShardOperationFailedException shardFailure : failures) {
                                 builder.startObject();
-                                if (shardFailure.index() != null) {
-                                    builder.field(Fields.INDEX, shardFailure.index());
-                                }
-                                if (shardFailure.shardId() != -1) {
-                                    builder.field(Fields.SHARD, shardFailure.shardId());
-                                }
+                                builder.field(Fields.INDEX, shardFailure.index());
+                                builder.field(Fields.SHARD, shardFailure.shardId());
                                 builder.field(Fields.REASON, shardFailure.reason());
                                 builder.endObject();
                             }