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 <[email protected]> Authored: Tue May 12 12:16:00 2015 -0400 Committer: Chathuri Wimalasena <[email protected]> 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); }
