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 23:44:34 UTC

[1/2] airavata git commit: Updating fields in process model in registry

Repository: airavata
Updated Branches:
  refs/heads/master ed5a17203 -> 6caf47871


Updating fields in process model in registry


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

Branch: refs/heads/master
Commit: dce0271e57815950d8e643e2eaa8d1e378f8eec2
Parents: ed5a172
Author: Supun Nakandala <sc...@apache.org>
Authored: Fri Jun 26 02:09:16 2015 +0530
Committer: Supun Nakandala <sc...@apache.org>
Committed: Fri Jun 26 02:09:16 2015 +0530

----------------------------------------------------------------------
 .../catalog/impl/ExperimentRegistry.java        | 24 +++++++++
 .../core/experiment/catalog/model/Process.java  | 56 ++++++++++++++++++++
 .../catalog/resources/ProcessResource.java      | 50 +++++++++++++++++
 .../experiment/catalog/resources/Utils.java     |  5 ++
 .../utils/ThriftDataModelConversion.java        |  8 +++
 .../src/main/resources/expcatalog-derby.sql     |  5 ++
 .../src/main/resources/expcatalog-mysql.sql     |  5 ++
 .../src/test/resources/expcatalog-derby.sql     |  5 ++
 8 files changed, 158 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/dce0271e/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 7c3fe0a..69e3409 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
