You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by sa...@apache.org on 2014/07/22 23:22:37 UTC
git commit: updating versions and fixing merge issues with the master
Repository: airavata
Updated Branches:
refs/heads/workflow-support 16cd757f2 -> 915eda2e4
updating versions and fixing merge issues with the master
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/915eda2e
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/915eda2e
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/915eda2e
Branch: refs/heads/workflow-support
Commit: 915eda2e4b39301ca95b76ba5785239250ec9e76
Parents: 16cd757
Author: Saminda Wijeratne <sa...@gmail.com>
Authored: Tue Jul 22 17:22:19 2014 -0400
Committer: Saminda Wijeratne <sa...@gmail.com>
Committed: Tue Jul 22 17:22:19 2014 -0400
----------------------------------------------------------------------
.../tools/RegisterSampleApplications.java | 29 ++++++++-------
.../model/util/ExperimentModelUtil.java | 6 ++--
.../monitor/impl/pull/qstat/HPCPullMonitor.java | 2 --
.../server/OrchestratorServerHandler.java | 2 +-
.../registry/jpa/model/WorkflowNodeDetail.java | 2 +-
modules/workflow-model/workflow-engine/pom.xml | 2 +-
.../engine/interpretor/WorkflowInterpreter.java | 38 +++++++++++++++-----
.../workflow-model-component/pom.xml | 2 +-
8 files changed, 54 insertions(+), 29 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/airavata/blob/915eda2e/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterSampleApplications.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterSampleApplications.java b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterSampleApplications.java
index 1f28d88..61f7697 100644
--- a/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterSampleApplications.java
+++ b/airavata-api/airavata-client-sdks/java-client-samples/src/main/java/org/apache/airavata/client/tools/RegisterSampleApplications.java
@@ -20,31 +20,36 @@
*/
package org.apache.airavata.client.tools;
-import java.io.*;
-import java.util.*;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.Properties;
import org.apache.airavata.api.Airavata;
import org.apache.airavata.api.client.AiravataClientFactory;
-import org.apache.airavata.client.api.exception.AiravataAPIInvocationException;
-import org.apache.airavata.model.appcatalog.appdeployment.ApplicationDeploymentDescription;
-import org.apache.airavata.model.appcatalog.appdeployment.ApplicationModule;
import org.apache.airavata.model.appcatalog.appdeployment.ApplicationParallelismType;
-import org.apache.airavata.model.appcatalog.appinterface.ApplicationInterfaceDescription;
import org.apache.airavata.model.appcatalog.appinterface.DataType;
import org.apache.airavata.model.appcatalog.appinterface.InputDataObjectType;
import org.apache.airavata.model.appcatalog.appinterface.OutputDataObjectType;
-import org.apache.airavata.model.appcatalog.computeresource.*;
+import org.apache.airavata.model.appcatalog.computeresource.ComputeResourceDescription;
+import org.apache.airavata.model.appcatalog.computeresource.JobManagerCommand;
+import org.apache.airavata.model.appcatalog.computeresource.ResourceJobManager;
+import org.apache.airavata.model.appcatalog.computeresource.ResourceJobManagerType;
+import org.apache.airavata.model.appcatalog.computeresource.SCPDataMovement;
+import org.apache.airavata.model.appcatalog.computeresource.SSHJobSubmission;
+import org.apache.airavata.model.appcatalog.computeresource.SecurityProtocol;
import org.apache.airavata.model.appcatalog.gatewayprofile.ComputeResourcePreference;
import org.apache.airavata.model.appcatalog.gatewayprofile.GatewayResourceProfile;
import org.apache.airavata.model.error.AiravataClientException;
-import org.apache.airavata.model.error.AiravataSystemException;
-import org.apache.airavata.model.error.InvalidRequestException;
-
+import org.apache.thrift.TException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
-import org.apache.thrift.TException;
-
public class RegisterSampleApplications {
public static final String THRIFT_SERVER_HOST = "gw127.iu.xsede.org";
http://git-wip-us.apache.org/repos/asf/airavata/blob/915eda2e/airavata-api/airavata-model-utils/src/main/java/org/apache/airavata/model/util/ExperimentModelUtil.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-model-utils/src/main/java/org/apache/airavata/model/util/ExperimentModelUtil.java b/airavata-api/airavata-model-utils/src/main/java/org/apache/airavata/model/util/ExperimentModelUtil.java
index 7b08bcd..43fb241 100644
--- a/airavata-api/airavata-model-utils/src/main/java/org/apache/airavata/model/util/ExperimentModelUtil.java
+++ b/airavata-api/airavata-model-utils/src/main/java/org/apache/airavata/model/util/ExperimentModelUtil.java
@@ -155,9 +155,9 @@ public class ExperimentModelUtil {
public static TaskDetails cloneTaskFromWorkflowNodeDetails(Experiment experiment, WorkflowNodeDetails nodeDetails){
TaskDetails taskDetails = new TaskDetails();
taskDetails.setCreationTime(nodeDetails.getCreationTime());
- String[] split = nodeDetails.getExecutionUnitData().split("/");
- taskDetails.setApplicationId(split[0]);
- taskDetails.setApplicationVersion(split[1]);
+// String[] split = ;
+ taskDetails.setApplicationId(nodeDetails.getExecutionUnitData());
+// taskDetails.setApplicationVersion(split[1]);
List<DataObjectType> experimentInputs = nodeDetails.getNodeInputs();
if (experimentInputs != null){
taskDetails.setApplicationInputs(experimentInputs);
http://git-wip-us.apache.org/repos/asf/airavata/blob/915eda2e/modules/gfac/gfac-monitor/src/main/java/org/apache/airavata/gfac/monitor/impl/pull/qstat/HPCPullMonitor.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-monitor/src/main/java/org/apache/airavata/gfac/monitor/impl/pull/qstat/HPCPullMonitor.java b/modules/gfac/gfac-monitor/src/main/java/org/apache/airavata/gfac/monitor/impl/pull/qstat/HPCPullMonitor.java
index 5150b49..731f88b 100644
--- a/modules/gfac/gfac-monitor/src/main/java/org/apache/airavata/gfac/monitor/impl/pull/qstat/HPCPullMonitor.java
+++ b/modules/gfac/gfac-monitor/src/main/java/org/apache/airavata/gfac/monitor/impl/pull/qstat/HPCPullMonitor.java
@@ -195,8 +195,6 @@ public class HPCPullMonitor extends PullMonitor {
} catch (GFacException e) {
publisher.publish(new TaskStatusChangeRequest(new TaskIdentity(iMonitorID.getExperimentID(), iMonitorID.getWorkflowNodeID(),
iMonitorID.getTaskID()), TaskState.FAILED));
- publisher.publish(new ExperimentStatusChangeRequest(new ExperimentIdentity(iMonitorID.getExperimentID()),
- ExperimentState.FAILED));
logger.info(e.getLocalizedMessage(), e);
}
} else {
http://git-wip-us.apache.org/repos/asf/airavata/blob/915eda2e/modules/orchestrator/airavata-orchestrator-service/src/main/java/org/apache/airavata/orchestrator/server/OrchestratorServerHandler.java
----------------------------------------------------------------------
diff --git a/modules/orchestrator/airavata-orchestrator-service/src/main/java/org/apache/airavata/orchestrator/server/OrchestratorServerHandler.java b/modules/orchestrator/airavata-orchestrator-service/src/main/java/org/apache/airavata/orchestrator/server/OrchestratorServerHandler.java
index ac8e9f3..3bffe23 100644
--- a/modules/orchestrator/airavata-orchestrator-service/src/main/java/org/apache/airavata/orchestrator/server/OrchestratorServerHandler.java
+++ b/modules/orchestrator/airavata-orchestrator-service/src/main/java/org/apache/airavata/orchestrator/server/OrchestratorServerHandler.java
@@ -484,7 +484,7 @@ public class OrchestratorServerHandler implements OrchestratorService.Iface,
IllegalAccessException {
Map<String, String> moduleIdFilter = new HashMap<String, String>();
moduleIdFilter.put(AbstractResource.ApplicationDeploymentConstants.APP_MODULE_ID, selectedModuleId);
- if (taskData.getTaskScheduling().getResourceHostId() != null) {
+ if (taskData.getTaskScheduling()!=null && taskData.getTaskScheduling().getResourceHostId() != null) {
moduleIdFilter.put(AbstractResource.ApplicationDeploymentConstants.COMPUTE_HOST_ID, taskData.getTaskScheduling().getResourceHostId());
}
List<ApplicationDeploymentDescription> applicationDeployements = appCatalog.getApplicationDeployment().getApplicationDeployements(moduleIdFilter);
http://git-wip-us.apache.org/repos/asf/airavata/blob/915eda2e/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/WorkflowNodeDetail.java
----------------------------------------------------------------------
diff --git a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/WorkflowNodeDetail.java b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/WorkflowNodeDetail.java
index 46b7d6e..b4ae29e 100644
--- a/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/WorkflowNodeDetail.java
+++ b/modules/registry/airavata-jpa-registry/src/main/java/org/apache/airavata/persistance/registry/jpa/model/WorkflowNodeDetail.java
@@ -38,7 +38,7 @@ public class WorkflowNodeDetail implements Serializable {
private String nodeId;
@Column(name = "EXECUTION_UNIT")
private String executionUnit;
- @Column(name = "EXECUTION_UNIT")
+ @Column(name = "EXECUTION_UNIT_DATA")
private String executionUnitData;
@Column(name = "CREATION_TIME")
private Timestamp creationTime;
http://git-wip-us.apache.org/repos/asf/airavata/blob/915eda2e/modules/workflow-model/workflow-engine/pom.xml
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/pom.xml b/modules/workflow-model/workflow-engine/pom.xml
index fcdfd87..ef6681b 100644
--- a/modules/workflow-model/workflow-engine/pom.xml
+++ b/modules/workflow-model/workflow-engine/pom.xml
@@ -13,7 +13,7 @@
<parent>
<groupId>org.apache.airavata</groupId>
<artifactId>airavata-workflow-model-parent</artifactId>
- <version>0.13-SNAPSHOT</version>
+ <version>0.14-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>
http://git-wip-us.apache.org/repos/asf/airavata/blob/915eda2e/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/interpretor/WorkflowInterpreter.java
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/interpretor/WorkflowInterpreter.java b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/interpretor/WorkflowInterpreter.java
index 98fc560..fadde07 100644
--- a/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/interpretor/WorkflowInterpreter.java
+++ b/modules/workflow-model/workflow-engine/src/main/java/org/apache/airavata/workflow/engine/interpretor/WorkflowInterpreter.java
@@ -57,7 +57,6 @@ import org.apache.airavata.model.workspace.experiment.WorkflowNodeStatus;
import org.apache.airavata.orchestrator.cpi.OrchestratorService;
import org.apache.airavata.persistance.registry.jpa.impl.RegistryFactory;
import org.apache.airavata.registry.cpi.ChildDataType;
-import org.apache.airavata.registry.cpi.ParentDataType;
import org.apache.airavata.registry.cpi.Registry;
import org.apache.airavata.registry.cpi.RegistryException;
import org.apache.airavata.registry.cpi.RegistryModelType;
@@ -229,7 +228,7 @@ public class WorkflowInterpreter implements AbstractActivityListener{
elem.setKey(portName);
elem.setValue(portValue==null?null:portValue.toString());
workflowNode.addToNodeInputs(elem);
- workflowNode.setNodeInstanceId((String) getRegistry().add(ChildDataType.WORKFLOW_NODE_DETAIL, workflowNode, getExperiment().getExperimentID()));
+ getRegistry().update(RegistryModelType.WORKFLOW_NODE_DETAIL, workflowNode, workflowNode.getNodeInstanceId());
updateWorkflowNodeStatus(workflowNode, WorkflowNodeState.COMPLETED);
}
@@ -372,18 +371,23 @@ public class WorkflowInterpreter implements AbstractActivityListener{
}
}
- private WorkflowNodeDetails createWorkflowNodeDetails(Node node) {
+ private WorkflowNodeDetails createWorkflowNodeDetails(Node node) throws RegistryException {
WorkflowNodeDetails workflowNode = ExperimentModelUtil.createWorkflowNode(node.getName(), null);
ExecutionUnit executionUnit = ExecutionUnit.APPLICATION;
+ String executionData = null;
if (node instanceof InputNode){
executionUnit = ExecutionUnit.INPUT;
} else if (node instanceof OutputNode){
executionUnit = ExecutionUnit.OUTPUT;
} if (node instanceof WSNode){
executionUnit = ExecutionUnit.APPLICATION;
+ executionData = ((WSNode)node).getComponent().getApplication().getApplicationId();
}
workflowNode.setExecutionUnit(executionUnit);
+ workflowNode.setExecutionUnitData(executionData);
+ workflowNode.setNodeInstanceId((String) getRegistry().add(ChildDataType.WORKFLOW_NODE_DETAIL, workflowNode, getExperiment().getExperimentID()));
nodeInstanceList.put(node, workflowNode);
+ setupNodeDetailsInput(node, workflowNode);
return workflowNode;
}
@@ -422,7 +426,7 @@ public class WorkflowInterpreter implements AbstractActivityListener{
// next run
// even if the next run runs before the notification arrives
WorkflowNodeDetails workflowNodeDetails = createWorkflowNodeDetails(node);
- workflowNodeDetails.setNodeInstanceId((String)getRegistry().add(ChildDataType.WORKFLOW_NODE_DETAIL, workflowNodeDetails, getExperiment().getExperimentID()));
+// workflowNodeDetails.setNodeInstanceId((String)getRegistry().add(ChildDataType.WORKFLOW_NODE_DETAIL, workflowNodeDetails, getExperiment().getExperimentID()));
node.setState(NodeExecutionState.EXECUTING);
updateWorkflowNodeStatus(workflowNodeDetails, WorkflowNodeState.EXECUTING);
// OutputNode node = (OutputNode) outputNode;
@@ -987,8 +991,14 @@ public class WorkflowInterpreter implements AbstractActivityListener{
private void setupNodeDetailsInput(Node node, WorkflowNodeDetails nodeDetails){
List<DataPort> inputPorts = node.getInputPorts();
for (DataPort dataPort : inputPorts) {
- Map<String, String> outputData = nodeOutputData.get(dataPort.getFromNode());
- String portInputValue = outputData.get(dataPort.getName());
+ Node fromNode = dataPort.getFromNode();
+ String portInputValue = null;
+ if (fromNode instanceof InputNode){
+ portInputValue = (String) ((InputNode) fromNode).getDefaultValue();
+ } else if (fromNode instanceof WSNode){
+ Map<String, String> outputData = nodeOutputData.get(fromNode);
+ portInputValue = outputData.get(dataPort.getName());
+ }
DataObjectType elem = new DataObjectType();
elem.setKey(dataPort.getName());
elem.setValue(portInputValue);
@@ -1392,16 +1402,17 @@ public class WorkflowInterpreter implements AbstractActivityListener{
String taskId = taskStatus.getIdentity().getTaskId();
if (isTaskAwaiting(taskId)){
WorkflowNodeState state=WorkflowNodeState.UNKNOWN;
+ Node node = getAwaitingNodeForTask(taskId);
switch(taskStatus.getState()){
case CANCELED:
; break;
case COMPLETED:
//task is completed
+ state = WorkflowNodeState.COMPLETED;
try {
TaskDetails task = (TaskDetails)getRegistry().get(RegistryModelType.TASK_DETAIL, taskId);
List<DataObjectType> applicationOutputs = task.getApplicationOutputs();
Map<String, String> outputData = new HashMap<String, String>();
- Node node = getAwaitingNodeForTask(taskId);
for (DataObjectType outputObj : applicationOutputs) {
List<DataPort> outputPorts = node.getOutputPorts();
for (DataPort dataPort : outputPorts) {
@@ -1412,6 +1423,7 @@ public class WorkflowInterpreter implements AbstractActivityListener{
}
nodeOutputData.put(node, outputData);
setupNodeDetailsOutput(node);
+ node.setState(NodeExecutionState.FINISHED);
} catch (RegistryException e) {
e.printStackTrace();
}
@@ -1419,16 +1431,26 @@ public class WorkflowInterpreter implements AbstractActivityListener{
case CONFIGURING_WORKSPACE:
break;
case FAILED:
+ state = WorkflowNodeState.FAILED;
+ node.setState(NodeExecutionState.FAILED);
break;
case EXECUTING: case WAITING: case PRE_PROCESSING: case POST_PROCESSING: case OUTPUT_DATA_STAGING: case INPUT_DATA_STAGING:
+ state = WorkflowNodeState.EXECUTING;
+ node.setState(NodeExecutionState.EXECUTING);
break;
case STARTED:
break;
case CANCELING:
+ state = WorkflowNodeState.CANCELING;
break;
default:
break;
- }
+ }
+ try {
+ updateWorkflowNodeStatus(nodeInstanceList.get(node), state);
+ } catch (RegistryException e) {
+ e.printStackTrace();
+ }
}
}
http://git-wip-us.apache.org/repos/asf/airavata/blob/915eda2e/modules/workflow-model/workflow-model-component/pom.xml
----------------------------------------------------------------------
diff --git a/modules/workflow-model/workflow-model-component/pom.xml b/modules/workflow-model/workflow-model-component/pom.xml
index d7cbee3..bd2a0ae 100644
--- a/modules/workflow-model/workflow-model-component/pom.xml
+++ b/modules/workflow-model/workflow-model-component/pom.xml
@@ -13,7 +13,7 @@
<parent>
<groupId>org.apache.airavata</groupId>
<artifactId>airavata-workflow-model-parent</artifactId>
- <version>0.13-SNAPSHOT</version>
+ <version>0.14-SNAPSHOT</version>
<relativePath>../pom.xml</relativePath>
</parent>