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

dimuthuupe pushed a commit to branch staging
in repository https://gitbox.apache.org/repos/asf/airavata.git


The following commit(s) were added to refs/heads/staging by this push:
     new 9b5e3eb  Getting all experiment statuses instead of last one
9b5e3eb is described below

commit 9b5e3eb6bc0f39c9cfab5a642fba295fcaa5fbb6
Author: Dimuthu Wannipurage <[email protected]>
AuthorDate: Sat Mar 30 02:19:49 2019 -0400

    Getting all experiment statuses instead of last one
---
 .../experiment/catalog/resources/ExperimentResource.java    | 13 +++++++++++++
 .../experiment/catalog/utils/ThriftDataModelConversion.java | 10 +++++-----
 2 files changed, 18 insertions(+), 5 deletions(-)

diff --git 
a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ExperimentResource.java
 
b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ExperimentResource.java
index ad8066d..d39d7b9 100644
--- 
a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ExperimentResource.java
+++ 
b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ExperimentResource.java
@@ -34,6 +34,7 @@ import javax.persistence.EntityManager;
 import javax.persistence.Query;
 import java.sql.Timestamp;
 import java.util.ArrayList;
+import java.util.Comparator;
 import java.util.List;
 
 public class ExperimentResource extends AbstractExpCatResource {
@@ -569,6 +570,18 @@ public class ExperimentResource extends 
AbstractExpCatResource {
             ExperimentStatusResource statusResource = 
(ExperimentStatusResource) resource;
             experimentStatusResources.add(statusResource);
         }
+        
experimentStatusResources.sort(Comparator.comparing(ExperimentStatusResource::getTimeOfStateChange).reversed());
+        for (int i = 0; i < experimentStatusResources.size(); i++) {
+
+            ExperimentStatusResource thisState = 
experimentStatusResources.get(i);
+            if  
(thisState.getState().equals(ExperimentState.COMPLETED.toString()) ||
+                    
thisState.getState().equals(ExperimentState.FAILED.toString()) ||
+                    
thisState.getState().equals(ExperimentState.CANCELED.toString())) {
+                experimentStatusResources.remove(i);
+                experimentStatusResources.add(0, thisState);
+                break;
+            }
+        }
         return experimentStatusResources;
     }
 
diff --git 
a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/utils/ThriftDataModelConversion.java
 
b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/utils/ThriftDataModelConversion.java
index bcf9349..2149046 100644
--- 
a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/utils/ThriftDataModelConversion.java
+++ 
b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/utils/ThriftDataModelConversion.java
@@ -66,6 +66,7 @@ import java.sql.Timestamp;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
+import java.util.stream.Collectors;
 
 public class ThriftDataModelConversion {
     private final static Logger logger = 
LoggerFactory.getLogger(ThriftDataModelConversion.class);
@@ -169,11 +170,10 @@ public class ThriftDataModelConversion {
             experiment.setExperimentInputs(getExpInputs(experimentInputs));
             List<ExperimentOutputResource> experimentOutputs = 
experimentResource.getExperimentOutputs();
             experiment.setExperimentOutputs(getExpOutputs(experimentOutputs));
-            ExperimentStatusResource experimentStatus = 
experimentResource.getExperimentStatus();
-            if (experimentStatus != null){
-                List<ExperimentStatus> experimentStatuses = new ArrayList<>();
-                experimentStatuses.add(getExperimentStatus(experimentStatus));
-                experiment.setExperimentStatus(experimentStatuses);
+            List<ExperimentStatusResource> experimentStatuses = 
experimentResource.getExperimentStatuses();
+            if (experimentStatuses != null){
+                experiment.setExperimentStatus(experimentStatuses.stream()
+                        
.map(ThriftDataModelConversion::getExperimentStatus).collect(Collectors.toList()));
             }
             List<ExperimentErrorResource> errorDetails = 
experimentResource.getExperimentErrors();
             if (errorDetails!= null && !errorDetails.isEmpty()){

Reply via email to