@@ -253,6 +253,18 @@ public class ExperimentRegistry {
             processResource.setProcessDetail(process.getProcessDetail());
             processResource.setApplicationInterfaceId(process.getApplicationInterfaceId());
             processResource.setTaskDag(process.getTaskDag());
+            processResource.setGatewayExecutionId(process.getGatewayExecutionId());
+            processResource.setComputeResourceId(process.getComputeResourceId());
+            processResource.setApplicationInterfaceId(process.getApplicationInterfaceId());
+            if(process.isEnableEmailNotification()){
+                processResource.setEnableEmailNotification(true);
+                if(process.getEmailAddresses() != null){
+                    processResource.setEmailAddresses(StringUtils.join(process.getEmailAddresses(), ","));
+                }
+            }else{
+                processResource.setEnableEmailNotification(false);
+            }
+
             processResource.save();
 
             if(process.getResourceSchedule() != null) {
@@ -663,6 +675,18 @@ public class ExperimentRegistry {
             processResource.setProcessDetail(process.getProcessDetail());
             processResource.setApplicationInterfaceId(process.getApplicationInterfaceId());
             processResource.setTaskDag(process.getTaskDag());
+            processResource.setGatewayExecutionId(process.getGatewayExecutionId());
+            processResource.setComputeResourceId(process.getComputeResourceId());
+            processResource.setApplicationInterfaceId(process.getApplicationInterfaceId());
+            if(process.isEnableEmailNotification()){
+                processResource.setEnableEmailNotification(true);
+                if(process.getEmailAddresses() != null){
+                    processResource.setEmailAddresses(StringUtils.join(process.getEmailAddresses(), ","));
+                }
+            }else{
+                processResource.setEnableEmailNotification(false);
+            }
+
             processResource.save();
 
             if(process.getResourceSchedule() != null) {

http://git-wip-us.apache.org/repos/asf/airavata/blob/dce0271e/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/Process.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/Process.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/Process.java
index 71c561f..4226a85 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/Process.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/model/Process.java
@@ -38,6 +38,11 @@ public class Process {
     private String processDetail;
     private String applicationInterfaceId;
     private String taskDag;
+    private String applicationDeploymentId;
+    private String computeResourceId;
+    private String gatewayExecutionId;
+    private Boolean enableEmailNotification;
+    private String emailAddresses;
     private Experiment experiment;
     private Collection<ProcessError> processErrors;
     private Collection<ProcessInput> processInputs;
@@ -116,6 +121,57 @@ public class Process {
         this.taskDag = taskDag;
     }
 
+    @Basic
+    @Column(name = "APPLICATION_DEPLOYMENT_ID")
+    public String getApplicationDeploymentId() {
+        return applicationDeploymentId;
+    }
+
+    public void setApplicationDeploymentId(String applicationDeploymentId) {
+        this.applicationDeploymentId = applicationDeploymentId;
+    }
+
+    @Basic
+    @Column(name = "COMPUTE_RESOURCE_ID")
+    public String getComputeResourceId() {
+        return computeResourceId;
+    }
+
+    public void setComputeResourceId(String computeResourceId) {
+        this.computeResourceId = computeResourceId;
+    }
+
+    @Basic
+    @Column(name = "GATEWAY_EXECUTION_ID")
+    public String getGatewayExecutionId() {
+        return gatewayExecutionId;
+    }
+
+    public void setGatewayExecutionId(String gatewayExecutionId) {
+        this.gatewayExecutionId = gatewayExecutionId;
+    }
+
+
+    @Basic
+    @Column(name = "ENABLE_EMAIL_NOTIFICATION")
+    public Boolean getEnableEmailNotification() {
+        return enableEmailNotification;
+    }
+
+    public void setEnableEmailNotification(Boolean enableEmailNotification) {
+        this.enableEmailNotification = enableEmailNotification;
+    }
+
+    @Basic
+    @Column(name = "EMAIL_ADDRESSES")
+    public String getEmailAddresses() {
+        return emailAddresses;
+    }
+
+    public void setEmailAddresses(String emailAddresses) {
+        this.emailAddresses = emailAddresses;
+    }
+
 //    @Override
 //    public boolean equals(Object o) {
 //        if (this == o) return true;

http://git-wip-us.apache.org/repos/asf/airavata/blob/dce0271e/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ProcessResource.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ProcessResource.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ProcessResource.java
index 2572129..9a26a45 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ProcessResource.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/ProcessResource.java
@@ -46,6 +46,11 @@ public class ProcessResource extends AbstractExpCatResource {
     private String processDetail;
     private String applicationInterfaceId;
     private String taskDag;
+    private String applicationDeploymentId;
+    private String computeResourceId;
+    private String gatewayExecutionId;
+    private Boolean enableEmailNotification;
+    private String emailAddresses;
 
     public String getProcessId() {
         return processId;
@@ -103,6 +108,46 @@ public class ProcessResource extends AbstractExpCatResource {
         this.taskDag = taskDag;
     }
 
+    public String getApplicationDeploymentId() {
+        return applicationDeploymentId;
+    }
+
+    public void setApplicationDeploymentId(String applicationDeploymentId) {
+        this.applicationDeploymentId = applicationDeploymentId;
+    }
+
+    public String getComputeResourceId() {
+        return computeResourceId;
+    }
+
+    public void setComputeResourceId(String computeResourceId) {
+        this.computeResourceId = computeResourceId;
+    }
+
+    public String getGatewayExecutionId() {
+        return gatewayExecutionId;
+    }
+
+    public void setGatewayExecutionId(String gatewayExecutionId) {
+        this.gatewayExecutionId = gatewayExecutionId;
+    }
+
+    public Boolean getEnableEmailNotification() {
+        return enableEmailNotification;
+    }
+
+    public void setEnableEmailNotification(Boolean enableEmailNotification) {
+        this.enableEmailNotification = enableEmailNotification;
+    }
+
+    public String getEmailAddresses() {
+        return emailAddresses;
+    }
+
+    public void setEmailAddresses(String emailAddresses) {
+        this.emailAddresses = emailAddresses;
+    }
+
     public ExperimentCatResource create(ResourceType type) throws RegistryException{
        switch (type){
            case PROCESS_ERROR:
@@ -405,6 +450,11 @@ public class ProcessResource extends AbstractExpCatResource {
             process.setProcessDetail(processDetail);
             process.setApplicationInterfaceId(applicationInterfaceId);
             process.setTaskDag(taskDag);
+            process.setComputeResourceId(computeResourceId);
+            process.setApplicationInterfaceId(applicationInterfaceId);
+            process.setGatewayExecutionId(gatewayExecutionId);
+            process.setEnableEmailNotification(enableEmailNotification);
+            process.setEmailAddresses(emailAddresses);
             em.persist(process);
             em.getTransaction().commit();
         } catch (Exception e) {

http://git-wip-us.apache.org/repos/asf/airavata/blob/dce0271e/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/Utils.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/Utils.java b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/Utils.java
index 90fb348..d54b167 100644
--- a/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/Utils.java
+++ b/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/resources/Utils.java
@@ -521,6 +521,11 @@ public class Utils {
             processResource.setProcessDetail(o.getProcessDetail());
             processResource.setApplicationInterfaceId(o.getApplicationInterfaceId());
             processResource.setTaskDag(o.getTaskDag());
+            processResource.setGatewayExecutionId(o.getGatewayExecutionId());
+            processResource.setComputeResourceId(o.getComputeResourceId());
+            processResource.setApplicationInterfaceId(o.getApplicationInterfaceId());
+            processResource.setEnableEmailNotification(o.getEnableEmailNotification());
+            processResource.setEmailAddresses(o.getEmailAddresses());
         }
         return processResource;
     }

http://git-wip-us.apache.org/repos/asf/airavata/blob/dce0271e/modules/registry/registry-core/src/main/java/org/apache/airavata/registry/core/experiment/catalog/utils/ThriftDataModelConversion.java
----------------------------------------------------------------------
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 a149dd6..fecfbc2 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
@@ -336,6 +336,14 @@ public class ThriftDataModelConversion {
             processModel.setProcessDetail(processResource.getProcessDetail());
             processModel.setApplicationInterfaceId(processResource.getApplicationInterfaceId());
             processModel.setTaskDag(processResource.getTaskDag());
+            processModel.setGatewayExecutionId(processResource.getGatewayExecutionId());
+            processModel.setApplicationInterfaceId(processResource.getApplicationInterfaceId());
+            processModel.setComputeResourceId(processResource.getComputeResourceId());
+            processModel.setEnableEmailNotification(processResource.getEnableEmailNotification());
+            if (processModel.isEnableEmailNotification()){
+                String notificationEmails = processResource.getEmailAddresses();
+                processModel.setEmailAddresses(getEmailAddresses(notificationEmails.split(",")));
+            }
 
             processModel.setProcessInputs(getProcessInputs(processResource.getProcessInputs()));
             processModel.setProcessOutputs(getProcessOutputs(processResource.getProcessOutputs()));

http://git-wip-us.apache.org/repos/asf/airavata/blob/dce0271e/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 6ad715c..22c047b 100644
--- a/modules/registry/registry-core/src/main/resources/expcatalog-derby.sql
+++ b/modules/registry/registry-core/src/main/resources/expcatalog-derby.sql
@@ -182,6 +182,11 @@ CREATE TABLE PROCESS (
   PROCESS_DETAIL CLOB,
   APPLICATION_INTERFACE_ID varchar(255),
   TASK_DAG varchar(255),
+  APPLICATION_DEPLOYMENT_ID varchar(255),
+  COMPUTE_RESOURCE_ID varchar(255),
+  GATEWAY_EXECUTION_ID varchar(255),
+  ENABLE_EMAIL_NOTIFICATION BOOLEAN,
+  EMAIL_ADDRESSES CLOB,
   PRIMARY KEY (PROCESS_ID),
   FOREIGN KEY (EXPERIMENT_ID) REFERENCES EXPERIMENT(EXPERIMENT_ID) ON DELETE CASCADE
 );

http://git-wip-us.apache.org/repos/asf/airavata/blob/dce0271e/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 a446386..b056482 100644
--- a/modules/registry/registry-core/src/main/resources/expcatalog-mysql.sql
+++ b/modules/registry/registry-core/src/main/resources/expcatalog-mysql.sql
@@ -184,6 +184,11 @@ CREATE TABLE PROCESS (
   PROCESS_DETAIL text,
   APPLICATION_INTERFACE_ID varchar(255),
   TASK_DAG varchar(255),
+  APPLICATION_DEPLOYMENT_ID varchar(255),
+  COMPUTE_RESOURCE_ID varchar(255),
+  GATEWAY_EXECUTION_ID varchar(255),
+  ENABLE_EMAIL_NOTIFICATION BOOLEAN,
+  EMAIL_ADDRESSES text,
   PRIMARY KEY (PROCESS_ID),
   FOREIGN KEY (EXPERIMENT_ID) REFERENCES EXPERIMENT(EXPERIMENT_ID) ON DELETE CASCADE
 );

http://git-wip-us.apache.org/repos/asf/airavata/blob/dce0271e/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 6ad715c..22c047b 100644
--- a/modules/registry/registry-core/src/test/resources/expcatalog-derby.sql
+++ b/modules/registry/registry-core/src/test/resources/expcatalog-derby.sql
@@ -182,6 +182,11 @@ CREATE TABLE PROCESS (
   PROCESS_DETAIL CLOB,
   APPLICATION_INTERFACE_ID varchar(255),
   TASK_DAG varchar(255),
+  APPLICATION_DEPLOYMENT_ID varchar(255),
+  COMPUTE_RESOURCE_ID varchar(255),
+  GATEWAY_EXECUTION_ID varchar(255),
+  ENABLE_EMAIL_NOTIFICATION BOOLEAN,
+  EMAIL_ADDRESSES CLOB,
   PRIMARY KEY (PROCESS_ID),
   FOREIGN KEY (EXPERIMENT_ID) REFERENCES EXPERIMENT(EXPERIMENT_ID) ON DELETE CASCADE
 );


[2/2] airavata git commit: Finishing some of the todo's in ExperimentRegistry.java

Posted by sc...@apache.org.
Finishing some of the todo's in ExperimentRegistry.java


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

Branch: refs/heads/master
Commit: 6caf4787132b8c2108773d629a8d8f5f1334e85a
Parents: dce0271
Author: Supun Nakandala <sc...@apache.org>
Authored: Fri Jun 26 03:13:35 2015 +0530
Committer: Supun Nakandala <sc...@apache.org>
Committed: Fri Jun 26 03:13:35 2015 +0530

----------------------------------------------------------------------
 .../catalog/impl/ExperimentCatalogImpl.java     |   2 +-
 .../catalog/impl/ExperimentRegistry.java        | 197 ++++++++++++-------
 .../catalog/resources/TaskResource.java         |  27 ++-
 .../src/main/resources/expcatalog-derby.sql     |   2 +-
 .../src/main/resources/expcatalog-mysql.sql     |   2 +-
 .../src/test/resources/expcatalog-derby.sql     |   2 +-
 .../airavata/registry/cpi/utils/Constants.java  |  13 ++
 7 files changed, 164 insertions(+), 81 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/6caf4787/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 f9648ff..013b79e 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
@@ -333,7 +333,7 @@ public class ExperimentCatalogImpl implements ExperimentCatalog {
                 case PROCESS:
                     return experimentRegistry.getProcess((String) identifier, null);
                 case PROCESS_RESOURCE_SCHEDULE:
-                    return experimentRegistry.getProcessResourceSchedule((String) identifier, null);
+                    return experimentRegistry.getProcessResourceSchedule((String) identifier);
                 case PROCESS_INPUT:
                     return experimentRegistry.getProcessInputs((String) identifier);
                 case PROCESS_OUTPUT:

http://git-wip-us.apache.org/repos/asf/airavata/blob/6caf4787/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 69e3409..0d5e9c5 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
@@ -407,7 +407,8 @@ public class ExperimentRegistry {
     public String addTask(TaskModel task, String processID) throws RegistryException {
         try {
             TaskResource taskResource = new TaskResource();
-            taskResource.setParentProcessId(getProcessID(processID));
+            taskResource.setTaskId(getTaskID(processID));
+            taskResource.setParentProcessId(task.getParentProcessId());
             taskResource.setTaskType(task.getTaskType().toString());
             taskResource.setCreationTime(AiravataUtils.getTime(task.getCreationTime()));
             taskResource.setLastUpdateTime(AiravataUtils.getTime(task.getLastUpdateTime()));
@@ -806,6 +807,7 @@ public class ExperimentRegistry {
         try {
             ProcessResource processResource = new ProcessResource();
             TaskResource taskResource = processResource.getTask(taskID);
+            taskResource.setTaskId(task.getTaskId());
             taskResource.setParentProcessId(task.getParentProcessId());
             taskResource.setTaskType(task.getTaskType().toString());
             taskResource.setCreationTime(AiravataUtils.getTime(task.getCreationTime()));
@@ -841,7 +843,7 @@ public class ExperimentRegistry {
         try {
             TaskResource taskResource = new TaskResource();
             taskResource.setTaskId(taskId);
-            JobResource jobResource = taskResource.getJob(taskId, jobId);
+            JobResource jobResource = taskResource.getJob(jobId);
             jobResource.setJobId(jobId);
             jobResource.setTaskId(job.getTaskId());
             jobResource.setJobDescription(job.getJobDescription());
@@ -865,7 +867,6 @@ public class ExperimentRegistry {
     }
 
 
-    //TODO
     public void updateExperimentField(String expID, String fieldName, Object value) throws RegistryException {
         try {
             ExperimentResource experiment = gatewayResource.getExperiment(expID);
@@ -934,20 +935,6 @@ public class ExperimentRegistry {
             ExperimentResource resource = gatewayResource.getExperiment(expId);
             if (fieldName == null) {
                 return ThriftDataModelConversion.getExperiment(resource);
-            } else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.USER_NAME)) {
-                return resource.getUserName();
-            }else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.GATEWAY_ID)) {
-                return resource.getGatewayId();
-            }else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.GATEWAY_EXECUTION_ID)) {
-                return resource.getGatewayExecutionId();
-            } else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.EXPERIMENT_NAME)) {
-                return resource.getExperimentName();
-            } else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.DESCRIPTION)) {
-                return resource.getDescription();
-            } else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.EXECUTION_ID)) {
-                return resource.getExecutionId();
-            } else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.PROJECT_ID)) {
-                return resource.getProjectId();
             } else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.EXPERIMENT_INPUTS)) {
                 return ThriftDataModelConversion.getExpInputs(resource.getExperimentInputs());
             } else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.EXPERIMENT_OUTPUTS)) {
@@ -959,7 +946,7 @@ public class ExperimentRegistry {
             } else if (fieldName.equals(Constants.FieldConstants.ExperimentConstants.USER_CONFIGURATION_DATA)) {
                 return ThriftDataModelConversion.getUserConfigData(resource.getUserConfigurationDataResource());
             } else {
-                logger.error("Unsupported field name for experiment basic data..");
+                logger.error("Unsupported field name for experiment data..");
             }
         } catch (Exception e) {
             logger.error("Error while getting experiment info...", e);
@@ -990,12 +977,6 @@ public class ExperimentRegistry {
             UserConfigurationDataResource userConfigData = resource.getUserConfigurationDataResource();
             if (fieldName == null) {
                 return ThriftDataModelConversion.getUserConfigData(userConfigData);
-            } else if (fieldName.equals(Constants.FieldConstants.UserConfigurationDataConstants.AIRAVATA_AUTO_SCHEDULE)) {
-                return userConfigData.getAiravataAutoSchedule();
-            } else if (fieldName.equals(Constants.FieldConstants.UserConfigurationDataConstants.OVERRIDE_MANUAL_PARAMS)) {
-                return userConfigData.getOverrideManualScheduledParams();
-            } else if (fieldName.equals(Constants.FieldConstants.UserConfigurationDataConstants.SHARE_EXP)) {
-                return userConfigData.getShareExperimentPublically();
             } else if (fieldName.equals(Constants.FieldConstants.UserConfigurationDataConstants.COMPUTATIONAL_RESOURCE_SCHEDULING)){
                 return ThriftDataModelConversion.getComputationalResourceScheduling(userConfigData);
             } else {
@@ -1008,15 +989,24 @@ public class ExperimentRegistry {
         return null;
     }
 
-    //Todo
     public Object getProcess(String processId, String fieldName) throws RegistryException {
         try {
             ExperimentResource experimentResource = new ExperimentResource();
             ProcessResource resource = experimentResource.getProcess(processId);
             if (fieldName == null) {
                 return ThriftDataModelConversion.getProcesModel(resource);
+            } else if (fieldName.equals(Constants.FieldConstants.ProcessConstants.PROCESS_ERROR)) {
+                return ThriftDataModelConversion.getErrorModel(resource.getProcessError());
+            } else if (fieldName.equals(Constants.FieldConstants.ProcessConstants.PROCESS_STATUS)) {
+                return ThriftDataModelConversion.getProcessStatus(resource.getProcessStatus());
+            } else if (fieldName.equals(Constants.FieldConstants.ProcessConstants.PROCESS_INPUTS)) {
+                return ThriftDataModelConversion.getProcessInputs(resource.getProcessInputs());
+            } else if (fieldName.equals(Constants.FieldConstants.ProcessConstants.PROCESS_OUTPUTS)) {
+                return ThriftDataModelConversion.getErrorModel(resource.getProcessOutputs());
+            } else if (fieldName.equals(Constants.FieldConstants.ProcessConstants.PROCESS_RESOURCE_SCHEDULE)) {
+                return ThriftDataModelConversion.getProcessResourceSchedule(resource.getProcessResourceSchedule());
             } else {
-                logger.error("Unsupported field name for process basic data..");
+                logger.error("Unsupported field name for process data..");
             }
         }catch (Exception e) {
             logger.error("Error while getting process data..", e);
@@ -1025,24 +1015,24 @@ public class ExperimentRegistry {
         return null;
     }
 
-    public Object getProcessError(String identifier) {
-        return null;
+    public Object getProcessError(String processId) throws RegistryException {
+        return getProcess(processId, Constants.FieldConstants.ProcessConstants.PROCESS_ERROR);
     }
 
-    public Object getProcessStatus(String identifier) {
-        return null;
+    public Object getProcessStatus(String processId) throws RegistryException {
+        return getProcess(processId, Constants.FieldConstants.ProcessConstants.PROCESS_STATUS);
     }
 
-    public Object getProcessInputs(String identifier) {
-        return null;
+    public Object getProcessInputs(String processId) throws RegistryException {
+        return getProcess(processId, Constants.FieldConstants.ProcessConstants.PROCESS_INPUTS);
     }
 
-    public Object getProcessOutputs(String identifier) {
-        return null;
+    public Object getProcessOutputs(String processId) throws RegistryException {
+        return getProcess(processId, Constants.FieldConstants.ProcessConstants.PROCESS_OUTPUTS);
     }
 
-    public Object getProcessResourceSchedule(String identifier, Object o) {
-        return null;
+    public Object getProcessResourceSchedule(String processId) throws RegistryException {
+        return getProcess(processId, Constants.FieldConstants.ProcessConstants.PROCESS_RESOURCE_SCHEDULE);
     }
 
     public Object getTask(String taskId, String fieldName) throws RegistryException {
@@ -1051,8 +1041,12 @@ public class ExperimentRegistry {
             TaskResource resource = processResource.getTask(taskId);
             if (fieldName == null) {
                 return ThriftDataModelConversion.getTaskModel(resource);
+            } else if (fieldName.equals(Constants.FieldConstants.TaskConstants.TASK_ERROR)) {
+                return ThriftDataModelConversion.getErrorModel(resource.getTaskError());
+            } else if (fieldName.equals(Constants.FieldConstants.TaskConstants.TASK_STATUS)) {
+                return ThriftDataModelConversion.getTaskStatus(resource.getTaskStatus());
             } else {
-                logger.error("Unsupported field name for task basic data..");
+                logger.error("Unsupported field name for task data..");
             }
         }catch (Exception e) {
             logger.error("Error while getting task data..", e);
@@ -1061,12 +1055,12 @@ public class ExperimentRegistry {
         return null;
     }
 
-    public Object getTaskError(String identifier) {
-        return null;
+    public Object getTaskError(String taskId) throws RegistryException {
+        return getTask(taskId, Constants.FieldConstants.TaskConstants.TASK_ERROR);
     }
 
-    public Object getTaskStatus(String identifier) {
-        return null;
+    public Object getTaskStatus(String taskId) throws RegistryException {
+        return getTask(taskId, Constants.FieldConstants.TaskConstants.TASK_STATUS);
     }
 
     public Object getJob(CompositeIdentifier cis, String fieldName) throws RegistryException {
@@ -1075,9 +1069,11 @@ public class ExperimentRegistry {
         try {
             TaskResource taskResource = new TaskResource();
             taskResource.setTaskId(taskID);
-            JobResource resource = taskResource.getJob(taskID, jobId);
+            JobResource resource = taskResource.getJob(jobId);
             if (fieldName == null) {
                 return ThriftDataModelConversion.getJobModel(resource);
+            } else if (fieldName.equals(Constants.FieldConstants.JobConstants.JOB_STATUS)) {
+                return ThriftDataModelConversion.getJobStatus(resource.getJobStatus());
             } else {
                 logger.error("Unsupported field name for job basic data..");
             }
@@ -1088,8 +1084,8 @@ public class ExperimentRegistry {
         return null;
     }
 
-    public Object getJobStatus(CompositeIdentifier cis) {
-        return null;
+    public Object getJobStatus(CompositeIdentifier cis) throws RegistryException {
+        return getJob(cis, Constants.FieldConstants.JobConstants.JOB_STATUS);
     }
 
 
@@ -1130,17 +1126,70 @@ public class ExperimentRegistry {
         return experiments;
     }
 
-    //Todo
-    public List<ProcessModel> getProcessList(String fieldName, Object value) {
-        return null;
+    public List<ProcessModel> getProcessList(String fieldName, Object value) throws RegistryException {
+        List<ProcessModel> processes = new ArrayList<ProcessModel>();
+        try {
+            if (fieldName.equals(Constants.FieldConstants.ProcessConstants.EXPERIMENT_ID)) {
+                ExperimentResource experimentResource = new ExperimentResource();
+                experimentResource.setExperimentId((String) value);
+                List<ProcessResource> resources = experimentResource.getProcessList();
+                for (ProcessResource processResource : resources) {
+                    ProcessModel processModel = ThriftDataModelConversion.getProcesModel(processResource);
+                    processes.add(processModel);
+                }
+                return processes;
+            } else {
+                logger.error("Unsupported field name to retrieve process list...");
+            }
+        } catch (Exception e) {
+            logger.error("Error while getting process list...", e);
+            throw new RegistryException(e);
+        }
+        return processes;
     }
 
-    public List<TaskModel> getTaskList(String fieldName, Object value) {
-        return null;
+    public List<TaskModel> getTaskList(String fieldName, Object value) throws RegistryException {
+        List<TaskModel> tasks = new ArrayList<TaskModel>();
+        try {
+            if (fieldName.equals(Constants.FieldConstants.TaskConstants.PARENT_PROCESS_ID)) {
+                ProcessResource processResource = new ProcessResource();
+                processResource.setProcessId((String) value);
+                List<TaskResource> resources = processResource.getTaskList();
+                for (TaskResource taskResource : resources) {
+                    TaskModel taskModel = ThriftDataModelConversion.getTaskModel(taskResource);
+                    tasks.add(taskModel);
+                }
+                return tasks;
+            } else {
+                logger.error("Unsupported field name to retrieve task list...");
+            }
+        } catch (Exception e) {
+            logger.error("Error while getting task list...", e);
+            throw new RegistryException(e);
+        }
+        return tasks;
     }
 
-    public List<JobModel> getJobList(String fieldName, Object value) {
-        return null;
+    public List<JobModel> getJobList(String fieldName, Object value) throws RegistryException {
+        List<JobModel> jobs = new ArrayList<JobModel>();
+        try {
+            if (fieldName.equals(Constants.FieldConstants.JobConstants.TASK_ID)) {
+                TaskResource taskResource = new TaskResource();
+                taskResource.setTaskId((String) value);
+                List<JobResource> resources = taskResource.getJobList();
+                for (JobResource jobResource : resources) {
+                    JobModel jobModel = ThriftDataModelConversion.getJobModel(jobResource);
+                    jobs.add(jobModel);
+                }
+                return jobs;
+            } else {
+                logger.error("Unsupported field name to retrieve job list...");
+            }
+        } catch (Exception e) {
+            logger.error("Error while getting job list...", e);
+            throw new RegistryException(e);
+        }
+        return jobs;
     }
 
     public List<ExperimentModel> getExperimentList(String fieldName, Object value, int limit, int offset,
@@ -1481,11 +1530,6 @@ public class ExperimentRegistry {
         return taskId + "_" + UUID.randomUUID();
     }
 
-    public String getJobID(String taskId) {
-        String jobId = taskId.replaceAll("\\s", "");
-        return jobId + "_" + UUID.randomUUID();
-    }
-
     public String getStatusID(String parentId) {
         String status = parentId.replaceAll("\\s", "");
         return status + "_" + UUID.randomUUID();
@@ -1542,37 +1586,40 @@ public class ExperimentRegistry {
             if (nextState == null) {
                 return false;
             }
-            //TODO
-            switch (oldState) {
-                case CREATED:
-                    return true;
-                default:
-                    return false;
-            }
+            return true;
+//            TODO - need the state machine to complete these data
+//            switch (oldState) {
+//                case CREATED:
+//                    return true;
+//                default:
+//                    return false;
+//            }
         } else if (object1 instanceof TaskState && object2 instanceof TaskState) {
             TaskState oldState = (TaskState) object1;
             TaskState nextState = (TaskState) object2;
             if (nextState == null) {
                 return false;
             }
-            //TODO
-            switch (oldState) {
-                case CREATED:
-                    return true;
-                default:
-                    return false;
-            }
+            return true;
+//            TODO - need the state machine to complete these data
+//            switch (oldState) {
+//                case CREATED:
+//                    return true;
+//                default:
+//                    return false;
+//            }
         }else if (object1 instanceof JobState && object2 instanceof JobState) {
             JobState oldState = (JobState) object1;
             JobState nextState = (JobState) object2;
             if (nextState == null) {
                 return false;
             }
-            //TODO
-            switch (oldState) {
-                default:
-                    return false;
-            }
+            return true;
+//            TODO - need the state machine to complete these data
+//            switch (oldState) {
+//                default:
+//                    return false;
+//            }
         }
         return false;
     }

http://git-wip-us.apache.org/repos/asf/airavata/blob/6caf4787/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 5d69bc1..f0e5dec 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
@@ -269,6 +269,20 @@ public class TaskResource extends AbstractExpCatResource {
                         }
                     }
                     break;
+                case JOB:
+                    generator = new QueryGenerator(JOB);
+                    generator.setParameter(JobConstants.TASK_ID, taskId);
+                    q = generator.selectQuery(em);
+                    results = q.getResultList();
+                    if (results.size() != 0) {
+                        for (Object result : results) {
+                            Job job = (Job) result;
+                            JobResource jobResource =
+                                    (JobResource) Utils.getResource(ResourceType.JOB, job);
+                            resourceList.add(jobResource);
+                        }
+                    }
+                    break;
                 default:
                     em.getTransaction().commit();
                     em.close();
@@ -374,8 +388,17 @@ public class TaskResource extends AbstractExpCatResource {
         }
     }
 
-    public JobResource getJob(String taskId, String jobId) throws RegistryException {
-        this.taskId = taskId;
+    public JobResource getJob(String jobId) throws RegistryException {
         return (JobResource) get(ResourceType.JOB, jobId);
     }
+
+    public List<JobResource> getJobList() throws RegistryException {
+        List<JobResource> jobResources = new ArrayList();
+        List<ExperimentCatResource> resources = get(ResourceType.JOB);
+        for (ExperimentCatResource resource : resources) {
+            JobResource jobResource = (JobResource) resource;
+            jobResources.add(jobResource);
+        }
+        return jobResources;
+    }
 }
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/6caf4787/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 22c047b..2f49394 100644
--- a/modules/registry/registry-core/src/main/resources/expcatalog-derby.sql
+++ b/modules/registry/registry-core/src/main/resources/expcatalog-derby.sql
@@ -317,7 +317,7 @@ CREATE TABLE JOB_STATUS (
   TIME_OF_STATE_CHANGE  timestamp DEFAULT '0000-00-00 00:00:00',
   REASON CLOB,
   PRIMARY KEY (STATUS_ID, JOB_ID, TASK_ID),
-  FOREIGN KEY (JOB_ID) REFERENCES JOB(JOB_ID) ON DELETE CASCADE
+  FOREIGN KEY (JOB_ID, TASK_ID) REFERENCES JOB(JOB_ID, TASK_ID) ON DELETE CASCADE
 );
 
 CREATE TABLE CONFIGURATION

http://git-wip-us.apache.org/repos/asf/airavata/blob/6caf4787/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 b056482..f9bafae 100644
--- a/modules/registry/registry-core/src/main/resources/expcatalog-mysql.sql
+++ b/modules/registry/registry-core/src/main/resources/expcatalog-mysql.sql
@@ -319,7 +319,7 @@ CREATE TABLE JOB_STATUS (
   TIME_OF_STATE_CHANGE timestamp DEFAULT '0000-00-00 00:00:00' ON UPDATE CURRENT_TIMESTAMP,
   REASON LONGTEXT,
   PRIMARY KEY (STATUS_ID, JOB_ID, TASK_ID),
-  FOREIGN KEY (JOB_ID) REFERENCES JOB(JOB_ID) ON DELETE CASCADE
+  FOREIGN KEY (JOB_ID, TASK_ID) REFERENCES JOB(JOB_ID, TASK_ID) ON DELETE CASCADE
 );
 
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/6caf4787/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 22c047b..2f49394 100644
--- a/modules/registry/registry-core/src/test/resources/expcatalog-derby.sql
+++ b/modules/registry/registry-core/src/test/resources/expcatalog-derby.sql
@@ -317,7 +317,7 @@ CREATE TABLE JOB_STATUS (
   TIME_OF_STATE_CHANGE  timestamp DEFAULT '0000-00-00 00:00:00',
   REASON CLOB,
   PRIMARY KEY (STATUS_ID, JOB_ID, TASK_ID),
-  FOREIGN KEY (JOB_ID) REFERENCES JOB(JOB_ID) ON DELETE CASCADE
+  FOREIGN KEY (JOB_ID, TASK_ID) REFERENCES JOB(JOB_ID, TASK_ID) ON DELETE CASCADE
 );
 
 CREATE TABLE CONFIGURATION

http://git-wip-us.apache.org/repos/asf/airavata/blob/6caf4787/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/utils/Constants.java
----------------------------------------------------------------------
diff --git a/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/utils/Constants.java b/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/utils/Constants.java
index e466f21..ab56285 100644
--- a/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/utils/Constants.java
+++ b/modules/registry/registry-cpi/src/main/java/org/apache/airavata/registry/cpi/utils/Constants.java
@@ -65,11 +65,24 @@ public class Constants {
         public final class ProcessConstants {
             public static final String EXPERIMENT_ID = "experimentId";
             public static final String PROCESS_ID = "processId";
+            public static final String PROCESS_STATUS = "processStatus";
+            public static final String PROCESS_ERROR = "processError";
+            public static final String PROCESS_INPUTS = "processInputs";
+            public static final String PROCESS_OUTPUTS = "processOutputs";
+            public static final String PROCESS_RESOURCE_SCHEDULE = "processResourceSchedule";
         }
 
         public final class TaskConstants {
             public static final String PARENT_PROCESS_ID = "parentProcessId";
             public static final String TASK_ID = "taskId";
+            public static final String TASK_STATUS = "taskStatus";
+            public static final String TASK_ERROR = "taskError";
+        }
+
+        public final class JobConstants {
+            public static final String JOB_ID = "jobId";
+            public static final String TASK_ID = "taskId";
+            public static final String JOB_STATUS = "taskStatus";
         }
     }
 }