You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by la...@apache.org on 2014/05/21 16:53:11 UTC
[1/2] git commit: fixing AIRAVATA-1184
Repository: airavata
Updated Branches:
refs/heads/master 179367235 -> 61dd0fcb2
fixing AIRAVATA-1184
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/ee50805c
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/ee50805c
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/ee50805c
Branch: refs/heads/master
Commit: ee50805cf1e19dd1a15f33451feb5a5fe63d2604
Parents: 2710f6e
Author: lahiru <la...@apache.org>
Authored: Wed May 21 10:48:32 2014 -0400
Committer: lahiru <la...@apache.org>
Committed: Wed May 21 10:48:32 2014 -0400
----------------------------------------------------------------------
.../apache/airavata/gfac/core/cpi/GFacImpl.java | 30 +++++++--
.../airavata/gfac/core/monitor/MonitorID.java | 66 +++++++++++---------
.../airavata/gfac/monitor/HPCMonitorID.java | 9 +--
.../server/OrchestratorServerHandler.java | 2 -
4 files changed, 64 insertions(+), 43 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/airavata/blob/ee50805c/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/cpi/GFacImpl.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/cpi/GFacImpl.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/cpi/GFacImpl.java
index ddcf775..dca4684 100644
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/cpi/GFacImpl.java
+++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/cpi/GFacImpl.java
@@ -42,7 +42,10 @@ import org.apache.airavata.gfac.Scheduler;
import org.apache.airavata.gfac.core.context.ApplicationContext;
import org.apache.airavata.gfac.core.context.JobExecutionContext;
import org.apache.airavata.gfac.core.context.MessageContext;
-import org.apache.airavata.gfac.core.monitor.AbstractActivityListener;
+import org.apache.airavata.gfac.core.monitor.*;
+import org.apache.airavata.gfac.core.monitor.state.ExperimentStatusChangeRequest;
+import org.apache.airavata.gfac.core.monitor.state.JobStatusChangeRequest;
+import org.apache.airavata.gfac.core.monitor.state.TaskStatusChangeRequest;
import org.apache.airavata.gfac.core.notification.MonitorPublisher;
import org.apache.airavata.gfac.core.notification.events.ExecutionFailEvent;
import org.apache.airavata.gfac.core.notification.listeners.LoggingListener;
@@ -54,9 +57,7 @@ import org.apache.airavata.gfac.core.handler.GFacHandlerConfig;
import org.apache.airavata.gfac.core.handler.GFacHandlerException;
import org.apache.airavata.gfac.core.handler.ThreadedHandler;
import org.apache.airavata.gfac.core.utils.GFacUtils;
-import org.apache.airavata.model.workspace.experiment.DataObjectType;
-import org.apache.airavata.model.workspace.experiment.Experiment;
-import org.apache.airavata.model.workspace.experiment.TaskDetails;
+import org.apache.airavata.model.workspace.experiment.*;
import org.apache.airavata.registry.api.AiravataRegistry2;
import org.apache.airavata.registry.cpi.RegistryModelType;
import org.apache.airavata.registry.cpi.Registry;
@@ -304,10 +305,29 @@ public class GFacImpl implements GFac {
executeProvider(provider, jobExecutionContext);
disposeProvider(provider, jobExecutionContext);
}
- if(GFacUtils.isSynchronousMode(jobExecutionContext)){
+ if (GFacUtils.isSynchronousMode(jobExecutionContext)) {
invokeOutFlowHandlers(jobExecutionContext);
}
} catch (Exception e) {
+ try {
+ // we make the experiment as failed due to exception scenario
+ monitorPublisher.publish(new
+ ExperimentStatusChangeRequest(new ExperimentIdentity(jobExecutionContext.getExperimentID()),
+ ExperimentState.FAILED));
+ // Updating the task status if there's any task associated
+ monitorPublisher.publish(new TaskStatusChangeRequest(
+ new TaskIdentity(jobExecutionContext.getExperimentID(),
+ jobExecutionContext.getWorkflowNodeDetails().getNodeInstanceId(),
+ jobExecutionContext.getTaskData().getTaskID()), TaskState.FAILED
+ ));
+ monitorPublisher.publish(new JobStatusChangeRequest(new MonitorID(jobExecutionContext),
+ new JobIdentity(jobExecutionContext.getExperimentID(),
+ jobExecutionContext.getWorkflowNodeDetails().getNodeInstanceId(),
+ jobExecutionContext.getTaskData().getTaskID(), jobExecutionContext.getJobDetails().getJobID()), JobState.FAILED));
+ } catch (NullPointerException e1) {
+ log.error("Error occured during updating the statuses of Experiments,tasks or Job statuses to failed, " +
+ "NullPointerException occurred because at this point there might not have Job Created", e1, e);
+ }
jobExecutionContext.setProperty(ERROR_SENT, "true");
jobExecutionContext.getNotifier().publish(new ExecutionFailEvent(e.getCause()));
throw new GFacException(e.getMessage(), e);
http://git-wip-us.apache.org/repos/asf/airavata/blob/ee50805c/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/monitor/MonitorID.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/monitor/MonitorID.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/monitor/MonitorID.java
index beb1f93..dfd9de9 100644
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/monitor/MonitorID.java
+++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/monitor/MonitorID.java
@@ -64,7 +64,7 @@ public class MonitorID {
public MonitorID() {
}
- public MonitorID(HostDescription host, String jobID,String taskID, String workflowNodeID, String experimentID, String userName) {
+ public MonitorID(HostDescription host, String jobID, String taskID, String workflowNodeID, String experimentID, String userName) {
this.host = host;
this.jobStartedTime = new Timestamp((new Date()).getTime());
this.userName = userName;
@@ -74,6 +74,16 @@ public class MonitorID {
this.workflowNodeID = workflowNodeID;
}
+ public MonitorID(JobExecutionContext jobExecutionContext) {
+ this.jobExecutionContext = jobExecutionContext;
+ host = jobExecutionContext.getApplicationContext().getHostDescription();
+ userName = jobExecutionContext.getExperiment().getUserName();
+ jobID = jobExecutionContext.getJobDetails().getJobID();
+ taskID = jobExecutionContext.getTaskData().getTaskID();
+ experimentID = jobExecutionContext.getExperiment().getExperimentID();
+ workflowNodeID = jobExecutionContext.getWorkflowNodeDetails().getNodeInstanceId();// at this point we only have one node todo: fix this
+ }
+
public HostDescription getHost() {
return host;
}
@@ -114,7 +124,7 @@ public class MonitorID {
this.jobStartedTime = jobStartedTime;
}
- public void addParameter(String key,Object value) {
+ public void addParameter(String key, Object value) {
this.parameters.put(key, value);
}
@@ -162,38 +172,38 @@ public class MonitorID {
// this logic is going to be useful for fast finishing jobs
// because in some machines job state vanishes quicckly when the job is done
// during that case job state comes as unknown.so we handle it here.
- if (this.state != null && status.equals(JobState.UNKNOWN)) {
- if (getFailedCount() > 2) {
- switch (this.state) {
- case ACTIVE:
- this.state = JobState.COMPLETE;
- break;
- case QUEUED:
- this.state = JobState.COMPLETE;
- break;
- }
- } else {
- try {
- // when state becomes unknown we sleep for a while
- Thread.sleep(10000);
- } catch (InterruptedException e) {
- e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
- }
- setFailedCount(getFailedCount() + 1);
+ if (this.state != null && status.equals(JobState.UNKNOWN)) {
+ if (getFailedCount() > 2) {
+ switch (this.state) {
+ case ACTIVE:
+ this.state = JobState.COMPLETE;
+ break;
+ case QUEUED:
+ this.state = JobState.COMPLETE;
+ break;
}
} else {
- // normal scenario
- this.state = status;
+ try {
+ // when state becomes unknown we sleep for a while
+ Thread.sleep(10000);
+ } catch (InterruptedException e) {
+ e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates.
+ }
+ setFailedCount(getFailedCount() + 1);
}
+ } else {
+ // normal scenario
+ this.state = status;
+ }
}
- public String getWorkflowNodeID() {
- return workflowNodeID;
- }
+ public String getWorkflowNodeID() {
+ return workflowNodeID;
+ }
- public void setWorkflowNodeID(String workflowNodeID) {
- this.workflowNodeID = workflowNodeID;
- }
+ public void setWorkflowNodeID(String workflowNodeID) {
+ this.workflowNodeID = workflowNodeID;
+ }
public JobExecutionContext getJobExecutionContext() {
return jobExecutionContext;
http://git-wip-us.apache.org/repos/asf/airavata/blob/ee50805c/modules/gfac/gfac-monitor/src/main/java/org/apache/airavata/gfac/monitor/HPCMonitorID.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-monitor/src/main/java/org/apache/airavata/gfac/monitor/HPCMonitorID.java b/modules/gfac/gfac-monitor/src/main/java/org/apache/airavata/gfac/monitor/HPCMonitorID.java
index 942f6ae..cc6ab30 100644
--- a/modules/gfac/gfac-monitor/src/main/java/org/apache/airavata/gfac/monitor/HPCMonitorID.java
+++ b/modules/gfac/gfac-monitor/src/main/java/org/apache/airavata/gfac/monitor/HPCMonitorID.java
@@ -73,15 +73,8 @@ public class HPCMonitorID extends MonitorID {
}
public HPCMonitorID(AuthenticationInfo authenticationInfo, JobExecutionContext jobExecutionContext) {
+ super(jobExecutionContext);
this.authenticationInfo = authenticationInfo;
- this.jobExecutionContext = jobExecutionContext;
- host = jobExecutionContext.getApplicationContext().getHostDescription();
- userName = jobExecutionContext.getExperiment().getUserName();
- jobID = jobExecutionContext.getJobDetails().getJobID();
- taskID = jobExecutionContext.getTaskData().getTaskID();
- experimentID = jobExecutionContext.getExperiment().getExperimentID();
- workflowNodeID = jobExecutionContext.getWorkflowNodeDetails().getNodeInstanceId();// at this point we only have one node todo: fix this
-
}
public HPCMonitorID(HostDescription host, String jobID,String taskID, String workflowNodeID, String experimentID, String userName,AuthenticationInfo authenticationInfo) {
http://git-wip-us.apache.org/repos/asf/airavata/blob/ee50805c/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 8f8325b..97546ba 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
@@ -21,11 +21,9 @@
package org.apache.airavata.orchestrator.server;
-import java.util.Arrays;
import java.util.Calendar;
import java.util.List;
-import org.apache.airavata.model.error.LaunchValidationException;
import org.apache.airavata.model.workspace.experiment.*;
import org.apache.airavata.orchestrator.core.exception.OrchestratorException;
import org.apache.airavata.orchestrator.cpi.OrchestratorService;
[2/2] git commit: Merge branch 'master' of
https://git-wip-us.apache.org/repos/asf/airavata
Posted by la...@apache.org.
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/airavata
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/61dd0fcb
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/61dd0fcb
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/61dd0fcb
Branch: refs/heads/master
Commit: 61dd0fcb2b5e8bb48b6d7d15943b12df19ee4d8e
Parents: ee50805 1793672
Author: lahiru <la...@apache.org>
Authored: Wed May 21 10:48:51 2014 -0400
Committer: lahiru <la...@apache.org>
Committed: Wed May 21 10:48:51 2014 -0400
----------------------------------------------------------------------
.../handler/ApplicationCatalogHandler.java | 481 +++
.../api/appcatalog/ApplicationCatalogAPI.java | 3764 ++++++++++++++----
.../resources/lib/ApplicationCatalogAPI.cpp | 768 +++-
.../main/resources/lib/ApplicationCatalogAPI.h | 299 ++
.../ApplicationCatalogAPI_server.skeleton.cpp | 10 +
.../lib/applicationCatalogDataModel_types.cpp | 366 +-
.../lib/applicationCatalogDataModel_types.h | 61 +-
.../API/AppCatalog/ApplicationCatalogAPI.php | 550 +++
.../src/main/resources/lib/Types.php | 358 +-
.../model/appcatalog/ApplicationInterface.java | 36 +-
.../appcatalog/ComputeResourceDescription.java | 152 +-
.../model/appcatalog/GSISSHJobSubmission.java | 96 +-
.../model/appcatalog/GlobusJobSubmission.java | 32 +-
.../model/appcatalog/GridFTPDataMovement.java | 651 +++
.../model/appcatalog/SCPDataMovement.java | 104 +-
.../workspace/experiment/ValidationResults.java | 543 +++
.../workspace/experiment/ValidatorResult.java | 505 +++
.../applicationCatalogAPI.thrift | 10 +
.../applicationCatalogDataModel.thrift | 8 +-
.../gfac/local/provider/impl/LocalProvider.java | 9 +-
20 files changed, 7613 insertions(+), 1190 deletions(-)
----------------------------------------------------------------------