You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sh...@apache.org on 2015/06/15 18:02:54 UTC
airavata git commit: Added TaskContext and updated ProcessContext
Repository: airavata
Updated Branches:
refs/heads/master 62ad1c2c0 -> 59d2f2507
Added TaskContext and updated ProcessContext
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/59d2f250
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/59d2f250
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/59d2f250
Branch: refs/heads/master
Commit: 59d2f2507647ec3cbd0f4a89f2fefc1efd33d077
Parents: 62ad1c2
Author: Shameera Rathanyaka <sh...@gmail.com>
Authored: Mon Jun 15 12:02:52 2015 -0400
Committer: Shameera Rathanyaka <sh...@gmail.com>
Committed: Mon Jun 15 12:02:52 2015 -0400
----------------------------------------------------------------------
.../gfac/core/context/ProcessContext.java | 21 +++++++++
.../airavata/gfac/core/context/TaskContext.java | 49 ++++++++++++++++++++
.../gfac/core/task/JobSubmissionTask.java | 6 ++-
.../apache/airavata/gfac/core/task/Task.java | 31 +++++++++++++
.../src/main/resources/gfac-config.yaml | 10 ++++
.../apache/airavata/gfac/impl/GFacEngine.java | 3 +-
6 files changed, 118 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/airavata/blob/59d2f250/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/context/ProcessContext.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/context/ProcessContext.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/context/ProcessContext.java
index 7db8a9e..7ac2807 100644
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/context/ProcessContext.java
+++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/context/ProcessContext.java
@@ -22,11 +22,14 @@
package org.apache.airavata.gfac.core.context;
import org.apache.airavata.common.utils.LocalEventPublisher;
+import org.apache.airavata.gfac.core.task.Task;
import org.apache.airavata.model.process.ProcessModel;
import org.apache.airavata.registry.cpi.AppCatalog;
import org.apache.airavata.registry.cpi.ExperimentCatalog;
import org.apache.curator.framework.CuratorFramework;
+import java.util.List;
+
public class ProcessContext {
// process model
private ExperimentCatalog experimentCatalog;
@@ -37,6 +40,8 @@ public class ProcessContext {
private final String gatewayId;
private final String tokenId;
private ProcessModel processModel;
+ private String workingDir;
+ private List<Task> taskChain;
public ProcessContext(String processId, String gatewayId, String tokenId) {
this.processId = processId;
@@ -97,4 +102,20 @@ public class ProcessContext {
public void setProcessModel(ProcessModel processModel) {
this.processModel = processModel;
}
+
+ public String getWorkingDir() {
+ return workingDir;
+ }
+
+ public void setWorkingDir(String workingDir) {
+ this.workingDir = workingDir;
+ }
+
+ public List<Task> getTaskChain() {
+ return taskChain;
+ }
+
+ public void setTaskChain(List<Task> taskChain) {
+ this.taskChain = taskChain;
+ }
}
http://git-wip-us.apache.org/repos/asf/airavata/blob/59d2f250/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/context/TaskContext.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/context/TaskContext.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/context/TaskContext.java
new file mode 100644
index 0000000..477c1ae
--- /dev/null
+++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/context/TaskContext.java
@@ -0,0 +1,49 @@
+/*
+ *
+ * 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.gfac.core.context;
+
+import org.apache.airavata.model.task.TaskModel;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
+
+public class TaskContext {
+ private static final Logger log = LoggerFactory.getLogger(TaskContext.class);
+
+ private TaskModel taskModel;
+ private ProcessContext parentProcessContext;
+
+ public TaskModel getTaskModel() {
+ return taskModel;
+ }
+
+ public void setTaskModel(TaskModel taskModel) {
+ this.taskModel = taskModel;
+ }
+
+ public ProcessContext getParentProcessContext() {
+ return parentProcessContext;
+ }
+
+ public void setParentProcessContext(ProcessContext parentProcessContext) {
+ this.parentProcessContext = parentProcessContext;
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/airavata/blob/59d2f250/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/task/JobSubmissionTask.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/task/JobSubmissionTask.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/task/JobSubmissionTask.java
index 41a540e..138ca63 100644
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/task/JobSubmissionTask.java
+++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/task/JobSubmissionTask.java
@@ -20,5 +20,9 @@
*/
package org.apache.airavata.gfac.core.task;
-public interface JobSubmissionTask{
+public interface JobSubmissionTask extends Task {
+
}
+
+
+
http://git-wip-us.apache.org/repos/asf/airavata/blob/59d2f250/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/task/Task.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/task/Task.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/task/Task.java
index 7e764d4..4019138 100644
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/task/Task.java
+++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/task/Task.java
@@ -20,5 +20,36 @@
*/
package org.apache.airavata.gfac.core.task;
+import org.apache.airavata.gfac.core.context.TaskContext;
+import org.apache.airavata.model.status.TaskState;
+import org.apache.airavata.model.task.TaskModel;
+
+import java.util.Map;
+
+/**
+ * All Tasks should inherit this interface.
+ */
public interface Task {
+
+ /**
+ * Task initialization method, this method will be invoked after create a new task instance.
+ * @param propertyMap
+ */
+ public void init(Map<String, String> propertyMap);
+
+ /**
+ * This method will be called at the first time of task chain execution. This method should called before recover
+ * method. For a given task chain execute method only call one time. recover method may be called more than once.
+ * @param taskContext
+ * @return
+ */
+ public TaskState execute(TaskContext taskContext);
+
+ /**
+ * This methond will be invoked at recover path.Before this method is invoked, execute method should be invoked.
+ * This method may be called zero or few time in a process chain.
+ * @param taskContext
+ * @return
+ */
+ public TaskState recover(TaskContext taskContext);
}
http://git-wip-us.apache.org/repos/asf/airavata/blob/59d2f250/modules/gfac/gfac-core/src/main/resources/gfac-config.yaml
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/resources/gfac-config.yaml b/modules/gfac/gfac-core/src/main/resources/gfac-config.yaml
index f33ca6e..5530547 100644
--- a/modules/gfac/gfac-core/src/main/resources/gfac-config.yaml
+++ b/modules/gfac/gfac-core/src/main/resources/gfac-config.yaml
@@ -22,6 +22,11 @@ config:
jobSubmitters:
- submissionProtocol: SSH
taskClass: org.apache.airavata.task.adapters.SSHJobSubmissionTask
+ properties:
+ - password: pwd123
+ - passPhrase: test
+ - privateKey: key
+ - publicKey: pubkey
- submissionProtocol: GSISSH
taskClass: org.apache.airavata.task.adapters.GSISSHJobSubmissionTask
@@ -36,6 +41,11 @@ config:
fileTransferTasks:
- transferProtocol: SCP
taskClass: org.apache.airavata.task.adapters.SCPFileTransferTask
+ properties:
+ - password: pwd123
+ - passPhrase: test
+ - privateKey: key
+ - publicKey: pubkey
- transferProtocol: HTTP
taskClass: org.apache.airavata.task.adapters.HTTPFileTransferTask
http://git-wip-us.apache.org/repos/asf/airavata/blob/59d2f250/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/GFacEngine.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/GFacEngine.java b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/GFacEngine.java
index 476da59..0085dde 100644
--- a/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/GFacEngine.java
+++ b/modules/gfac/gfac-impl/src/main/java/org/apache/airavata/gfac/impl/GFacEngine.java
@@ -74,7 +74,8 @@ public class GFacEngine {
}
public ProcessContext populateProcessContext(ProcessContext processContext) {
- processContext.setProcessModel(new ProcessModel());
+ processContext.setProcessModel(new ProcessModel()); // TODO: get rocess model from app catalog
+ // TODO: set datamovement protocol and jobsubmission protocol
return processContext;
}