This is an automated email from the ASF dual-hosted git repository.

btellier pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/james-project.git

commit f98fb0b26391e3a9b3229546c521e6dbefeb28db
Author: Benoit Tellier <[email protected]>
AuthorDate: Fri May 24 11:36:02 2019 +0700

    MAILBOX-351 WebAdmin documentation for fixing a reIndexing
---
 .../james/webadmin/routes/ReindexingRoutes.java    |  6 +--
 .../service/PreviousReIndexingService.java         |  8 +--
 src/site/markdown/server/manage-webadmin.md        | 60 ++++++++++++++++++++--
 3 files changed, 64 insertions(+), 10 deletions(-)

diff --git 
a/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/routes/ReindexingRoutes.java
 
b/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/routes/ReindexingRoutes.java
index 083579e..c2f09d8 100644
--- 
a/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/routes/ReindexingRoutes.java
+++ 
b/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/routes/ReindexingRoutes.java
@@ -141,8 +141,8 @@ public class ReindexingRoutes implements Routes {
             return wrap(request, response, () -> 
reIndexer.reIndex(extractUser(request)));
         }
         if (indexingCorrection) {
-                IndexingDetailInformation indexingDetailInformation = 
retrieveIndexingExecutionDetails(request);
-                return wrap(request, response, () -> 
reIndexer.reIndex(indexingDetailInformation.failures()));
+            IndexingDetailInformation indexingDetailInformation = 
retrieveIndexingExecutionDetails(request);
+            return wrap(request, response, () -> 
reIndexer.reIndex(indexingDetailInformation.failures()));
         }
         return wrap(request, response, reIndexer::reIndex);
     }
