diff --git a/src/main/java/it/inaf/oats/vospace/CreateNodeController.java b/src/main/java/it/inaf/oats/vospace/CreateNodeController.java index 3110cecc1b1150ac889800c102574dad9ac1301a..62ce3cf0eb8b8760f70a626cc1632a068544eb8c 100644 --- a/src/main/java/it/inaf/oats/vospace/CreateNodeController.java +++ b/src/main/java/it/inaf/oats/vospace/CreateNodeController.java @@ -15,7 +15,6 @@ import it.inaf.oats.vospace.exception.*; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import net.ivoa.xml.vospace.v2.Property; -import java.util.List; @RestController public class CreateNodeController extends BaseNodeController { diff --git a/src/main/java/it/inaf/oats/vospace/UriService.java b/src/main/java/it/inaf/oats/vospace/UriService.java index 5e80e132d94fb0e8dcabf312803bdfb0263521d4..405f97413781dfd4e5ffabcc147ff825ff9d77ad 100644 --- a/src/main/java/it/inaf/oats/vospace/UriService.java +++ b/src/main/java/it/inaf/oats/vospace/UriService.java @@ -11,6 +11,7 @@ import it.inaf.oats.vospace.exception.PermissionDeniedException; import it.inaf.oats.vospace.persistence.LocationDAO; import it.inaf.oats.vospace.persistence.NodeDAO; import it.inaf.oats.vospace.persistence.model.Location; +import it.inaf.oats.vospace.persistence.model.LocationType; import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; @@ -78,21 +79,19 @@ public class UriService { Node node = nodeDao.listNode(relativePath).orElseThrow(() -> new NodeNotFoundException(relativePath)); - Location location = locationDAO.getNodeLocation(relativePath).orElseThrow(() - -> new InternalFaultException("No registered location found for vos_path " + relativePath)); + Location location = locationDAO.getNodeLocation(relativePath).orElse(null); String endpoint; - switch (location.getType()) { - case PORTAL: - String fileName = nodeDao.getNodeOsName(relativePath); - endpoint = "http://" + location.getSource().getHostname() + location.getSource().getBasePath(); - if (!endpoint.endsWith("/")) { - endpoint += "/"; - } - endpoint += fileName; - break; - default: - endpoint = fileServiceUrl + urlEncodePath(relativePath); + + if (location != null && location.getType() == LocationType.PORTAL) { + String fileName = nodeDao.getNodeOsName(relativePath); + endpoint = "http://" + location.getSource().getHostname() + location.getSource().getBasePath(); + if (!endpoint.endsWith("/")) { + endpoint += "/"; + } + endpoint += fileName; + } else { + endpoint = fileServiceUrl + urlEncodePath(relativePath); } endpoint += "?jobId=" + job.getJobId();