Fabio Sinibaldi 2016-05-27 10:48:30 +00:00
parent 7eff5dec47
commit 7f8b2880fd
2 changed files with 22 additions and 4 deletions

View File

@ -1,16 +1,23 @@
package org.gcube.data.transfer.library.transferers;
import static org.gcube.resources.discovery.icclient.ICFactory.clientFor;
import static org.gcube.resources.discovery.icclient.ICFactory.queryFor;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;
import lombok.extern.slf4j.Slf4j;
import org.gcube.common.resources.gcore.HostingNode;
import org.gcube.data.transfer.library.caches.CapabilitiesCache;
import org.gcube.data.transfer.library.client.Client;
import org.gcube.data.transfer.library.faults.HostingNodeNotFoundException;
import org.gcube.data.transfer.library.faults.ServiceNotFoundException;
import org.gcube.data.transfer.library.faults.UnreachableNodeException;
import org.gcube.data.transfer.model.TransferCapabilities;
import org.gcube.resources.discovery.client.api.DiscoveryClient;
import org.gcube.resources.discovery.client.queries.api.SimpleQuery;
@Slf4j
public class TransfererBuilder {
@ -53,7 +60,15 @@ public class TransfererBuilder {
private static String retrieveHostnameByNodeId(String nodeId)throws HostingNodeNotFoundException{
//TODO implement endpoint retrieval
return null;
SimpleQuery query = queryFor(HostingNode.class);
query.addCondition("$resource/ID/text() eq '"+nodeId+"'");
List<HostingNode> found= clientFor(HostingNode.class).submit(query);
if(found.isEmpty()) throw new HostingNodeNotFoundException("No Hosting node with the id "+nodeId);
return "http://"+found.get(0).profile().description().name();
}
}

View File

@ -7,6 +7,7 @@ import java.net.MalformedURLException;
import org.gcube.common.scope.api.ScopeProvider;
import org.gcube.contentmanagement.blobstorage.transport.backend.RemoteBackendException;
import org.gcube.data.transfer.library.faults.FailedTransferException;
import org.gcube.data.transfer.library.faults.HostingNodeNotFoundException;
import org.gcube.data.transfer.library.faults.InitializationException;
import org.gcube.data.transfer.library.faults.InvalidSourceException;
import org.gcube.data.transfer.library.faults.ServiceNotFoundException;
@ -19,14 +20,16 @@ import org.junit.Test;
public class TransfererTest {
static String hostname="http://pc-fabio.isti.cnr.it:8080/data-transfer-service/gcube/service";
static String nodeId="462b68c5-463f-4295-86da-37d6c0abc7ea";
static String scope="/gcube/devNext";
static DataTransferClient client;
@BeforeClass
public static void init() throws UnreachableNodeException, ServiceNotFoundException{
public static void init() throws UnreachableNodeException, ServiceNotFoundException, HostingNodeNotFoundException{
ScopeProvider.instance.set(scope);
client=DataTransferClient.getInstanceByEndpoint(hostname);
// client=DataTransferClient.getInstanceByEndpoint(hostname);
client=DataTransferClient.getInstanceByNodeId(nodeId);
}
@Test