You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sc...@apache.org on 2015/06/25 17:25:33 UTC

[1/2] airavata git commit: Changing the unique key of the JobModel

Repository: airavata
Updated Branches:
  refs/heads/master 636a733bf -> f200d50be


Changing the unique key of the  JobModel


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

Branch: refs/heads/master
Commit: aa2fab54be0eae061769c4aca751ae50594bbc38
Parents: a2dce4f
Author: Supun Nakandala <sc...@apache.org>
Authored: Thu Jun 25 20:48:37 2015 +0530
Committer: Supun Nakandala <sc...@apache.org>
Committed: Thu Jun 25 20:48:37 2015 +0530

----------------------------------------------------------------------
 .../catalog/impl/ExperimentCatalogImpl.java     | 14 ++--
 .../catalog/impl/ExperimentRegistry.java        | 38 +++++++---
 .../core/experiment/catalog/model/Job.java      |  3 +-
 .../core/experiment/catalog/model/JobPK.java    | 74 ++++++++++++++++++++
 .../experiment/catalog/model/JobStatus.java     | 11 +++
 .../experiment/catalog/model/JobStatusPK.java   | 13 ++++
 .../resources/AbstractExpCatResource.java       |  1 +
 .../resources/ExperimentStatusResource.java     |  1 +
 .../catalog/resources/JobResource.java          |  7 +-
 .../catalog/resources/JobStatusResource.java    | 16 ++++-
 .../resources/ProcessStatusResource.java        |  1 +
 .../catalog/resources/TaskResource.java         |  5 +-
 .../catalog/resources/TaskStatusResource.java   |  1 +
 .../src/main/resources/expcatalog-derby.sql     |  5 +-
 .../src/main/resources/expcatalog-mysql.sql     |  5 +-
 .../src/test/resources/expcatalog-derby.sql     |  5 +-
 16 files changed, 171 insertions(+), 29 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/aa2fab54/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentCatalogImpl.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentCatalogImpl.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentCatalogImpl.java
