Fixed registry issues with input data object and update runProcessOutflow method


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

Branch: refs/heads/master
Commit: 4c7dcc0a6c18ce6d4d78d885243176a41fb72cfa
Parents: 706edf8
Author: Shameera Rathanyaka <[email protected]>
Authored: Tue Jul 14 10:54:13 2015 -0400
Committer: Shameera Rathanyaka <[email protected]>
Committed: Tue Jul 14 10:54:13 2015 -0400

----------------------------------------------------------------------
 .../client/samples/CreateLaunchExperiment.java  | 53 ++++++++++++++++++--
 .../apache/airavata/gfac/core/GFacUtils.java    |  3 +-
 .../airavata/gfac/impl/GFacEngineImpl.java      | 49 +++++++++++-------
 .../catalog/impl/ExperimentRegistry.java        |  4 +-
 4 files changed, 85 insertions(+), 24 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/4c7dcc0a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperiment.java
----------------------------------------------------------------------
diff --git 
a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperiment.java
 
b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperiment.java
index c10a271..0dd240a 100644
--- 
a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperiment.java
+++ 
b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/samples/CreateLaunchExperiment.java
@@ -58,10 +58,10 @@ public class CreateLaunchExperiment {
     public static final String DEFAULT_GATEWAY = "default";
     private static Airavata.Client airavataClient;
 
-    private static String echoAppId = 
"Echo_ce3f152e-7757-41ea-880d-cc868063fb1b";
-    private static String mpiAppId = 
"HelloMPI_bfd56d58-6085-4b7f-89fc-646576830518";
+    private static String echoAppId = 
"Echo_b730bf47-6a22-44ac-91f3-91bd463bd627";
+    private static String mpiAppId = 
"HelloMPI_71b6f45e-40c2-46e9-a417-160b2640fcb9";
     private static String wrfAppId = 
"WRF_7ad5da38-c08b-417c-a9ea-da9298839762";
-    private static String amberAppId = 
"Amber_357ba0ea-038c-4f14-b5f3-16bab331031b";
+    private static String amberAppId = 
"Amber_74ad818e-7633-476a-b861-952de9b0a529";
     private static String gromacsAppId = 
"GROMACS_05622038-9edd-4cb1-824e-0b7cb993364b";
     private static String espressoAppId = 
"ESPRESSO_10cc2820-5d0b-4c63-9546-8a8b595593c1";
     private static String lammpsAppId = 
"LAMMPS_2472685b-8acf-497e-aafe-cc66fe5f4cb6";
@@ -1591,3 +1591,50 @@ public class CreateLaunchExperiment {
         }
     }
 }
+
+/*
+*  #### Registering Application Interfaces ####
+
+#### Registering Echo Interface ####
+
+Local Echo Application Interface Id Echo_57a8f843-4298-46a7-bdac-801adeb77e9f
+#### Registering Echo Interface ####
+
+Echo Application Interface Id Echo_b730bf47-6a22-44ac-91f3-91bd463bd627
+#### Registering MPI Interface ####
+
+MPI Application Interface Id HelloMPI_71b6f45e-40c2-46e9-a417-160b2640fcb9
+#### Registering Amber Interface ####
+
+Amber Application Interface Id Amber_74ad818e-7633-476a-b861-952de9b0a529
+#### Registering AutoDock Interface ####
+
+AutoDock Application Interface Id AutoDock_6e1032f4-389c-4e35-bdc8-2c3955f51721
+#### Registering Espresso Interface ####
+
+Espresso Application Interface Id ESPRESSO_af507be5-5ab8-499d-b1c6-51c543968bb6
+#### Registering Gromacs Interface ####
+
+Gromacs Application Interface Id GROMACS_9476b548-72ce-4550-bde6-959fd513ead8
+#### Registering LAMMPS Interface ####
+
+LAMMPS Application Interface Id LAMMPS_73d62891-a0d6-4407-9e89-6cd7d02e5a16
+#### Registering Gamess Interface ####
+
+GAMESS Application Interface Id Gamess_2de57c7d-f806-4bb2-956a-c42bfa7851cc
+#### Registering NWChem Interface ####
+
+NWChem Application Interface Id NWChem_57cdc71b-b47b-4b88-b949-b35d57c40e0c
+#### Registering Trinity Interface ####
+
+Trinity Application Interface Id Trinity_fe1e411a-39e1-497d-b988-3b4159ce3331
+#### Registering WRF Interface ####
+
+WRF Application Interface Id WRF_434f8543-91ac-4f59-bca1-bf40be8d6f5a
+#### Registering Tinker Monte Application Interface ####
+Monte Application Interface Id 
Tinker_Monte_f3949619-faf5-43d8-9c52-3ace4ca9f258
+#### Registering Gaussian Application Interface ####
+Gaussian Application Interface Id Gaussian_a212c1d7-75ca-46c1-b11a-c8d431b5f05f
+#### Registering Ultrascan Application Interface ####
+Ultrascan Application Interface Id 
Ultrascan_3749018d-2cee-407b-a7cd-fdf86d525ca5
+*/
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/airavata/blob/4c7dcc0a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/GFacUtils.java
----------------------------------------------------------------------
diff --git 
a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/GFacUtils.java
 
