You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@airavata.apache.org by ms...@apache.org on 2015/07/14 20:15:36 UTC
airavata git commit: avoid modifying output param if the value has a
url pattern
Repository: airavata
Updated Branches:
refs/heads/airavata-0.15-release-branch 567657b85 -> c3039e136
avoid modifying output param if the value has a url pattern
Project: http://git-wip-us.apache.org/repos/asf/airavata/repo
Commit: http://git-wip-us.apache.org/repos/asf/airavata/commit/c3039e13
Tree: http://git-wip-us.apache.org/repos/asf/airavata/tree/c3039e13
Diff: http://git-wip-us.apache.org/repos/asf/airavata/diff/c3039e13
Branch: refs/heads/airavata-0.15-release-branch
Commit: c3039e136d9f2d24f67be5c3a19883d3588d1f1b
Parents: 567657b
Author: msmemon <sh...@gmail.com>
Authored: Tue Jul 14 20:15:17 2015 +0200
Committer: msmemon <sh...@gmail.com>
Committed: Tue Jul 14 20:15:17 2015 +0200
----------------------------------------------------------------------
.../airavata/gfac/core/cpi/BetterGfacImpl.java | 35 ++++++++++++++------
1 file changed, 25 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/airavata/blob/c3039e13/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 d6f68be..8d30bb5 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
@@ -71,12 +71,16 @@ import org.xml.sax.SAXException;
import javax.xml.parsers.ParserConfigurationException;
import javax.xml.xpath.XPathExpressionException;
+
import java.io.File;
import java.io.IOException;
import java.io.PrintWriter;
import java.io.StringWriter;
+import java.net.MalformedURLException;
import java.net.URL;
import java.util.*;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
/**
* This is the GFac CPI class for external usage, this simply have a single method to submit a job to
@@ -367,18 +371,21 @@ public class BetterGfacImpl implements GFac {
for (OutputDataObjectType objectType : taskOutputs) {
if (objectType.getType() == DataType.URI && objectType.getValue() != null) {
String filePath = objectType.getValue();
+ boolean isUrl = isURL(filePath);
+
// if 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 + objectType.getLocation() + File.separator + filePath;
- }
- } else {
- filePath = jobExecutionContext.getOutputDir() + File.separator + filePath;
+ if(!isUrl) {
+ 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 + objectType.getLocation() + File.separator + filePath;
+ }
+ } else {
+ filePath = jobExecutionContext.getOutputDir() + File.separator + filePath;
+ }
+ objectType.setValue(filePath);
}
- objectType.setValue(filePath);
-
}
if (objectType.getType() == DataType.STDOUT) {
String stdout = objectType.getValue();
@@ -409,6 +416,14 @@ public class BetterGfacImpl implements GFac {
return jobExecutionContext;
}
+ private boolean isURL(String path) {
+ String pattern = "^(https?|ftp|file|gsiftp|rns)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]";
+ Pattern p = Pattern.compile(pattern);
+ Matcher m = p.matcher(path);
+ return m.matches();
+ }
+
+
private void setUpWorkingLocation(JobExecutionContext jobExecutionContext, ApplicationInterfaceDescription applicationInterface, String scratchLocation) {
/**
* Scratch location