This is an automated email from the ASF dual-hosted git repository.
machristie pushed a commit to branch group-based-auth
in repository https://gitbox.apache.org/repos/asf/airavata.git
The following commit(s) were added to refs/heads/group-based-auth by this push:
new 10f1c7f AIRAVATA-2825 Assign statusId if missing in
updateProcessStatus
10f1c7f is described below
commit 10f1c7f7bc82cafca738973e8f9587a7403af9c0
Author: Marcus Christie <[email protected]>
AuthorDate: Wed Jun 13 16:19:49 2018 -0400
AIRAVATA-2825 Assign statusId if missing in updateProcessStatus
---
.../expcatalog/ProcessStatusRepository.java | 11 +++++++++++
.../expcatalog/ProcessStatusRepositoryTest.java | 20 ++++++++++++++++++++
2 files changed, 31 insertions(+)
diff --git
a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/expcatalog/ProcessStatusRepository.java
b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/expcatalog/ProcessStatusRepository.java
index 6887a99..b1cc7bd 100644
---
a/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/expcatalog/ProcessStatusRepository.java
+++
b/modules/registry-refactoring/src/main/java/org/apache/airavata/registry/core/repositories/expcatalog/ProcessStatusRepository.java
@@ -41,6 +41,17 @@ public class ProcessStatusRepository extends
ExpCatAbstractRepository<ProcessSta
public ProcessStatusRepository() { super(ProcessStatus.class,
ProcessStatusEntity.class); }
protected String saveProcessStatus(ProcessStatus processStatus, String
processId) throws RegistryException {
+ if (processStatus.getStatusId() == null) {
+
+ ProcessStatus currentProcessStatus = getProcessStatus(processId);
+ if (currentProcessStatus == null ||
currentProcessStatus.getState() != currentProcessStatus.getState()) {
+
processStatus.setStatusId(ExpCatalogUtils.getID("PROCESS_STATE"));
+ } else {
+ // Update the existing current status if processStatus has no
status id and the same state
+ processStatus.setStatusId(currentProcessStatus.getStatusId());
+ }
+ }
+
Mapper mapper = ObjectMapperSingleton.getInstance();
ProcessStatusEntity processStatusEntity = mapper.map(processStatus,
ProcessStatusEntity.class);
diff --git
a/modules/registry-refactoring/src/test/java/org/apache/airavata/registry/core/repositories/expcatalog/ProcessStatusRepositoryTest.java
b/modules/registry-refactoring/src/test/java/org/apache/airavata/registry/core/repositories/expcatalog/ProcessStatusRepositoryTest.java
index 0b51f8a..629b281 100644
---
a/modules/registry-refactoring/src/test/java/org/apache/airavata/registry/core/repositories/expcatalog/ProcessStatusRepositoryTest.java
+++
b/modules/registry-refactoring/src/test/java/org/apache/airavata/registry/core/repositories/expcatalog/ProcessStatusRepositoryTest.java
@@ -36,6 +36,7 @@ import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertTrue;
public class ProcessStatusRepositoryTest {
@@ -108,6 +109,25 @@ public class ProcessStatusRepositoryTest {
ProcessStatus retrievedStatus =
processStatusRepository.getProcessStatus(processId);
assertEquals(ProcessState.EXECUTING, retrievedStatus.getState());
+ ProcessStatus updatedStatus = new
ProcessStatus(ProcessState.MONITORING);
+ // Verify that ProcessStatus without id can be added with
updateProcessStatus
+ String updatedStatusId =
processStatusRepository.updateProcessStatus(updatedStatus, processId);
+ retrievedStatus = processStatusRepository.getProcessStatus(processId);
+ assertEquals(ProcessState.MONITORING, retrievedStatus.getState());
+ assertEquals(updatedStatusId, retrievedStatus.getStatusId());
+ assertNull(retrievedStatus.getReason());
+
+ // Verify that updating status with same ProcessState as most recent
ProcessStatus will update the most recent ProcessStatus
+ ProcessStatus updatedStatusWithReason = new
ProcessStatus(ProcessState.MONITORING);
+ updatedStatusWithReason.setReason("test-reason");
+ String updateStatusWithReasonId =
processStatusRepository.updateProcessStatus(updatedStatusWithReason, processId);
+ retrievedStatus = processStatusRepository.getProcessStatus(processId);
+ assertEquals(ProcessState.MONITORING, retrievedStatus.getState());
+ assertEquals(updateStatusWithReasonId, retrievedStatus.getStatusId());
+ assertEquals(updatedStatusId, updateStatusWithReasonId);
+ assertEquals("test-reason", retrievedStatus.getReason());
+
+
experimentRepository.removeExperiment(experimentId);
processRepository.removeProcess(processId);
gatewayRepository.removeGateway(gatewayId);
--
To stop receiving notification emails like this one, please contact
[email protected].