b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/GFacUtils.java
index b1321d6..b00240b 100644
--- 
a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/GFacUtils.java
+++ 
b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/GFacUtils.java
@@ -244,7 +244,8 @@ public class GFacUtils {
             status.setJobState(state);
             jobModel.setJobStatus(status);
             
status.setTimeOfStateChange(AiravataUtils.getCurrentTimestamp().getTime());
-            experimentCatalog.add(ExpCatChildDataType.JOB_STATUS, status, 
jobModel.getJobId());
+            CompositeIdentifier ids = new 
CompositeIdentifier(taskContext.getTaskId(), jobModel.getJobId());
+                       experimentCatalog.add(ExpCatChildDataType.JOB_STATUS, 
status, ids);
             JobIdentifier identifier = new JobIdentifier(jobModel.getJobId(), 
taskContext.getTaskModel().getTaskId(),
                     processContext.getProcessId(), 
processContext.getProcessModel().getExperimentId(),
                     processContext.getGatewayId());

http://git-wip-us.apache.org/repos/asf/airavata/blob/4c7dcc0a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/GFacEngineImpl.java
----------------------------------------------------------------------
diff --git 
a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/GFacEngineImpl.java
 
b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/GFacEngineImpl.java
index d65041c..3bea455 100644
--- 
a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/GFacEngineImpl.java
+++ 
b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/GFacEngineImpl.java
@@ -188,7 +188,7 @@ public class GFacEngineImpl implements GFacEngine {
                // create new task model for this task
                TaskModel taskModel = new TaskModel();
                taskModel.setParentProcessId(processContext.getProcessId());
-               taskModel.setCreationTime(new Date().getTime());
+               
taskModel.setCreationTime(AiravataUtils.getCurrentTimestamp().getTime());
                taskModel.setLastUpdateTime(taskModel.getCreationTime());
                taskModel.setTaskStatus(new TaskStatus(TaskState.CREATED));
                taskModel.setTaskType(TaskTypes.DATA_STAGING);
@@ -201,6 +201,25 @@ public class GFacEngineImpl implements GFacEngine {
                return taskCtx;
        }
 
+       private TaskContext getDataStagingTaskContext(ProcessContext 
processContext, OutputDataObjectType processOutput) throws TException {
+               TaskContext taskCtx = new TaskContext();
+               taskCtx.setParentProcessContext(processContext);
+               // create new task model for this task
+               TaskModel taskModel = new TaskModel();
+               taskModel.setParentProcessId(processContext.getProcessId());
+               
taskModel.setCreationTime(AiravataUtils.getCurrentTimestamp().getTime());
+               taskModel.setLastUpdateTime(taskModel.getCreationTime());
+               taskModel.setTaskStatus(new TaskStatus(TaskState.CREATED));
+               taskModel.setTaskType(TaskTypes.DATA_STAGING);
+               // create data staging sub task model
+               DataStagingTaskModel submodel = new DataStagingTaskModel();
+               submodel.setSource(processOutput.getValue());
+               submodel.setDestination(processContext.getWorkingDir());
+               
taskModel.setSubTaskModel(ThriftUtils.serializeThriftObject(submodel));
+               taskCtx.setTaskModel(taskModel);
+               return taskCtx;
+       }
+
        /**
         * Persist task model
         * @param taskContext
@@ -236,8 +255,7 @@ public class GFacEngineImpl implements GFacEngine {
        @Override
        public void runProcessOutflow(ProcessContext processContext) throws 
GFacException {
                TaskContext taskCtx = null;
-               TaskModel taskModel = null;
-               List<TaskContext> taskChain = new ArrayList<>();
+               processContext.setProcessStatus(new 
ProcessStatus(ProcessState.OUTPUT_DATA_STAGING));
                List<OutputDataObjectType> processOutputs = 
processContext.getProcessModel().getProcessOutputs();
                for (OutputDataObjectType processOutput : processOutputs) {
                        DataType type = processOutput.getType();
@@ -249,26 +267,21 @@ public class GFacEngineImpl implements GFacEngine {
                                case URI:
                                        // TODO : Provide data staging data 
model
                                        try {
-                                               taskCtx = new TaskContext();
-                                               
taskCtx.setParentProcessContext(processContext);
-
-                                               // create new task model for 
this task
-                                               taskModel = new TaskModel();
-                                               
taskModel.setParentProcessId(processContext.getProcessId());
-                                               taskModel.setTaskStatus(new 
TaskStatus(TaskState.CREATED));
-                                               
taskModel.setTaskType(TaskTypes.DATA_STAGING);
-                                               // create data staging sub task 
model
-                                               DataStagingTaskModel submodel = 
new DataStagingTaskModel();
-                                               
submodel.setSource(processContext.getWorkingDir() + "/" + 
processOutput.getValue());
-                                               
submodel.setDestination(processOutput.getValue());
-                                               
taskModel.setSubTaskModel(ThriftUtils.serializeThriftObject(submodel));
-                                               taskChain.add(taskCtx);
+                                               taskCtx = 
getDataStagingTaskContext(processContext, processOutput);
                                        } catch (TException e) {
-                                               throw new GFacException("Thift 
model to byte[] convertion issue", e);
+                                               throw new GFacException("Thrift 
model to byte[] convertion issue", e);
                                        }
+                                       
GFacUtils.saveAndPublishTaskStatus(taskCtx);
+                                       Task dMoveTask = 
Factory.getDataMovementTask(processContext.getDataMovementProtocol());
+                                       executeTask(taskCtx, dMoveTask);
+                                       break;
+                               default:
+                                       // nothing to do
                                        break;
                        }
                }
+               processContext.setProcessStatus(new 
ProcessStatus(ProcessState.POST_PROCESSING));
+//             taskCtx = getEnvCleanupTaskContext(processContext);
 
        }
 

http://git-wip-us.apache.org/repos/asf/airavata/blob/4c7dcc0a/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 1a2eacf..1f9e7f0 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
@@ -164,7 +164,7 @@ public class ExperimentRegistry {
                 
resource.setApplicationArgument(input.getApplicationArgument());
                 resource.setInputOrder(input.getInputOrder());
                 resource.setIsRequired(input.isIsRequired());
-                resource.setIsRequired(input.isRequiredToAddedToCommandLine());
+                
resource.setRequiredToAddedToCmd(input.isRequiredToAddedToCommandLine());
                 resource.save();
             }
         } catch (Exception e) {
@@ -326,7 +326,7 @@ public class ExperimentRegistry {
                 
resource.setApplicationArgument(input.getApplicationArgument());
                 resource.setInputOrder(input.getInputOrder());
                 resource.setIsRequired(input.isIsRequired());
-                resource.setIsRequired(input.isRequiredToAddedToCommandLine());
+                
resource.setRequiredToAddedToCmd(input.isRequiredToAddedToCommandLine());
                 resource.save();
             }
             return processID;

Reply via email to