@@ -151,7 +151,7 @@ public class ReindexingRoutes implements Routes {
         TaskId taskId = getTaskId(request);
         try {
             return 
previousReIndexingService.retrieveIndexingExecutionDetails(taskId);
-        } catch (PreviousReIndexingService.NotAnIndexingRetryiableTask | 
PreviousReIndexingService.TaskNotYetFinishedException e) {
+        } catch (PreviousReIndexingService.NotAnIndexingRetriableTask | 
PreviousReIndexingService.TaskNotYetFinishedException e) {
             throw ErrorResponder.builder()
                 .statusCode(HttpStatus.BAD_REQUEST_400)
                 .type(ErrorResponder.ErrorType.INVALID_ARGUMENT)
diff --git 
a/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/PreviousReIndexingService.java
 
b/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/PreviousReIndexingService.java
index 2df5879..9c00dea 100644
--- 
a/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/PreviousReIndexingService.java
+++ 
b/server/protocols/webadmin/webadmin-mailbox/src/main/java/org/apache/james/webadmin/service/PreviousReIndexingService.java
@@ -34,8 +34,8 @@ public class PreviousReIndexingService {
         }
     }
 
-    public static class NotAnIndexingRetryiableTask extends RuntimeException {
-        NotAnIndexingRetryiableTask(String type) {
+    public static class NotAnIndexingRetriableTask extends RuntimeException {
+        NotAnIndexingRetriableTask(String type) {
             super("'" + type + "' is not a valid type of task for retrying a 
failed indexing");
         }
     }
@@ -47,7 +47,7 @@ public class PreviousReIndexingService {
         this.taskManager = taskManager;
     }
 
-    public IndexingDetailInformation retrieveIndexingExecutionDetails(TaskId 
taskId) throws NotAnIndexingRetryiableTask, TaskNotFoundException, 
TaskNotYetFinishedException {
+    public IndexingDetailInformation retrieveIndexingExecutionDetails(TaskId 
taskId) throws NotAnIndexingRetriableTask, TaskNotFoundException, 
TaskNotYetFinishedException {
         TaskExecutionDetails executionDetails = 
taskManager.getExecutionDetails(taskId);
         if (!executionDetails.getStatus().isFinished()) {
             throw new 
TaskNotYetFinishedException(executionDetails.getStatus());
@@ -55,6 +55,6 @@ public class PreviousReIndexingService {
         return executionDetails.getAdditionalInformation()
             .filter(additionalInformation -> additionalInformation instanceof 
IndexingDetailInformation)
             .map(additionalInformation -> (IndexingDetailInformation) 
additionalInformation)
-            .orElseThrow(() -> new 
NotAnIndexingRetryiableTask(executionDetails.getType()));
+            .orElseThrow(() -> new 
NotAnIndexingRetriableTask(executionDetails.getType()));
     }
 }
diff --git a/src/site/markdown/server/manage-webadmin.md 
b/src/site/markdown/server/manage-webadmin.md
index efe53b7..ea99c41 100644
--- a/src/site/markdown/server/manage-webadmin.md
+++ b/src/site/markdown/server/manage-webadmin.md
@@ -2392,7 +2392,11 @@ The scheduled task will have the following type 
`FullReIndexing` and the followi
 ```
 {
   "successfullyReprocessMailCount":18,
-  "failedReprocessedMailCount": 1
+  "failedReprocessedMailCount": 3,
+  "failures": {
+    "mbx1": [{"uid": 35}, {"uid": 45}],
+    "mbx2": [{"uid": 38}]
+  }
 }
 ```
 
@@ -2436,7 +2440,11 @@ The scheduled task will have the following type 
`userReIndexing` and the followi
 {
   "user":"[email protected]",
   "successfullyReprocessMailCount":18,
-  "failedReprocessedMailCount": 1
+  "failedReprocessedMailCount": 3,
+  "failures": {
+    "mbx1": [{"uid": 35}, {"uid": 45}],
+    "mbx2": [{"uid": 38}]
+  }
 }
 ```
 
@@ -2482,7 +2490,11 @@ The scheduled task will have the following type 
`mailboxReIndexing` and the foll
 {
   "mailboxId":"{mailboxId}",
   "successfullyReprocessMailCount":18,
-  "failedReprocessedMailCount": 1
+  "failedReprocessedMailCount": 3,
+  "failures": {
+    "mbx1": [{"uid": 35}, {"uid": 45}],
+    "mbx2": [{"uid": 38}]
+  }
 }
 ```
 
@@ -2493,6 +2505,48 @@ Warning: Canceling this task should be considered unsafe 
as it will leave the cu
 Warning: While we have been trying to reduce the inconsistency window to a 
maximum (by keeping track of ongoing events),
 concurrent changes done during the reIndexing might be ignored.
 
+### Fixing previously failed ReIndexing
+
+Given `bbdb69c9-082a-44b0-a85a-6e33e74287a5` being a taskId generated for a 
reIndexing tasks
+
+```
+curl -XPOST 
http://ip:port/mailboxes?task=reIndex&reIndexFailedMessagesOf=bbdb69c9-082a-44b0-a85a-6e33e74287a5
+```
+
+Will schedule a task for reIndexing all the mails that this task failed to 
reIndex.
+
+The response to that request will be the scheduled `taskId` :
+
+```
+{"taskId":"5641376-02ed-47bd-bcc7-76ff6262d92a"}
+```
+
+Positioned headers:
+
+ - Location header indicates the location of the resource associated with the 
scheduled task. Example:
+
+```
+Location: /tasks/3294a976-ce63-491e-bd52-1b6f465ed7a2
+```
+
+Response codes:
+
+ - 201: Success. Corresponding task id is returned.
+ - 400: Error in the request. Details can be found in the reported error.
+
+The scheduled task will have the following type `ReIndexPreviousFailures` and 
the following `additionalInformation`:
+
+```
+{
+  "successfullyReprocessMailCount":18,
+  "failedReprocessedMailCount": 3,
+  "failures": {
+    "mbx1": [{"uid": 35}, {"uid": 45}],
+    "mbx2": [{"uid": 38}]
+  }
+}
+```
+
 ### ReIndexing a single mail
 
 ```


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to