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);
 		}