Search in sources :

Example 11 with TaskModel

use of org.apache.airavata.model.task.TaskModel in project airavata by apache.

the class GFacEngineImpl method getDataStagingTaskContext.

private TaskContext getDataStagingTaskContext(ProcessContext processContext, OutputDataObjectType processOutput) throws TException, TaskException, GFacException {
    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());
    TaskStatus taskStatus = new TaskStatus(TaskState.CREATED);
    taskStatus.setTimeOfStateChange(AiravataUtils.getCurrentTimestamp().getTime());
    taskModel.setTaskStatuses(Arrays.asList(taskStatus));
    taskModel.setTaskType(TaskTypes.DATA_STAGING);
    // create data staging sub task model
    String remoteOutputDir = processContext.getOutputDir();
    remoteOutputDir = remoteOutputDir.endsWith("/") ? remoteOutputDir : remoteOutputDir + "/";
    DataStagingTaskModel submodel = new DataStagingTaskModel();
    ServerInfo serverInfo = processContext.getComputeResourceServerInfo();
    URI source = null;
    try {
        source = new URI(processContext.getDataMovementProtocol().name(), serverInfo.getHost(), serverInfo.getUserName(), serverInfo.getPort(), remoteOutputDir + processOutput.getValue(), null, null);
    } catch (URISyntaxException e) {
        throw new TaskException("Error while constructing source file URI");
    }
    submodel.setSource(source.toString());
    // We don't know destination location at this time, data staging task will set this.
    // because destination is required field we set dummy destination
    submodel.setDestination("dummy://temp/file/location");
    taskModel.setSubTaskModel(ThriftUtils.serializeThriftObject(submodel));
    taskCtx.setTaskModel(taskModel);
    taskCtx.setProcessOutput(processOutput);
    return taskCtx;
}
Also used : TaskContext(org.apache.airavata.gfac.core.context.TaskContext) TaskException(org.apache.airavata.gfac.core.task.TaskException) ServerInfo(org.apache.airavata.gfac.core.cluster.ServerInfo) DataStagingTaskModel(org.apache.airavata.model.task.DataStagingTaskModel) URISyntaxException(java.net.URISyntaxException) TaskStatus(org.apache.airavata.model.status.TaskStatus) URI(java.net.URI) EnvironmentSetupTaskModel(org.apache.airavata.model.task.EnvironmentSetupTaskModel) JobSubmissionTaskModel(org.apache.airavata.model.task.JobSubmissionTaskModel) MonitorTaskModel(org.apache.airavata.model.task.MonitorTaskModel) DataStagingTaskModel(org.apache.airavata.model.task.DataStagingTaskModel) TaskModel(org.apache.airavata.model.task.TaskModel)

Aggregations

TaskModel (org.apache.airavata.model.task.TaskModel)11 DataStagingTaskModel (org.apache.airavata.model.task.DataStagingTaskModel)5 EnvironmentSetupTaskModel (org.apache.airavata.model.task.EnvironmentSetupTaskModel)5 JobSubmissionTaskModel (org.apache.airavata.model.task.JobSubmissionTaskModel)5 MonitorTaskModel (org.apache.airavata.model.task.MonitorTaskModel)5 RegistryException (org.apache.airavata.registry.cpi.RegistryException)4 TaskContext (org.apache.airavata.gfac.core.context.TaskContext)3 TaskStatus (org.apache.airavata.model.status.TaskStatus)3 TException (org.apache.thrift.TException)3 URI (java.net.URI)2 URISyntaxException (java.net.URISyntaxException)2 ApplicationSettingsException (org.apache.airavata.common.exception.ApplicationSettingsException)2 GFacException (org.apache.airavata.gfac.core.GFacException)2 JobModel (org.apache.airavata.model.job.JobModel)2 ProcessModel (org.apache.airavata.model.process.ProcessModel)2 JobStatus (org.apache.airavata.model.status.JobStatus)2 RegistryServiceException (org.apache.airavata.registry.api.exception.RegistryServiceException)2 ArrayList (java.util.ArrayList)1 Date (java.util.Date)1 ServerInfo (org.apache.airavata.gfac.core.cluster.ServerInfo)1