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 e87a6fef7ec897f42c7680597da3f699a46fdb6a Author: Raphael Ouazana <raphael.ouaz...@linagora.com> AuthorDate: Thu Sep 5 15:58:06 2019 +0200 JAMES-2873 expose node informations in webadmin execution details --- .../apache/james/webadmin/dto/ExecutionDetailsDto.java | 17 ++++++++++++++++- .../apache/james/webadmin/routes/TasksRoutesTest.java | 12 +++++++++--- .../CassandraTaskExecutionDetailsProjectionDAO.scala | 2 +- .../org/apache/james/task/TaskExecutionDetails.scala | 2 +- 4 files changed, 27 insertions(+), 6 deletions(-) diff --git a/server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/dto/ExecutionDetailsDto.java b/server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/dto/ExecutionDetailsDto.java index 243083c..31216cb 100644 --- a/server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/dto/ExecutionDetailsDto.java +++ b/server/protocols/webadmin/webadmin-core/src/main/java/org/apache/james/webadmin/dto/ExecutionDetailsDto.java @@ -25,6 +25,7 @@ import java.util.Optional; import java.util.UUID; import org.apache.james.task.TaskExecutionDetails; +import org.apache.james.task.eventsourcing.Hostname; import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonInclude; @@ -59,6 +60,20 @@ public class ExecutionDetailsDto { return executionDetails.getStatus().getValue(); } + public String getSubmittedFrom() { + return executionDetails.getSubmittedNode().asString(); + } + + public Optional<String> getExecutedOn() { + return executionDetails.getRanNode() + .map(Hostname::asString); + } + + public Optional<String> getCancelledFrom() { + return executionDetails.getCancelRequestedNode() + .map(Hostname::asString); + } + public Optional<TaskExecutionDetails.AdditionalInformation> getAdditionalInformation() { return executionDetails.getAdditionalInformation(); } @@ -66,7 +81,7 @@ public class ExecutionDetailsDto { @JsonInclude(JsonInclude.Include.NON_ABSENT) @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd'T'HH:mm:ss.SSSZ") public ZonedDateTime getSubmitDate() { - return executionDetails.getSubmitDate(); + return executionDetails.getSubmittedDate(); } @JsonInclude(JsonInclude.Include.NON_ABSENT) diff --git a/server/protocols/webadmin/webadmin-core/src/test/java/org/apache/james/webadmin/routes/TasksRoutesTest.java b/server/protocols/webadmin/webadmin-core/src/test/java/org/apache/james/webadmin/routes/TasksRoutesTest.java index a99feda..f6122e2 100644 --- a/server/protocols/webadmin/webadmin-core/src/test/java/org/apache/james/webadmin/routes/TasksRoutesTest.java +++ b/server/protocols/webadmin/webadmin-core/src/test/java/org/apache/james/webadmin/routes/TasksRoutesTest.java @@ -27,6 +27,7 @@ import static org.hamcrest.Matchers.hasSize; import static org.hamcrest.Matchers.is; import static org.hamcrest.Matchers.isOneOf; import static org.hamcrest.Matchers.not; +import static org.hamcrest.Matchers.nullValue; import java.util.UUID; import java.util.concurrent.CountDownLatch; @@ -48,13 +49,14 @@ import io.restassured.RestAssured; class TasksRoutesTest { + public static final String HOSTNAME = "foo"; private MemoryTaskManager taskManager; private WebAdminServer webAdminServer; private CountDownLatch waitingForResultLatch; @BeforeEach void setUp() { - taskManager = new MemoryTaskManager(new Hostname("foo")); + taskManager = new MemoryTaskManager(new Hostname(HOSTNAME)); webAdminServer = WebAdminUtils.createWebAdminServer(new TasksRoutes(taskManager, new JsonTransformer())) .start(); @@ -99,7 +101,10 @@ class TasksRoutesTest { .body("", hasSize(1)) .body("[0].status", is(TaskManager.Status.IN_PROGRESS.getValue())) .body("[0].taskId", is(taskId.asString())) - .body("[0].class", is(not(empty()))); + .body("[0].class", is(not(empty()))) + .body("[0].submittedFrom", is(HOSTNAME)) + .body("[0].executedOn", is(HOSTNAME)) + .body("[0].cancelledFrom", nullValue()); } private void await(CountDownLatch latch) { @@ -264,7 +269,8 @@ class TasksRoutesTest { .get("/" + taskId.getValue() + "/await") .then() .statusCode(HttpStatus.OK_200) - .body("status", is("canceled")); + .body("status", is("canceled")) + .body("cancelledFrom", is(HOSTNAME)); } @Test diff --git a/server/task-distributed/src/main/scala/org/apache/james/task/eventsourcing/cassandra/CassandraTaskExecutionDetailsProjectionDAO.scala b/server/task-distributed/src/main/scala/org/apache/james/task/eventsourcing/cassandra/CassandraTaskExecutionDetailsProjectionDAO.scala index f598aa5..fdcf2ac 100644 --- a/server/task-distributed/src/main/scala/org/apache/james/task/eventsourcing/cassandra/CassandraTaskExecutionDetailsProjectionDAO.scala +++ b/server/task-distributed/src/main/scala/org/apache/james/task/eventsourcing/cassandra/CassandraTaskExecutionDetailsProjectionDAO.scala @@ -60,7 +60,7 @@ class CassandraTaskExecutionDetailsProjectionDAO(session: Session, typesProvider .setUUID(TASK_ID, details.getTaskId.getValue) .setString(TYPE, details.getType) .setString(STATUS, details.getStatus.getValue) - .setUDTValue(SUBMITTED_DATE, CassandraZonedDateTimeModule.toUDT(dateType, details.getSubmitDate)) + .setUDTValue(SUBMITTED_DATE, CassandraZonedDateTimeModule.toUDT(dateType, details.getSubmittedDate)) .setString(SUBMITTED_NODE, details.getSubmittedNode.asString) .setUDTValue(STARTED_DATE, CassandraZonedDateTimeModule.toUDT(dateType, details.getStartedDate).orElse(null)) .setString(RAN_NODE, details.getRanNode.map[String](_.asString).orElse(null)) diff --git a/server/task/src/main/scala/org/apache/james/task/TaskExecutionDetails.scala b/server/task/src/main/scala/org/apache/james/task/TaskExecutionDetails.scala index d08d879..13cf7d0 100644 --- a/server/task/src/main/scala/org/apache/james/task/TaskExecutionDetails.scala +++ b/server/task/src/main/scala/org/apache/james/task/TaskExecutionDetails.scala @@ -54,7 +54,7 @@ class TaskExecutionDetails(val taskId: TaskId, def getAdditionalInformation: Optional[TaskExecutionDetails.AdditionalInformation] = additionalInformation() - def getSubmitDate: ZonedDateTime = submittedDate + def getSubmittedDate: ZonedDateTime = submittedDate def getSubmittedNode: Hostname = submittedNode --------------------------------------------------------------------- To unsubscribe, e-mail: server-dev-unsubscr...@james.apache.org For additional commands, e-mail: server-dev-h...@james.apache.org