diff options
author | Jon Marius Venstad <venstad@gmail.com> | 2021-02-04 21:01:06 +0100 |
---|---|---|
committer | Jon Marius Venstad <venstad@gmail.com> | 2021-02-04 21:01:06 +0100 |
commit | 0015af891e6f1c18c19149dbadacb1ba7703817c (patch) | |
tree | 8d6611adcd4deaf759a8f4cb401e3130faf496b4 /vespaclient-container-plugin | |
parent | 8474a1034ad5470b4b4d134a8daf279e4c7b6bfe (diff) |
Include document count in responses
Diffstat (limited to 'vespaclient-container-plugin')
2 files changed, 13 insertions, 1 deletions
diff --git a/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java b/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java index 7c80db2ddc3..7b2578b4094 100644 --- a/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java +++ b/vespaclient-container-plugin/src/main/java/com/yahoo/document/restapi/resource/DocumentV1ApiHandler.java @@ -645,6 +645,10 @@ public class DocumentV1ApiHandler extends AbstractRequestHandler { json.writeStringField("message", message); } + synchronized void writeDocumentCount(long count) throws IOException { + json.writeNumberField("documentCount", count); + } + synchronized void writeDocId(DocumentId id) throws IOException { json.writeStringField("id", id.toString()); } @@ -1083,11 +1087,17 @@ public class DocumentV1ApiHandler extends AbstractRequestHandler { if (getProgress() != null && ! getProgress().isFinished()) response.writeContinuation(getProgress().serializeToString()); + if (getVisitorStatistics() != null) + response.writeDocumentCount(getVisitorStatistics().getDocumentsReturned()); + response.respond(Response.Status.OK); break; } default: response.writeMessage(error.get() != null ? error.get() : message != null ? message : "Visiting failed"); + if (getVisitorStatistics() != null) + response.writeDocumentCount(getVisitorStatistics().getDocumentsReturned()); + response.respond(Response.Status.INTERNAL_SERVER_ERROR); } visitDispatcher.execute(() -> { diff --git a/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/resource/DocumentV1ApiTest.java b/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/resource/DocumentV1ApiTest.java index cee02618cd7..c297c09f906 100644 --- a/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/resource/DocumentV1ApiTest.java +++ b/vespaclient-container-plugin/src/test/java/com/yahoo/document/restapi/resource/DocumentV1ApiTest.java @@ -211,6 +211,7 @@ public class DocumentV1ApiTest { parameters.getLocalDataHandler().onMessage(new PutDocumentMessage(new DocumentPut(doc3)), tokens.get(2)); VisitorStatistics statistics = new VisitorStatistics(); statistics.setBucketsVisited(1); + statistics.setDocumentsReturned(3); parameters.getControlHandler().onVisitorStatistics(statistics); parameters.getControlHandler().onDone(VisitorControlHandler.CompletionCode.TIMEOUT, "timeout is OK"); }); @@ -235,7 +236,8 @@ public class DocumentV1ApiTest { " \"id\": \"id:space:music:g=a:three\"," + " \"fields\": {}" + " }" + - " ]" + + " ]," + + " \"documentCount\": 3" + "}", response.readAll()); assertEquals(200, response.getStatus()); |