Repository: airavata
Updated Branches:
  refs/heads/master 9c1f44d04 -> 5a750b398


fixing AIRAVATA-1353


Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/5a750b39
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/5a750b39
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/5a750b39

Branch: refs/heads/master
Commit: 5a750b398ecb675b2ca3ed41a5bf3a4dadeb9ee2
Parents: 9c1f44d
Author: Chathuri Wimalasena <[email protected]>
Authored: Tue Aug 19 13:01:23 2014 -0400
Committer: Chathuri Wimalasena <[email protected]>
Committed: Tue Aug 19 13:01:23 2014 -0400

----------------------------------------------------------------------
 .../samples/TestCreateLaunchExperiment.java     |  5 ++-
 .../registry/jpa/impl/ExperimentRegistry.java   | 44 ++++++++++++++++++--
 2 files changed, 43 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/5a750b39/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/TestCreateLaunchExperiment.java
----------------------------------------------------------------------
diff --git 
a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/TestCreateLaunchExperiment.java
 
b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/TestCreateLaunchExperiment.java
index c191f91..b660097 100644
--- 
a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/TestCreateLaunchExperiment.java
+++ 
b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/TestCreateLaunchExperiment.java
@@ -69,9 +69,10 @@ public class TestCreateLaunchExperiment {
             Calendar cal2 = Calendar.getInstance();
             Long to = cal2.getTimeInMillis();
 
-            List<ExperimentSummary> experiments = 
searchExperimentsByDate(airavata, "admin", from, to);
+            List<ExperimentSummary> experiments = 
getExperimentsForApplication(airavata, "admin", "e");
             for (ExperimentSummary experimentSummary : experiments){
-                System.out.println(experimentSummary.getExperimentID());
+//                System.out.println(experimentSummary.getExperimentID());
+                System.out.println(experimentSummary.getApplicationId());
 //                
System.out.println(experimentSummary.getExperimentStatus().getExperimentState().toString());
             }
 //            getAllComputeResources(airavata);

http://git-wip-us.apache.org/repos/asf/airavata/blob/5a750b39/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/ExperimentRegistry.java
----------------------------------------------------------------------
diff --git 
a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/ExperimentRegistry.java
 
b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/ExperimentRegistry.java
index b8f7b0d..29de636 100644
--- 
a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/ExperimentRegistry.java
+++ 
b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/impl/ExperimentRegistry.java
@@ -2648,6 +2648,8 @@ public class ExperimentRegistry {
                         
fil.put(AbstractResource.ExperimentConstants.EXECUTION_USER, 
filters.get(field));
                     }else if 
(field.equals(Constants.FieldConstants.ExperimentConstants.EXPERIMENT_DESC)){
                         
fil.put(AbstractResource.ExperimentConstants.DESCRIPTION, filters.get(field));
+                    }else if 
(field.equals(Constants.FieldConstants.ExperimentConstants.APPLICATION_ID)){
+                        
fil.put(AbstractResource.ExperimentConstants.APPLICATION_ID, 
filters.get(field));
                     }else if 
(field.equals(Constants.FieldConstants.ExperimentConstants.EXPERIMENT_STATUS)){
                         return 
searchExperimentsByStatus(ExperimentState.valueOf(filters.get(field)));
                     }else if 
(field.equals(Constants.FieldConstants.ExperimentConstants.FROM_DATE)){
@@ -2659,10 +2661,14 @@ public class ExperimentRegistry {
                 if (fromTime != 0 && toTime != 0){
                     return searchExperimentsByCreationTime(new 
Timestamp(fromTime), new Timestamp(toTime));
                 }
-                List<ExperimentResource> experimentResources = 
workerResource.searchExperiments(fil);
-                if (experimentResources != null && 
!experimentResources.isEmpty()){
-                    for (ExperimentResource ex : experimentResources){
-                        
experimentSummaries.add(ThriftDataModelConversion.getExperimentSummary(ex));
+                if 
(fil.containsKey(AbstractResource.ExperimentConstants.APPLICATION_ID)){
+                    return searchExperimentsByApplication(fil);
+                }else {
+                    List<ExperimentResource> experimentResources = 
workerResource.searchExperiments(fil);
+                    if (experimentResources != null && 
!experimentResources.isEmpty()){
+                        for (ExperimentResource ex : experimentResources){
+                            
experimentSummaries.add(ThriftDataModelConversion.getExperimentSummary(ex));
+                        }
                     }
                 }
                 return experimentSummaries;
@@ -2692,6 +2698,36 @@ public class ExperimentRegistry {
         }
     }
 
+    public List<ExperimentSummary> searchExperimentsByApplication (Map<String, 
String> fil) throws RegistryException {
+        try {
+            List<ExperimentSummary> experimentSummaries = new 
ArrayList<ExperimentSummary>();
+            List<ExperimentResource> experimentResources = 
workerResource.searchExperiments(fil);
+            if (experimentResources != null && !experimentResources.isEmpty()) 
{
+                for (ExperimentResource ex : experimentResources) {
+                    String applicationId = ex.getApplicationId();
+                    String[] splits = applicationId.split("_");
+                    if (splits.length != 0){
+                       for (int i = 0; i< splits.length -1; i++){
+                           String appId = 
fil.get(AbstractResource.ExperimentConstants.APPLICATION_ID);
+                           if (!appId.equals("*")){
+                               if (splits[i].contains(appId)){
+                                   
experimentSummaries.add(ThriftDataModelConversion.getExperimentSummary(ex));
+                               }
+                           }else {
+                               
experimentSummaries.add(ThriftDataModelConversion.getExperimentSummary(ex));
+                           }
+                       }
+                    }
+                }
+            }
+            return experimentSummaries;
+
+        } catch (Exception e) {
+            logger.error("Error while retrieving experiment summary from 
registry", e);
+            throw new RegistryException(e);
+        }
+    }
+
     public List<ExperimentSummary> searchExperimentsByCreationTime (Timestamp 
fromTime, Timestamp toTime) throws RegistryException {
         try {
             List<ExperimentSummary> experimentSummaries = new 
ArrayList<ExperimentSummary>();

Reply via email to