You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sm...@apache.org on 2015/09/08 20:45:42 UTC

airavata git commit: Adding getJobStatus implementation based on new models.

Repository: airavata
Updated Branches:
  refs/heads/master 26f1039b6 -> b9015cd0e


Adding getJobStatus implementation based on new models.


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

Branch: refs/heads/master
Commit: b9015cd0eea58520f69237e5ed597a61d4774904
Parents: 26f1039
Author: Suresh Marru <sm...@apache.org>
Authored: Tue Sep 8 14:45:36 2015 -0400
Committer: Suresh Marru <sm...@apache.org>
Committed: Tue Sep 8 14:45:36 2015 -0400

----------------------------------------------------------------------
 .../server/handler/AiravataServerHandler.java   | 40 ++++++++------------
 1 file changed, 15 insertions(+), 25 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/b9015cd0/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
index 6089a10..b97f288 100644
--- a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
+++ b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/handler/AiravataServerHandler.java
@@ -1523,41 +1523,32 @@ public class AiravataServerHandler implements Airavata.Iface {
     @SecurityCheck
     public Map<String, JobStatus> getJobStatuses(AuthzToken authzToken, String airavataExperimentId)
             throws AuthorizationException, TException {
-        Map<String, JobStatus> jobStatus = new HashMap<String, JobStatus>();
-	    // FIXME : implement this method with new data model
-/*        try {
+        try {
             experimentCatalog = RegistryFactory.getDefaultExpCatalog();
             if (!experimentCatalog.isExist(ExperimentCatalogModelType.EXPERIMENT, airavataExperimentId)){
-                logger.error(airavataExperimentId, "Error while retrieving job status, the experiment {} doesn't exist.", airavataExperimentId);
+                logger.error(airavataExperimentId, "Error while retrieving job details, experiment {} doesn't exist.", airavataExperimentId);
                 throw new ExperimentNotFoundException("Requested experiment id " + airavataExperimentId + " does not exist in the system..");
             }
-            List<Object> workflowNodes = experimentCatalog.get(ExperimentCatalogModelType.WORKFLOW_NODE_DETAIL, Constants.FieldConstants.WorkflowNodeConstants.EXPERIMENT_ID, airavataExperimentId);
-            if (workflowNodes != null && !workflowNodes.isEmpty()){
-                for (Object wf : workflowNodes){
-                    String nodeInstanceId = ((WorkflowNodeDetails) wf).getNodeInstanceId();
-                    List<Object> taskDetails = experimentCatalog.get(ExperimentCatalogModelType.TASK_DETAIL, Constants.FieldConstants.TaskDetailConstants.NODE_ID, nodeInstanceId);
-                    if (taskDetails != null && !taskDetails.isEmpty()){
-                        for (Object ts : taskDetails){
-                            String taskID = ((TaskDetails) ts).getTaskID();
-                            List<Object> jobDetails = experimentCatalog.get(ExperimentCatalogModelType.JOB_DETAIL, Constants.FieldConstants.JobDetaisConstants.TASK_ID, taskID);
-                            if (jobDetails != null && !jobDetails.isEmpty()){
-                                for (Object job : jobDetails){
-                                    String jobID = ((JobDetails) job).getJobID();
-                                    jobStatus.put(jobID, ((JobDetails) job).getJobStatus());
-                                }
-                            }
-                        }
+            List<Object> processModels = experimentCatalog.get(ExperimentCatalogModelType.PROCESS, Constants.FieldConstants.ProcessConstants.EXPERIMENT_ID, airavataExperimentId);
+            Map<String, JobStatus> jobStatus = new HashMap<String, JobStatus>();
+            if (processModels != null && !processModels.isEmpty()){
+                for (Object process : processModels) {
+                    String processId =  ((ProcessModel)process).getProcessId();
+                    List<Object> jobs = experimentCatalog.get(ExperimentCatalogModelType.JOB, Constants.FieldConstants.JobConstants.PROCESS_ID, processId);
+                    for (Object jobObject : jobs) {
+                        String jobID = ((JobModel)jobObject).getJobId();
+                        jobStatus.put(jobID, ((JobModel)jobObject).getJobStatus());
                     }
                 }
             }
+            return jobStatus;
         } catch (Exception e) {
-            logger.error(airavataExperimentId, "Error while retrieving the job statuses", e);
+            logger.error(airavataExperimentId, "Error while retrieving the job details", e);
             AiravataSystemException exception = new AiravataSystemException();
             exception.setAiravataErrorType(AiravataErrorType.INTERNAL_ERROR);
-            exception.setMessage("Error while retrieving the job statuses. More info : " + e.getMessage());
+            exception.setMessage("Error while retrieving the job details. More info : " + e.getMessage());
             throw exception;
-        }*/
-        return jobStatus;
+        }
     }
 
     @Override
@@ -1581,7 +1572,6 @@ public class AiravataServerHandler implements Airavata.Iface {
                     }
                 }
             }
-
             return jobList;
         } catch (Exception e) {
             logger.error(airavataExperimentId, "Error while retrieving the job details", e);