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;