index 014140e..f9648ff 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentCatalogImpl.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentCatalogImpl.java
@@ -178,7 +178,7 @@ public class ExperimentCatalogImpl implements ExperimentCatalog {
                 case JOB:
                     return experimentRegistry.addJob((JobModel) newObjectToAdd, (String) dependentIdentifier);
                 case JOB_STATUS:
-                    return experimentRegistry.addJobStatus((JobStatus) newObjectToAdd, (String) dependentIdentifier);
+                    return experimentRegistry.addJobStatus((JobStatus) newObjectToAdd, (CompositeIdentifier) dependentIdentifier);
                 default:
                     logger.error("Unsupported dependent data type...", new UnsupportedOperationException());
                     throw new UnsupportedOperationException();
@@ -251,10 +251,10 @@ public class ExperimentCatalogImpl implements ExperimentCatalog {
                     experimentRegistry.updateTaskError((ErrorModel) newObjectToUpdate, (String) identifier);
                     break;
                 case JOB:
-                    experimentRegistry.updateJob((JobModel) newObjectToUpdate, (String) identifier);
+                    experimentRegistry.updateJob((JobModel) newObjectToUpdate, (CompositeIdentifier) identifier);
                     break;
                 case JOB_STATUS:
-                    experimentRegistry.updateJobStatus((JobStatus) newObjectToUpdate, (String) identifier);
+                    experimentRegistry.updateJobStatus((JobStatus) newObjectToUpdate, (CompositeIdentifier) identifier);
                     break;
                 default:
                     logger.error("Unsupported data type...", new UnsupportedOperationException());
@@ -349,9 +349,9 @@ public class ExperimentCatalogImpl implements ExperimentCatalog {
                 case TASK_ERROR:
                     return experimentRegistry.getTaskError((String) identifier);
                 case JOB:
-                    return experimentRegistry.getJob((String) identifier, null);
+                    return experimentRegistry.getJob((CompositeIdentifier) identifier, null);
                 case JOB_STATUS:
-                    return experimentRegistry.getJobStatus((String) identifier);
+                    return experimentRegistry.getJobStatus((CompositeIdentifier) identifier);
                 default:
                     logger.error("Unsupported data type...", new UnsupportedOperationException());
                     throw new UnsupportedOperationException();
@@ -630,7 +630,7 @@ public class ExperimentCatalogImpl implements ExperimentCatalog {
                     experimentRegistry.removeTask((String) identifier);
                     break;
                 case JOB:
-                    experimentRegistry.removeJob((String) identifier);
+                    experimentRegistry.removeJob((CompositeIdentifier) identifier);
                     break;
                 default:
                     logger.error("Unsupported data type...", new UnsupportedOperationException());
@@ -671,7 +671,7 @@ public class ExperimentCatalogImpl implements ExperimentCatalog {
                 case TASK:
                     return experimentRegistry.isTaskExist((String) identifier);
                 case JOB:
-                    return experimentRegistry.isJobExist((String) identifier);
+                    return experimentRegistry.isJobExist((CompositeIdentifier) identifier);
                 default:
                     logger.error("Unsupported data type...", new UnsupportedOperationException());
                     throw new UnsupportedOperationException();

http://git-wip-us.apache.org/repos/asf/airavata/blob/aa2fab54/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentRegistry.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentRegistry.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentRegistry.java
index 75218b7..7c3fe0a 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentRegistry.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/impl/ExperimentRegistry.java
@@ -38,6 +38,7 @@ import org.apache.airavata.registry.core.experiment.catalog.ExpCatResourceUtils;
 import org.apache.airavata.registry.core.experiment.catalog.ResourceType;
 import org.apache.airavata.registry.core.experiment.catalog.resources.*;
 import org.apache.airavata.registry.core.experiment.catalog.utils.ThriftDataModelConversion;
+import org.apache.airavata.registry.cpi.CompositeIdentifier;
 import org.apache.airavata.registry.cpi.RegistryException;
 import org.apache.airavata.registry.cpi.ResultOrderType;
 import org.apache.airavata.registry.cpi.utils.Constants;
@@ -463,7 +464,7 @@ public class ExperimentRegistry {
     public String addJob(JobModel job, String taskId) throws RegistryException {
         try {
             JobResource jobResource = new JobResource();
-            jobResource.setJobId(getJobID(taskId));
+            jobResource.setJobId(job.getJobId());
             jobResource.setTaskId(taskId);
             jobResource.setJobDescription(job.getJobDescription());
             jobResource.setCreationTime(AiravataUtils.getTime(job.getCreationTime()));
@@ -481,7 +482,9 @@ public class ExperimentRegistry {
         return taskId;
     }
 
-    public String addJobStatus(JobStatus jobStatus, String jobID) throws RegistryException {
+    public String addJobStatus(JobStatus jobStatus, CompositeIdentifier cis) throws RegistryException {
+        String taskID = (String)cis.getTopLevelIdentifier();
+        String jobID = (String)cis.getSecondLevelIdentifier();
         try {
             JobResource jobResource = new JobResource();
             jobResource.setJobId(jobID);
@@ -492,6 +495,7 @@ public class ExperimentRegistry {
             if (isValidStatusTransition(ProcessState.valueOf(status.getState()), jobStatus.getJobState())) {
                 status.setStatusId(getStatusID(jobID));
                 status.setJobId(jobID);
+                status.setTaskId(taskID);
                 status.setTimeOfStateChange(AiravataUtils.getTime(jobStatus.getTimeOfStateChange()));
                 status.setState(jobStatus.getJobState().toString());
                 status.setReason(jobStatus.getReason());
@@ -807,10 +811,13 @@ public class ExperimentRegistry {
         return addTaskError(taskError, taskID);
     }
 
-    public String updateJob(JobModel job, String jobId) throws RegistryException {
+    public String updateJob(JobModel job, CompositeIdentifier cis) throws RegistryException {
+        String taskId = (String) cis.getTopLevelIdentifier();
+        String jobId = (String) cis.getSecondLevelIdentifier();
         try {
             TaskResource taskResource = new TaskResource();
-            JobResource jobResource = taskResource.getJob(jobId);
+            taskResource.setTaskId(taskId);
+            JobResource jobResource = taskResource.getJob(taskId, jobId);
             jobResource.setJobId(jobId);
             jobResource.setTaskId(job.getTaskId());
             jobResource.setJobDescription(job.getJobDescription());
@@ -829,8 +836,8 @@ public class ExperimentRegistry {
         return jobId;
     }
 
-    public String updateJobStatus(JobStatus jobStatus, String jobID) throws RegistryException {
-        return addJobStatus(jobStatus, jobID);
+    public String updateJobStatus(JobStatus jobStatus, CompositeIdentifier cis) throws RegistryException {
+        return addJobStatus(jobStatus, cis);
     }
 
 
@@ -1038,10 +1045,13 @@ public class ExperimentRegistry {
         return null;
     }
 
-    public Object getJob(String jobId, String fieldName) throws RegistryException {
+    public Object getJob(CompositeIdentifier cis, String fieldName) throws RegistryException {
+        String taskID = (String) cis.getTopLevelIdentifier();
+        String jobId = (String) cis.getSecondLevelIdentifier();
         try {
             TaskResource taskResource = new TaskResource();
-            JobResource resource = taskResource.getJob(jobId);
+            taskResource.setTaskId(taskID);
+            JobResource resource = taskResource.getJob(taskID, jobId);
             if (fieldName == null) {
                 return ThriftDataModelConversion.getJobModel(resource);
             } else {
@@ -1054,7 +1064,7 @@ public class ExperimentRegistry {
         return null;
     }
 
-    public Object getJobStatus(String identifier) {
+    public Object getJobStatus(CompositeIdentifier cis) {
         return null;
     }
 
@@ -1353,9 +1363,12 @@ public class ExperimentRegistry {
         }
     }
 
-    public void removeJob(String jobId) throws RegistryException {
+    public void removeJob(CompositeIdentifier cis) throws RegistryException {
         try {
+            String taskId = (String) cis.getTopLevelIdentifier();
+            String jobId = (String) cis.getSecondLevelIdentifier();
             TaskResource taskResource = new TaskResource();
+            taskResource.setTaskId(taskId);
             taskResource.remove(ResourceType.JOB, jobId);
         } catch (Exception e) {
             logger.error("Error while removing task details..", e);
@@ -1416,9 +1429,12 @@ public class ExperimentRegistry {
     }
 
 
-    public boolean isJobExist(String jobId) throws RegistryException {
+    public boolean isJobExist(CompositeIdentifier cis) throws RegistryException {
+        String taskId = (String) cis.getTopLevelIdentifier();
+        String jobId = (String) cis.getSecondLevelIdentifier();
         try {
             TaskResource taskResource = new TaskResource();
+            taskResource.setTaskId(taskId);
             return taskResource.isExists(ResourceType.JOB, jobId);
         } catch (Exception e) {
             logger.error("Error while retrieving job.....", e);

http://git-wip-us.apache.org/repos/asf/airavata/blob/aa2fab54/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/Job.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/Job.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/Job.java
index 95e1f1d..3347263 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/Job.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/Job.java
@@ -28,6 +28,7 @@ import java.sql.Timestamp;
 import java.util.Collection;
 
 @Entity
+@IdClass(JobPK.class)
 public class Job {
     private final static Logger logger = LoggerFactory.getLogger(Job.class);
     private String jobId;
@@ -50,7 +51,7 @@ public class Job {
         this.jobId = jobId;
     }
 
-    @Basic
+    @Id
     @Column(name = "TASK_ID")
     public String getTaskId() {
         return taskId;

http://git-wip-us.apache.org/repos/asf/airavata/blob/aa2fab54/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/JobPK.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/JobPK.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/JobPK.java
new file mode 100644
index 0000000..eb704d5
--- /dev/null
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/JobPK.java
@@ -0,0 +1,74 @@
+/*
+ *
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *
+*/
+package org.apache.airavata.registry.core.experiment.catalog.model;
+
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+import javax.persistence.Column;
+import javax.persistence.Id;
+import java.io.Serializable;
+
+public class JobPK implements Serializable {
+    private final static Logger logger = LoggerFactory.getLogger(JobPK.class);
+    private String jobId;
+    private String taskId;
+
+    @Id
+    @Column(name = "JOB_ID")
+    public String getJobId() {
+        return jobId;
+    }
+
+    public void setJobId(String jobId) {
+        this.jobId = jobId;
+    }
+
+    @Id
+    @Column(name = "TASK_ID")
+    public String getTaskId() {
+        return taskId;
+    }
+
+    public void setTaskId(String taskId) {
+        this.taskId = taskId;
+    }
+
+    @Override
+    public boolean equals(Object o) {
+        if (this == o) return true;
+        if (o == null || getClass() != o.getClass()) return false;
+
+        JobPK that = (JobPK) o;
+
+        if (getJobId() != null ? !getJobId().equals(that.getJobId()) : that.getJobId() != null) return false;
+        if (getTaskId() != null ? !getTaskId().equals(that.getTaskId()) : that.getTaskId() != null) return false;
+
+        return true;
+    }
+
+    @Override
+    public int hashCode() {
+        int result = getJobId() != null ? getJobId().hashCode() : 0;
+        result = 31 * result + (getTaskId() != null ? getTaskId().hashCode() : 0);
+        return result;
+    }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/aa2fab54/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/JobStatus.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/JobStatus.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/JobStatus.java
index 49735ff..c93d1cb 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/JobStatus.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/JobStatus.java
@@ -33,6 +33,7 @@ public class JobStatus {
     private final static Logger logger = LoggerFactory.getLogger(JobStatus.class);
     private String statusId;
     private String jobId;
+    private String taskId;
     private String state;
     private Timestamp timeOfStateChange;
     private String reason;
@@ -58,6 +59,16 @@ public class JobStatus {
         this.jobId = jobId;
     }
 
+    @Id
+    @Column(name = "TASK_ID")
+    public String getTaskId() {
+        return taskId;
+    }
+
+    public void setTaskId(String taskId) {
+        this.taskId = taskId;
+    }
+
     @Basic
     @Column(name = "STATE")
     public String getState() {

http://git-wip-us.apache.org/repos/asf/airavata/blob/aa2fab54/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/JobStatusPK.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/JobStatusPK.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/JobStatusPK.java
index 672319b..cac3c52 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/JobStatusPK.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/JobStatusPK.java
@@ -31,6 +31,7 @@ public class JobStatusPK implements Serializable {
     private final static Logger logger = LoggerFactory.getLogger(JobStatusPK.class);
     private String statusId;
     private String jobId;
+    private String taskId;
 
     @Id
     @Column(name = "STATUS_ID")
@@ -52,6 +53,16 @@ public class JobStatusPK implements Serializable {
         this.jobId = jobId;
     }
 
+    @Id
+    @Column(name = "TASK_ID")
+    public String getTaskId() {
+        return taskId;
+    }
+
+    public void setTaskId(String taskId) {
+        this.taskId = taskId;
+    }
+
     @Override
     public boolean equals(Object o) {
         if (this == o) return true;
@@ -61,6 +72,7 @@ public class JobStatusPK implements Serializable {
 
         if (getStatusId() != null ? !getStatusId().equals(that.getStatusId()) : that.getStatusId() != null) return false;
         if (getJobId() != null ? !getJobId().equals(that.getJobId()) : that.getJobId() != null) return false;
+        if (getTaskId() != null ? !getTaskId().equals(that.getTaskId()) : that.getTaskId() != null) return false;
 
         return true;
     }
@@ -69,6 +81,7 @@ public class JobStatusPK implements Serializable {
     public int hashCode() {
         int result = getStatusId() != null ? getStatusId().hashCode() : 0;
         result = 31 * result + (getJobId() != null ? getJobId().hashCode() : 0);
+        result = 31 * result + (getTaskId() != null ? getTaskId().hashCode() : 0);
         return result;
     }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/aa2fab54/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/AbstractExpCatResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/AbstractExpCatResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/AbstractExpCatResource.java
index 8608d65..315e2e8 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/AbstractExpCatResource.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/AbstractExpCatResource.java
@@ -227,6 +227,7 @@ public abstract class AbstractExpCatResource implements ExperimentCatResource {
     public final class JobStatusConstants {
         public static final String STATUS_ID = "statusId";
         public static final String JOB_ID = "jobId";
+        public static final String TASK_ID = "taskId";
         public static final String STATE = "state";
         public static final String TIME_OF_STATE_CHANGE = "timeOfStateChange";
         public static final String REASON = "reason";

http://git-wip-us.apache.org/repos/asf/airavata/blob/aa2fab54/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ExperimentStatusResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ExperimentStatusResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ExperimentStatusResource.java
index 558762e..9cb4747 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ExperimentStatusResource.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ExperimentStatusResource.java
@@ -122,6 +122,7 @@ public class ExperimentStatusResource extends AbstractExpCatResource {
             if(experimentStatus == null){
                 experimentStatus = new ExperimentStatus();
             }
+            experimentStatus.setStatusId(statusId);
             experimentStatus.setExperimentId(experimentId);
             experimentStatus.setState(state);
             experimentStatus.setReason(reason);

http://git-wip-us.apache.org/repos/asf/airavata/blob/aa2fab54/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/JobResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/JobResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/JobResource.java
index 55bdd98..6ed5a54 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/JobResource.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/JobResource.java
@@ -25,6 +25,7 @@ import org.apache.airavata.registry.core.experiment.catalog.ExpCatResourceUtils;
 import org.apache.airavata.registry.core.experiment.catalog.ExperimentCatResource;
 import org.apache.airavata.registry.core.experiment.catalog.ResourceType;
 import org.apache.airavata.registry.core.experiment.catalog.model.Job;
+import org.apache.airavata.registry.core.experiment.catalog.model.JobPK;
 import org.apache.airavata.registry.core.experiment.catalog.model.JobStatus;
 import org.apache.airavata.registry.core.experiment.catalog.utils.QueryGenerator;
 import org.apache.airavata.registry.cpi.RegistryException;
@@ -200,6 +201,7 @@ public class JobResource extends AbstractExpCatResource {
                 case JOB_STATUS:
                     generator = new QueryGenerator(JOB_STATUS);
                     generator.setParameter(JobStatusConstants.JOB_ID, jobId);
+                    generator.setParameter(JobStatusConstants.TASK_ID, taskId);
                     q = generator.selectQuery(em);
                     results = q.getResultList();
                     if (results.size() != 0) {
@@ -239,7 +241,10 @@ public class JobResource extends AbstractExpCatResource {
         try {
             em = ExpCatResourceUtils.getEntityManager();
             em.getTransaction().begin();
-            Job job = em.find(Job.class, jobId);
+            JobPK jobPK = new JobPK();
+            jobPK.setJobId(jobId);
+            jobPK.setTaskId(taskId);
+            Job job = em.find(Job.class, jobPK);
             if(job == null){
                 job = new Job();
             }

http://git-wip-us.apache.org/repos/asf/airavata/blob/aa2fab54/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/JobStatusResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/JobStatusResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/JobStatusResource.java
index 5c0e3b2..4085a3b 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/JobStatusResource.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/JobStatusResource.java
@@ -38,6 +38,7 @@ public class JobStatusResource extends AbstractExpCatResource {
     private static final Logger logger = LoggerFactory.getLogger(JobStatusResource.class);
     private String statusId;
     private String jobId;
+    private String taskId;
     private String state;
     private Timestamp timeOfStateChange;
     private String reason;
@@ -58,6 +59,14 @@ public class JobStatusResource extends AbstractExpCatResource {
         this.jobId = jobId;
     }
 
+    public String getTaskId() {
+        return taskId;
+    }
+
+    public void setTaskId(String taskId) {
+        this.taskId = taskId;
+    }
+
     public String getState() {
         return state;
     }
@@ -112,17 +121,20 @@ public class JobStatusResource extends AbstractExpCatResource {
             em = ExpCatResourceUtils.getEntityManager();
             em.getTransaction().begin();
             JobStatus jobStatus;
-            if(jobId == null || statusId == null){
-                throw new RegistryException("Does not have the job id or status id");
+            if(jobId == null || statusId == null || taskId == null){
+                throw new RegistryException("Does not have the job id or status id or task id");
             }
             JobStatusPK jobStatusPK = new JobStatusPK();
             jobStatusPK.setJobId(jobId);
             jobStatusPK.setStatusId(statusId);
+            jobStatusPK.setTaskId(taskId);
             jobStatus = em.find(JobStatus.class, jobStatusPK);
             if(jobStatus == null){
                 jobStatus = new JobStatus();
             }
+            jobStatus.setStatusId(statusId);
             jobStatus.setJobId(jobId);
+            jobStatus.setTaskId(taskId);
             jobStatus.setState(state);
             jobStatus.setReason(reason);
             em.persist(jobStatus);

http://git-wip-us.apache.org/repos/asf/airavata/blob/aa2fab54/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ProcessStatusResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ProcessStatusResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ProcessStatusResource.java
index 6892510..de8c81b 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ProcessStatusResource.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ProcessStatusResource.java
@@ -122,6 +122,7 @@ public class ProcessStatusResource extends AbstractExpCatResource {
             if(processStatus == null){
                 processStatus = new ProcessStatus();
             }
+            processStatus.setStatusId(statusId);
             processStatus.setProcessId(processId);
             processStatus.setState(state);
             processStatus.setReason(reason);

http://git-wip-us.apache.org/repos/asf/airavata/blob/aa2fab54/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/TaskResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/TaskResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/TaskResource.java
index 5d90e4f..5d69bc1 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/TaskResource.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/TaskResource.java
@@ -149,6 +149,7 @@ public class TaskResource extends AbstractExpCatResource {
                 case JOB:
                     generator = new QueryGenerator(JOB);
                     generator.setParameter(JobConstants.JOB_ID, name);
+                    generator.setParameter(JobConstants.TASK_ID, taskId);
                     q = generator.deleteQuery(em);
                     q.executeUpdate();
                     break;
@@ -203,6 +204,7 @@ public class TaskResource extends AbstractExpCatResource {
                 case JOB:
                     generator = new QueryGenerator(JOB);
                     generator.setParameter(JobConstants.JOB_ID, name);
+                    generator.setParameter(JobConstants.TASK_ID, taskId);
                     q = generator.selectQuery(em);
                     Job job = (Job) q.getSingleResult();
                     JobResource jobResource = (JobResource) Utils.getResource(ResourceType.JOB, job);
@@ -372,7 +374,8 @@ public class TaskResource extends AbstractExpCatResource {
         }
     }
 
-    public JobResource getJob(String jobId) throws RegistryException {
+    public JobResource getJob(String taskId, String jobId) throws RegistryException {
+        this.taskId = taskId;
         return (JobResource) get(ResourceType.JOB, jobId);
     }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/aa2fab54/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/TaskStatusResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/TaskStatusResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/TaskStatusResource.java
index fbc812f..85c9eb9 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/TaskStatusResource.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/TaskStatusResource.java
@@ -122,6 +122,7 @@ public class TaskStatusResource extends AbstractExpCatResource {
             if(taskStatus == null){
                 taskStatus = new TaskStatus();
             }
+            taskStatus.setStatusId(statusId);
             taskStatus.setTaskId(taskId);
             taskStatus.setState(state);
             taskStatus.setReason(reason);

http://git-wip-us.apache.org/repos/asf/airavata/blob/aa2fab54/modules/registry/registry-core/src/main/resources/expcatalog-derby.sql
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/resources/expcatalog-derby.sql b/modules/registry/registry-core/src/main/resources/expcatalog-derby.sql
index 63f40ef..6ad715c 100644
--- a/modules/registry/registry-core/src/main/resources/expcatalog-derby.sql
+++ b/modules/registry/registry-core/src/main/resources/expcatalog-derby.sql
@@ -300,17 +300,18 @@ CREATE TABLE JOB (
   COMPUTE_RESOURCE_CONSUMED varchar(255),
   JOB_NAME varchar(255),
   WORKING_DIR varchar(255),
-  PRIMARY KEY (JOB_ID),
+  PRIMARY KEY (JOB_ID, TASK_ID),
   FOREIGN KEY (TASK_ID) REFERENCES TASK(TASK_ID) ON DELETE CASCADE
 );
 
 CREATE TABLE JOB_STATUS (
   STATUS_ID varchar(255),
   JOB_ID varchar(255),
+  TASK_ID varchar(255),
   STATE varchar(255),
   TIME_OF_STATE_CHANGE  timestamp DEFAULT '0000-00-00 00:00:00',
   REASON CLOB,
-  PRIMARY KEY (STATUS_ID, JOB_ID),
+  PRIMARY KEY (STATUS_ID, JOB_ID, TASK_ID),
   FOREIGN KEY (JOB_ID) REFERENCES JOB(JOB_ID) ON DELETE CASCADE
 );
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/aa2fab54/modules/registry/registry-core/src/main/resources/expcatalog-mysql.sql
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/resources/expcatalog-mysql.sql b/modules/registry/registry-core/src/main/resources/expcatalog-mysql.sql
index 56a3d3a..a446386 100644
--- a/modules/registry/registry-core/src/main/resources/expcatalog-mysql.sql
+++ b/modules/registry/registry-core/src/main/resources/expcatalog-mysql.sql
@@ -302,17 +302,18 @@ CREATE TABLE JOB (
   COMPUTE_RESOURCE_CONSUMED varchar(255),
   JOB_NAME varchar(255),
   WORKING_DIR varchar(255),
-  PRIMARY KEY (JOB_ID),
+  PRIMARY KEY (JOB_ID, TASK_ID),
   FOREIGN KEY (TASK_ID) REFERENCES TASK(TASK_ID) ON DELETE CASCADE
 );
 
 CREATE TABLE JOB_STATUS (
   STATUS_ID varchar(255),
   JOB_ID varchar(255),
+  TASK_ID varchar(255),
   STATE varchar(255),
   TIME_OF_STATE_CHANGE timestamp DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP,
   REASON LONGTEXT,
-  PRIMARY KEY (STATUS_ID, JOB_ID),
+  PRIMARY KEY (STATUS_ID, JOB_ID, TASK_ID),
   FOREIGN KEY (JOB_ID) REFERENCES JOB(JOB_ID) ON DELETE CASCADE
 );
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/aa2fab54/modules/registry/registry-core/src/test/resources/expcatalog-derby.sql
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/test/resources/expcatalog-derby.sql b/modules/registry/registry-core/src/test/resources/expcatalog-derby.sql
index 63f40ef..6ad715c 100644
--- a/modules/registry/registry-core/src/test/resources/expcatalog-derby.sql
+++ b/modules/registry/registry-core/src/test/resources/expcatalog-derby.sql
@@ -300,17 +300,18 @@ CREATE TABLE JOB (
   COMPUTE_RESOURCE_CONSUMED varchar(255),
   JOB_NAME varchar(255),
   WORKING_DIR varchar(255),
-  PRIMARY KEY (JOB_ID),
+  PRIMARY KEY (JOB_ID, TASK_ID),
   FOREIGN KEY (TASK_ID) REFERENCES TASK(TASK_ID) ON DELETE CASCADE
 );
 
 CREATE TABLE JOB_STATUS (
   STATUS_ID varchar(255),
   JOB_ID varchar(255),
+  TASK_ID varchar(255),
   STATE varchar(255),
   TIME_OF_STATE_CHANGE  timestamp DEFAULT '0000-00-00 00:00:00',
   REASON CLOB,
-  PRIMARY KEY (STATUS_ID, JOB_ID),
+  PRIMARY KEY (STATUS_ID, JOB_ID, TASK_ID),
   FOREIGN KEY (JOB_ID) REFERENCES JOB(JOB_ID) ON DELETE CASCADE
 );
 


[2/2] airavata git commit: Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/airavata

Posted by sc...@apache.org.
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/airavata


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

Branch: refs/heads/master
Commit: f200d50be55bd435e367494482d67881f4f19f51
Parents: aa2fab5 636a733
Author: Supun Nakandala <sc...@apache.org>
Authored: Thu Jun 25 20:55:13 2015 +0530
Committer: Supun Nakandala <sc...@apache.org>
Committed: Thu Jun 25 20:55:13 2015 +0530

----------------------------------------------------------------------
 .../java/org/apache/airavata/api/Airavata.java  |    2 +-
 .../Airavata/Model/Messaging/Event/Types.php    |  379 +++++-
 .../airavata/model/messaging/event/ttypes.py    |  335 +++++-
 .../org/apache/airavata/model/Workflow.java     |    2 +-
 .../ApplicationDeploymentDescription.java       |    2 +-
 .../appdeployment/ApplicationModule.java        |    2 +-
 .../appcatalog/appdeployment/SetEnvPaths.java   |    2 +-
 .../ApplicationInterfaceDescription.java        |    2 +-
 .../appcatalog/computeresource/BatchQueue.java  |    2 +-
 .../computeresource/CloudJobSubmission.java     |    2 +-
 .../ComputeResourceDescription.java             |    2 +-
 .../computeresource/DataMovementInterface.java  |    2 +-
 .../computeresource/GlobusJobSubmission.java    |    2 +-
 .../computeresource/GridFTPDataMovement.java    |    2 +-
 .../computeresource/JobSubmissionInterface.java |    2 +-
 .../computeresource/LOCALDataMovement.java      |    2 +-
 .../computeresource/LOCALSubmission.java        |    2 +-
 .../computeresource/ResourceJobManager.java     |    2 +-
 .../computeresource/SCPDataMovement.java        |    2 +-
 .../computeresource/SSHJobSubmission.java       |    2 +-
 .../computeresource/UnicoreDataMovement.java    |    2 +-
 .../computeresource/UnicoreJobSubmission.java   |    2 +-
 .../ComputeResourcePreference.java              |    2 +-
 .../gatewayprofile/GatewayResourceProfile.java  |    2 +-
 .../application/io/InputDataObjectType.java     |    2 +-
 .../application/io/OutputDataObjectType.java    |    2 +-
 .../airavata/model/commons/ErrorModel.java      |    2 +-
 .../model/commons/ValidationResults.java        |    2 +-
 .../airavata/model/commons/ValidatorResult.java |    2 +-
 .../model/error/AiravataClientException.java    |    2 +-
 .../model/error/AiravataSystemException.java    |    2 +-
 .../model/error/AuthenticationException.java    |    2 +-
 .../model/error/AuthorizationException.java     |    2 +-
 .../error/ExperimentNotFoundException.java      |    2 +-
 .../model/error/InvalidRequestException.java    |    2 +-
 .../model/error/LaunchValidationException.java  |    2 +-
 .../model/error/ProjectNotFoundException.java   |    2 +-
 .../airavata/model/error/TimedOutException.java |    2 +-
 .../airavata/model/error/ValidationResults.java |    2 +-
 .../airavata/model/error/ValidatorResult.java   |    2 +-
 .../model/experiment/ExperimentModel.java       |    2 +-
 .../model/experiment/ExperimentStatistics.java  |    2 +-
 .../experiment/ExperimentSummaryModel.java      |    2 +-
 .../experiment/UserConfigurationDataModel.java  |    2 +-
 .../org/apache/airavata/model/job/JobModel.java |    2 +-
 .../event/ExperimentStatusChangeEvent.java      |    2 +-
 .../model/messaging/event/JobIdentifier.java    |    2 +-
 .../messaging/event/JobStatusChangeEvent.java   |    2 +-
 .../event/JobStatusChangeRequestEvent.java      |    2 +-
 .../airavata/model/messaging/event/Message.java |    2 +-
 .../messaging/event/ProcessIdentifier.java      |    2 +-
 .../event/ProcessStatusChangeEvent.java         |    2 +-
 .../event/ProcessStatusChangeRequestEvent.java  |    2 +-
 .../messaging/event/ProcessSubmitEvent.java     |  112 +-
 .../model/messaging/event/TaskIdentifier.java   |    2 +-
 .../messaging/event/TaskOutputChangeEvent.java  |    2 +-
 .../messaging/event/TaskStatusChangeEvent.java  |    2 +-
 .../event/TaskStatusChangeRequestEvent.java     |    2 +-
 .../model/messaging/event/TaskSubmitEvent.java  |    2 +-
 .../messaging/event/TaskTerminateEvent.java     |    2 +-
 .../airavata/model/process/ProcessModel.java    |    2 +-
 .../ComputationalResourceSchedulingModel.java   |    2 +-
 .../airavata/model/security/AuthzToken.java     |    2 +-
 .../airavata/model/status/ExperimentStatus.java |    2 +-
 .../apache/airavata/model/status/JobStatus.java |    2 +-
 .../airavata/model/status/ProcessState.java     |   36 +-
 .../airavata/model/status/ProcessStatus.java    |    2 +-
 .../airavata/model/status/TaskStatus.java       |    2 +-
 .../model/task/DataStagingTaskModel.java        |    2 +-
 .../apache/airavata/model/task/TaskModel.java   |    2 +-
 .../airavata/model/workspace/Gateway.java       |    2 +-
 .../apache/airavata/model/workspace/Group.java  |    2 +-
 .../airavata/model/workspace/Project.java       |    2 +-
 .../apache/airavata/model/workspace/User.java   |    2 +-
 distribution/pom.xml                            |    9 +-
 .../gaussian/handler/GaussianHandler.java       |  326 ++---
 .../org/apache/airavata/gfac/core/GFac.java     |   10 +-
 .../apache/airavata/gfac/core/GFacUtils.java    |   44 +-
 .../SSHPublicKeyAuthentication.java             |    2 +-
 .../SSHPublicKeyFileAuthentication.java         |    2 +-
 .../gfac/core/context/JobExecutionContext.java  |  988 +++++++--------
 .../gfac/core/context/ProcessContext.java       |    6 +
 .../airavata/gfac/core/monitor/MonitorID.java   |   30 +-
 .../java/com/jcraft/jsch/GSSContextX509.java    |  205 ++++
 .../UserAuthGSSAPIWithMICGSSCredentials.java    |    1 -
 .../apache/airavata/gfac/impl/GFacWorker.java   |   47 +-
 .../gfac/impl/job/PBSJobConfiguration.java      |  112 +-
 .../gfac/impl/task/SSHJobSubmissionTask.java    |   26 +-
 .../handler/LocalDirectorySetupHandler.java     |  124 +-
 .../gfac/local/handler/LocalInputHandler.java   |  184 +--
 .../gfac/local/provider/impl/LocalProvider.java |  618 +++++-----
 .../gfac/local/utils/LocalProviderUtil.java     |  102 +-
 .../ssh/handler/AdvancedSCPInputHandler.java    |  454 +++----
 .../ssh/handler/AdvancedSCPOutputHandler.java   |  450 +++----
 .../gfac/ssh/handler/NewSSHOutputHandler.java   |  156 +--
 .../ssh/handler/SSHDirectorySetupHandler.java   |  238 ++--
 .../gfac/ssh/handler/SSHInputHandler.java       |  386 +++---
 .../gfac/ssh/handler/SSHOutputHandler.java      |  510 ++++----
 .../gfac/ssh/provider/impl/SSHProvider.java     |  946 +++++++--------
 .../airavata/gfac/ssh/util/GFACSSHUtils.java    | 1124 +++++++++---------
 .../airavata/gfac/ssh/util/HandleOutputs.java   |  192 +--
 .../apache/airavata/gfac/server/GfacServer.java |    4 +-
 .../orchestrator/cpi/OrchestratorService.java   |  314 ++---
 .../cpi/orchestrator_cpi_serviceConstants.java  |    2 +-
 .../core/validator/JobMetadataValidator.java    |    9 +-
 .../validator/impl/BatchQueueValidator.java     |   14 +-
 .../impl/ExperimentStatusValidator.java         |   12 +-
 .../airavata/orchestrator/cpi/Orchestrator.java |   20 +-
 .../cpi/impl/SimpleOrchestratorImpl.java        |  104 +-
 .../orchestrator/orchestrator-service/pom.xml   |    5 -
 .../server/OrchestratorServerHandler.java       |  577 ++++-----
 .../orchestrator/util/DataModelUtils.java       |    4 +-
 .../OrchestratorServerThreadPoolExecutor.java   |    6 +-
 .../engine/interpretor/WorkflowInterpreter.java |   28 +-
 .../engine/invoker/WorkflowInputUtil.java       |    2 +-
 .../model/component/ComponentDataPort.java      |    2 +-
 .../amazon/InstanceComponentDataPort.java       |    2 +-
 .../component/dynamic/DynamicComponentPort.java |    2 +-
 .../component/ws/WSComponentApplication.java    |    6 +-
 .../ws/WSComponentApplicationParameter.java     |    3 +-
 .../model/component/ws/WSComponentPort.java     |    2 +-
 .../airavata/workflow/model/graph/DataPort.java |    2 +-
 .../airavata/workflow/model/graph/EPRPort.java  |    2 +-
 .../model/graph/amazon/InstanceDataPort.java    |    2 +-
 .../model/graph/dynamic/DynamicPort.java        |    2 +-
 .../model/graph/system/ConstantNode.java        |    2 +-
 .../model/graph/system/DifferedInputNode.java   |    2 +-
 .../model/graph/system/EndBlockNode.java        |    2 +-
 .../model/graph/system/EndDoWhileNode.java      |    2 +-
 .../model/graph/system/EndForEachNode.java      |    2 +-
 .../workflow/model/graph/system/EndifNode.java  |    2 +-
 .../workflow/model/graph/system/OutputNode.java |    2 +-
 .../model/graph/system/ParameterNode.java       |    3 +-
 .../model/graph/system/SystemDataPort.java      |    3 +-
 .../workflow/model/graph/system/SystemNode.java |    3 +-
 .../workflow/model/graph/ws/WSPort.java         |    2 +-
 .../workflow/model/wf/WorkflowInput.java        |    3 +-
 .../core/dag/nodes/WorkflowInputNode.java       |    2 +-
 .../core/dag/nodes/WorkflowInputNodeImpl.java   |    2 +-
 .../core/dag/nodes/WorkflowOutputNode.java      |    2 +-
 .../core/dag/nodes/WorkflowOutputNodeImpl.java  |    2 +-
 .../airavata/workflow/core/dag/port/InPort.java |    2 +-
 .../workflow/core/dag/port/InputPortIml.java    |    2 +-
 .../workflow/core/dag/port/OutPort.java         |    2 +-
 .../workflow/core/dag/port/OutPortImpl.java     |    2 +-
 .../core/parser/AiravataWorkflowParser.java     |   16 +-
 .../core/parser/AiravataWorkflowParserTest.java |    6 +-
 pom.xml                                         |    8 +-
 .../airavata-api/messaging_events.thrift        |    2 +-
 .../airavata-api/status_models.thrift           |    6 +
 .../orchestrator.cpi.service.thrift             |    8 +-
 151 files changed, 5121 insertions(+), 4389 deletions(-)
----------------------------------------------------------------------