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/05/22 23:16:16 UTC
airavata git commit: Change experiment status to CANCELLED after stop
the original experiment process due to cancelling request
Repository: airavata
Updated Branches:
refs/heads/master c6ac2b176 -> 72110910a
Change experiment status to CANCELLED after stop the original experiment process due to cancelling request
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/72110910
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/72110910
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/72110910
Branch: refs/heads/master
Commit: 72110910a98e68f5b93b94cd0a19e91790206a27
Parents: c6ac2b1
Author: shamrath <sh...@gmail.com>
Authored: Fri May 22 17:16:01 2015 -0400
Committer: shamrath <sh...@gmail.com>
Committed: Fri May 22 17:16:01 2015 -0400
----------------------------------------------------------------------
.../airavata/gfac/core/cpi/BetterGfacImpl.java | 61 +++++++++++++++-----
1 file changed, 45 insertions(+), 16 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/airavata/blob/72110910/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/cpi/BetterGfacImpl.java
----------------------------------------------------------------------
diff --git a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/cpi/BetterGfacImpl.java b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/cpi/BetterGfacImpl.java
index 5e66d1d..8859390 100644
--- a/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/cpi/BetterGfacImpl.java
+++ b/modules/gfac/gfac-core/src/main/java/org/apache/airavata/gfac/core/cpi/BetterGfacImpl.java
@@ -908,6 +908,7 @@ public class BetterGfacImpl implements GFac,Watcher {
}
}else{
log.info("Experiment execution is cancelled, so InHandler invocation is going to stop");
+ GFacUtils.publishTaskStatus(jobExecutionContext, monitorPublisher, TaskState.CANCELED);
break;
}
}
@@ -962,7 +963,7 @@ public class BetterGfacImpl implements GFac,Watcher {
try {
monitorPublisher.publish(new GfacExperimentStateChangeRequest(new MonitorID(jobExecutionContext), GfacExperimentState.OUTHANDLERSINVOKING));
for (GFacHandlerConfig handlerClassName : handlers) {
- if (!isCancelled(jobExecutionContext)) {
+ if (!isCancel(jobExecutionContext)) {
Class<? extends GFacHandler> handlerClass;
GFacHandler handler;
try {
@@ -995,7 +996,10 @@ public class BetterGfacImpl implements GFac,Watcher {
throw new GFacException(e);
}
} else {
- log.info("Experiment execution is cancelled, so OutHandler invocation is going to stop");
+ log.info("Experiment execution is cancelled, so OutHandler invocation is stopped");
+ if (isCancelling(jobExecutionContext)) {
+ GFacUtils.publishTaskStatus(jobExecutionContext, monitorPublisher, TaskState.CANCELED);
+ }
break;
}
}
@@ -1218,30 +1222,55 @@ public class BetterGfacImpl implements GFac,Watcher {
}
- public boolean isCancelled(JobExecutionContext executionContext) throws RegistryException {
+ public boolean isCancelled(JobExecutionContext executionContext){
// we should check whether experiment is cancelled using registry
- ExperimentStatus status = (ExperimentStatus)registry.get(RegistryModelType.EXPERIMENT_STATUS, executionContext.getExperimentID());
- if (status != null){
- ExperimentState experimentState = status.getExperimentState();
- if (experimentState != null){
- if(experimentState == ExperimentState.CANCELED){
- return true;
+ try {
+ ExperimentStatus status = (ExperimentStatus)registry.get(RegistryModelType.EXPERIMENT_STATUS, executionContext.getExperimentID());
+ if (status != null){
+ ExperimentState experimentState = status.getExperimentState();
+ if (experimentState != null){
+ if(experimentState == ExperimentState.CANCELED){
+ return true;
+ }
}
}
+ } catch (RegistryException e) {
+ // on error we return false.
}
return false;
}
- public boolean isCancelling(JobExecutionContext executionContext) throws RegistryException {
+ public boolean isCancelling(JobExecutionContext executionContext){
// check whether cancelling request came
- ExperimentStatus status = (ExperimentStatus)registry.get(RegistryModelType.EXPERIMENT_STATUS, executionContext.getExperimentID());
- if (status != null){
- ExperimentState experimentState = status.getExperimentState();
- if (experimentState != null){
- if(experimentState == ExperimentState.CANCELING){
- return true;
+ try {
+ ExperimentStatus status = (ExperimentStatus)registry.get(RegistryModelType.EXPERIMENT_STATUS, executionContext.getExperimentID());
+ if (status != null){
+ ExperimentState experimentState = status.getExperimentState();
+ if (experimentState != null){
+ if(experimentState == ExperimentState.CANCELING){
+ return true;
+ }
+ }
+ }
+ } catch (RegistryException e) {
+ // on error we return false;
+ }
+ return false;
+ }
+
+ public boolean isCancel(JobExecutionContext jobExecutionContext) {
+ try {
+ ExperimentStatus status = registry.get(RegistryModelType.EXPERIMENT_STATUS, jobExecutionContext.getExperimentID());
+ if (status != null) {
+ ExperimentState experimentState = status.getExperimentState();
+ if (experimentState != null) {
+ if (experimentState == ExperimentState.CANCELING || experimentState == ExperimentState.CANCELED) {
+ return true;
+ }
}
}
+ } catch (RegistryException e) {
+ // on error we return false;
}
return false;
}