Repository: airavata Updated Branches: refs/heads/master a4fb48915 -> 5d7a03415
Fixed AIRAVATA-1631. Project: http://git-wip-us.apache.org/repos/asf/airavata/repo Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/5d7a0341 Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/5d7a0341 Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/5d7a0341 Branch: refs/heads/master Commit: 5d7a034155f0acb48c15f1420c3ab452523f40ad Parents: a4fb489 Author: raminder <[email protected]> Authored: Mon Mar 16 14:22:50 2015 -0400 Committer: raminder <[email protected]> Committed: Mon Mar 16 14:22:50 2015 -0400 ---------------------------------------------------------------------- .../airavata/gfac/core/cpi/BetterGfacImpl.java | 18 +++++++++++++++--- .../airavata/gfac/ssh/util/HandleOutputs.java | 5 +---- 2 files changed, 16 insertions(+), 7 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/airavata/blob/5d7a0341/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 2ff0338..6b20118 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 @@ -385,10 +385,22 @@ public class BetterGfacImpl implements GFac,Watcher { for (OutputDataObjectType objectType : taskOutputs){ if (objectType.getType() == DataType.URI && objectType.getValue() != null){ - // this should be also the relatvie path : in case of clone, this will contain full path + // this should be also the relative path : in case of clone, this will contain full path String filePath = objectType.getValue(); - filePath = filePath.substring(filePath.lastIndexOf(File.separatorChar) + 1, filePath.length()); - objectType.setValue(jobExecutionContext.getOutputDir() + File.separator + filePath); + if(objectType.getLocation() == null && objectType.getLocation().isEmpty() && filePath.contains(File.separator)){ + filePath = jobExecutionContext.getOutputDir() + File.separator + filePath.substring(filePath.lastIndexOf(File.separatorChar) + 1, filePath.length()); + } + //output is not in working folder + if (objectType.getLocation() != null && !objectType.getLocation().isEmpty()) { + if(objectType.getLocation().startsWith(File.separator)){ + filePath = objectType.getLocation() + File.separator + filePath; + }else{ + filePath = jobExecutionContext.getOutputDir() + File.separator + filePath; + } + filePath = objectType.getLocation()+ filePath; + } + objectType.setValue(filePath); + } if (objectType.getType() == DataType.STDOUT){ objectType.setValue(jobExecutionContext.getOutputDir() + File.separator + jobExecutionContext.getApplicationName() + ".stdout"); http://git-wip-us.apache.org/repos/asf/airavata/blob/5d7a0341/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/util/HandleOutputs.java ---------------------------------------------------------------------- diff --git a/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/util/HandleOutputs.java b/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/util/HandleOutputs.java index e64b0be..ddab0f4 100644 --- a/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/util/HandleOutputs.java +++ b/modules/gfac/gfac-ssh/src/main/java/org/apache/airavata/gfac/ssh/util/HandleOutputs.java @@ -37,12 +37,9 @@ public class HandleOutputs { String outputFile = output.getValue(); String fileName = outputFile.substring(outputFile.lastIndexOf(File.separatorChar) + 1, outputFile.length()); - if (!outputList.contains(fileName) && output.isIsRequired()) { + if (output.getLocation() == null && !outputList.contains(fileName) && output.isIsRequired()) { missingOutput = true; } else { - if (output.getLocation() != null && !output.getLocation().isEmpty()) { - outputFile = output.getLocation()+ fileName; - } cluster.scpFrom(outputFile, outputDataDir); String localFile = outputDataDir + File.separator + fileName; jobExecutionContext.addOutputFile(localFile);
