You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ch...@apache.org on 2015/05/12 18:16:09 UTC
airavata git commit: zookeeper clean up after status updated
Repository: airavata
Updated Branches:
refs/heads/master 9a8a14b9f -> 113b75fc6
zookeeper clean up after status updated
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/113b75fc
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/113b75fc
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/113b75fc
Branch: refs/heads/master
Commit: 113b75fc682d7f9ab1ae8ef186d6c551f18ca293
Parents: 9a8a14b
Author: Chathuri Wimalasena <ch...@apache.org>
Authored: Tue May 12 12:16:00 2015 -0400
Committer: Chathuri Wimalasena <ch...@apache.org>
Committed: Tue May 12 12:16:00 2015 -0400
----------------------------------------------------------------------
.../AiravataExperimentStatusUpdator.java | 30 +++++++++++---------
1 file changed, 17 insertions(+), 13 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/airavata/blob/113b75fc/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/listener/AiravataExperimentStatusUpdator.java
----------------------------------------------------------------------
diff --git a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/listener/AiravataExperimentStatusUpdator.java b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/listener/AiravataExperimentStatusUpdator.java
index 5543d62..6c2acfc 100644
--- a/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/listener/AiravataExperimentStatusUpdator.java
+++ b/airavata-api/airavata-api-server/src/main/java/org/apache/airavata/api/server/listener/AiravataExperimentStatusUpdator.java
@@ -73,6 +73,7 @@ public class AiravataExperimentStatusUpdator implements AbstractActivityListener
public void setupExperimentStatus(WorkflowNodeStatusChangeEvent nodeStatus) throws Exception{
try {
boolean updateExperimentStatus=true;
+ boolean clean= false;
ExecutionType executionType = DataModelUtils.getExecutionType((Experiment) airavataRegistry.get(RegistryModelType.EXPERIMENT, nodeStatus.getWorkflowNodeIdentity().getExperimentId()));
String experimentNode = ServerSettings.getSetting(Constants.ZOOKEEPER_GFAC_EXPERIMENT_NODE, "/gfac-experiments");
String experimentPath = experimentNode + File.separator + ServerSettings.getSetting(Constants.ZOOKEEPER_GFAC_SERVER_NAME)
@@ -81,7 +82,7 @@ public class AiravataExperimentStatusUpdator implements AbstractActivityListener
switch (nodeStatus.getState()) {
case CANCELED:
state = ExperimentState.CANCELED; updateExperimentStatus = true;
- cleanup(nodeStatus, experimentNode, experimentPath);
+ clean = true;
break;
case COMPLETED:
if(executionType.equals(ExecutionType.SINGLE_APP)){
@@ -89,30 +90,30 @@ public class AiravataExperimentStatusUpdator implements AbstractActivityListener
}else{
state = ExperimentState.EXECUTING; updateExperimentStatus = true;
}
- cleanup(nodeStatus, experimentNode, experimentPath);
+ clean = true;
break;
case INVOKED:
state = ExperimentState.LAUNCHED; updateExperimentStatus = false;
break;
case FAILED:
state = ExperimentState.FAILED; updateExperimentStatus = true;
- cleanup(nodeStatus,experimentNode,experimentPath);
+ clean = true;
break;
case EXECUTING:
state = ExperimentState.EXECUTING; updateExperimentStatus = true;
break;
case CANCELING:
state = ExperimentState.CANCELING; updateExperimentStatus = true;
- cleanup(nodeStatus,experimentNode,experimentPath);
+ clean = true;
break;
- default:
- return;
- }
- if (!updateExperimentStatus){
- updateExperimentStatus=(executionType==ExecutionType.SINGLE_APP);
- }
- updateExperimentStatus(nodeStatus.getWorkflowNodeIdentity().getExperimentId(), state);
- logger.debug("Publishing experiment status for "+nodeStatus.getWorkflowNodeIdentity().getExperimentId()+":"+state.toString());
+ default:
+ return;
+ }
+ if (!updateExperimentStatus){
+ updateExperimentStatus=(executionType==ExecutionType.SINGLE_APP);
+ }
+ updateExperimentStatus(nodeStatus.getWorkflowNodeIdentity().getExperimentId(), state);
+ logger.debug("Publishing experiment status for " + nodeStatus.getWorkflowNodeIdentity().getExperimentId() + ":" + state.toString());
ExperimentStatusChangeEvent event = new ExperimentStatusChangeEvent(state,
nodeStatus.getWorkflowNodeIdentity().getExperimentId(),
nodeStatus.getWorkflowNodeIdentity().getGatewayId());
@@ -121,7 +122,10 @@ public class AiravataExperimentStatusUpdator implements AbstractActivityListener
MessageContext msgCntxt = new MessageContext(event, MessageType.EXPERIMENT, messageId, nodeStatus.getWorkflowNodeIdentity().getGatewayId());
msgCntxt.setUpdatedTime(AiravataUtils.getCurrentTimestamp());
publisher.publish(msgCntxt);
- } catch (Exception e) {
+ if (clean) {
+ cleanup(nodeStatus, experimentNode, experimentPath);
+ }
+ } catch (Exception e) {
logger.error("Error persisting data" + e.getLocalizedMessage(), e);
throw new Exception("Error persisting experiment status..", e);
}