Skip to content
Snippets Groups Projects
Commit bbaf083c authored by Nicola Fulvio Calabria's avatar Nicola Fulvio Calabria
Browse files

Extended percent encoding management to UriService and added job

phase update when COMPLETED
parent 836bd0a7
No related branches found
No related tags found
No related merge requests found
Pipeline #1987 failed
......@@ -112,14 +112,16 @@ public class JobService {
throw new UnsupportedOperationException("Not implemented yet");
}
job.setPhase(ExecutionPhase.COMPLETED);
} catch (VoSpaceErrorSummarizableException e) {
job.setPhase(ExecutionPhase.ERROR);
job.setErrorSummary(ErrorSummaryFactory.newErrorSummary(e));
jobDAO.updateJob(job);
} catch (Exception e) {
job.setPhase(ExecutionPhase.ERROR);
job.setErrorSummary(ErrorSummaryFactory.newErrorSummary(
new InternalFaultException(e)));
} finally {
jobDAO.updateJob(job);
}
}
......
......@@ -5,6 +5,7 @@
*/
package it.inaf.oats.vospace;
import it.inaf.oats.vospace.exception.InternalFaultException;
import it.inaf.oats.vospace.exception.InvalidURIException;
import java.net.URI;
import java.net.URISyntaxException;
......@@ -18,8 +19,10 @@ public class URIUtils {
private static final Pattern FORBIDDEN_CHARS = Pattern.compile("[\\x00\\x08\\x0B\\x0C\\x0E-\\x1F" + Pattern.quote("<>?\":\\|'`*") + "]");
private static final String SCHEME = "vos";
public static String returnURIFromVosPath(String vosPath, String authority)
throws URISyntaxException {
public static String returnURIFromVosPath(String vosPath, String authority) {
String result = null;
try {
URI uri = new URI(
SCHEME,
authority,
......@@ -28,7 +31,14 @@ public class URIUtils {
null
);
return uri.toASCIIString();
result = uri.toASCIIString();
} catch (URISyntaxException e) {
throw new InternalFaultException("unable to percent encode URI from authority and path: "
+ authority + " , " + vosPath);
}
return result;
}
public static String returnVosPathFromNodeURI(Node myNode, String authority) {
......
......@@ -134,7 +134,7 @@ public class UriService {
case pushToVoSpace:
case pullToVoSpace:
DataNode newNode = new DataNode();
newNode.setUri("vos://"+ authority +relativePath);
newNode.setUri(URIUtils.returnURIFromVosPath(relativePath, authority));
return createNodeService.createNode(newNode, relativePath, user);
default:
throw new InternalFaultException("No supported job direction specified");
......@@ -148,7 +148,7 @@ public class UriService {
throw new InvalidArgumentException("Invalid target size: " + transfer.getTarget().size());
}
String relativePath = transfer.getTarget().get(0).substring("vos://".length() + authority.length());
String relativePath = URIUtils.returnVosPathFromNodeURI(transfer.getTarget().get(0), authority);
User user = (User) servletRequest.getUserPrincipal();
String creator = user.getName();
......@@ -233,7 +233,7 @@ public class UriService {
Location location = locationDAO.findPortalLocation(url.getHost()).orElseThrow(()
-> new InternalFaultException("No registered location found for host " + url.getHost()));
String vosPath = nodeUri.replaceAll("vos://[^/]+", "");
String vosPath = URIUtils.returnVosPathFromNodeURI(nodeUri, authority);
String fileName = url.getPath().substring(url.getPath().lastIndexOf("/") + 1);
......
......@@ -455,17 +455,7 @@ public class NodeDAO {
}
private String getUri(String path) {
// Percent encode path
String result = null;
try {
result = URIUtils.returnURIFromVosPath(path, authority);
} catch (URISyntaxException e) {
throw new InternalFaultException("unable to percent encode URI from authority and path: "
+ authority + " , " + path);
}
return result;
return URIUtils.returnURIFromVosPath(path, authority);
}
private NodePaths getPathsFromResultSet(ResultSet rs) throws SQLException {
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment