Repository: airavata
Updated Branches:
  refs/heads/master 1ef608cd6 -> cbfeb2c36


To retry output finding 3 times and handle multile output case.

Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/cbfeb2c3
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/cbfeb2c3
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/cbfeb2c3

Branch: refs/heads/master
Commit: cbfeb2c36d563743894402ffc4b0c870485f3b98
Parents: 1ef608c
Author: raminder <[email protected]>
Authored: Fri Oct 3 13:54:53 2014 -0400
Committer: raminder <[email protected]>
Committed: Fri Oct 3 13:54:53 2014 -0400

----------------------------------------------------------------------
 .../gfac/gsissh/handler/GSISSHOutputHandler.java   | 15 ++++++++++++---
 .../gfac/ssh/handler/SSHOutputHandler.java         | 17 +++++++++++++----
 2 files changed, 25 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/airavata/blob/cbfeb2c3/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHOutputHandler.java
----------------------------------------------------------------------
diff --git 
a/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHOutputHandler.java
 
b/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHOutputHandler.java
index dd2e5e6..b7e3097 100644
--- 
a/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHOutputHandler.java
+++ 
b/modules/gfac/gfac-gsissh/src/main/java/org/apache/airavata/gfac/gsissh/handler/GSISSHOutputHandler.java
@@ -213,8 +213,17 @@ public class GSISSHOutputHandler extends 
AbstractRecoverableHandler {
                 ActualParameter actualParameter = (ActualParameter) 
output.get(paramName);
                 if 
("URI".equals(actualParameter.getType().getType().toString())) {
 
-                    List<String> outputList = 
cluster.listDirectory(app.getOutputDataDirectory());
-                    if (outputList.size() == 0 || outputList.get(0).isEmpty()) 
{
+                    List<String> outputList = null;
+                    int retry=3;
+                    while(retry>0){
+                        outputList = 
cluster.listDirectory(app.getOutputDataDirectory());
+                        if(outputList.size() > 0){
+                                break;
+                        }      
+                        retry--;
+                        Thread.sleep(2000);
+                    }
+                    if (outputList.size() == 0 || outputList.get(0).isEmpty() 
|| outputList.size() > 1) {
                         OutputUtils.fillOutputFromStdout(output, stdOutStr, 
stdErrStr, outputArray);
                         Set<String> strings = output.keySet();
                         outputArray.clear();
@@ -243,7 +252,7 @@ public class GSISSHOutputHandler extends 
AbstractRecoverableHandler {
                             }
                         }
                         break;
-                    } else {
+                    } else if(outputList.size() == 1) { //FIXME: this is 
ultrascan specific
                         String valueList = outputList.get(0);
                         String outputFile;
                         if (index < oldIndex) {

http://git-wip-us.apache.org/repos/asf/airavata/blob/cbfeb2c3/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/SSHOutputHandler.java
----------------------------------------------------------------------
diff --git 
a/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/SSHOutputHandler.java
 
b/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/SSHOutputHandler.java
index dbbb388..328ad32 100644
--- 
a/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/SSHOutputHandler.java
+++ 
b/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/handler/SSHOutputHandler.java
@@ -176,9 +176,18 @@ public class SSHOutputHandler extends AbstractHandler {
             for (String paramName : keys) {
                 ActualParameter actualParameter = (ActualParameter) 
output.get(paramName);
                 if 
("URI".equals(actualParameter.getType().getType().toString())) {
-
-                    List<String> outputList = 
cluster.listDirectory(app.getOutputDataDirectory());
-                    if (outputList.size() == 0 || outputList.get(0).isEmpty()) 
{
+                    List<String> outputList = null;
+                    int retry=3;
+                    while(retry>0){
+                        outputList = 
cluster.listDirectory(app.getOutputDataDirectory());
+                        if(outputList.size() > 0){
+                                break;
+                        }      
+                        retry--;
+                        Thread.sleep(2000);
+                    }
+                  
+                    if (outputList.size() == 0 || outputList.get(0).isEmpty() 
|| outputList.size() > 0) {
                         OutputUtils.fillOutputFromStdout(output, stdOutStr, 
stdErrStr,outputArray);
                         Set<String> strings = output.keySet();
                         outputArray.clear();
@@ -200,7 +209,7 @@ public class SSHOutputHandler extends AbstractHandler {
                         }
                     
                         break;
-                    } else {
+                    } else if( outputList.size() == 0) {//FIXME: Ultrascan case
                         String valueList = outputList.get(0);
                         cluster.scpFrom(app.getOutputDataDirectory() + 
File.separator + valueList, outputDataDir);
                         String outputPath = outputDataDir + File.separator + 
valueList;

Reply via email to