git-svn-id: http://svn.research-infrastructures.eu/public/d4science/gcube/trunk/data-transfer/data-transfer-library@128841 82a268e6-3cf1-43bd-a215-b396298e98cf
This commit is contained in:
parent
3ef2f149ce
commit
edaf385807
|
@ -26,26 +26,29 @@ public class Client {
|
|||
config.register(JAXBElement.class);
|
||||
}
|
||||
|
||||
private String hostname;
|
||||
// private String hostname;
|
||||
|
||||
private WebTarget rootTarget;
|
||||
|
||||
public Client(String hostname){
|
||||
log.debug("Creating client for "+hostname);
|
||||
this.hostname=hostname;
|
||||
this.hostname=hostname+"";
|
||||
rootTarget= ClientBuilder.newClient(config).target(hostname).path("/data-transfer-service/").path(ServiceConstants.APPLICATION_PATH);
|
||||
}
|
||||
|
||||
public TransferCapabilities getCapabilties(){
|
||||
log.debug("Getting capabilities to {} ",hostname);
|
||||
return rootTarget.path(ServiceConstants.CAPABILTIES_SERVLET_NAME).request(MediaType.APPLICATION_XML_TYPE).get(TransferCapabilities.class);
|
||||
}
|
||||
|
||||
|
||||
public TransferTicket submit(TransferRequest request){
|
||||
log.debug("Sending request {} to {}",request,hostname);
|
||||
return rootTarget.path(ServiceConstants.REQUESTS_SERVLET_NAME).request(MediaType.APPLICATION_XML_TYPE).post(Entity.entity(request,MediaType.APPLICATION_XML),TransferTicket.class);
|
||||
}
|
||||
|
||||
public TransferTicket getTransferStatus(String transferId){
|
||||
log.debug("Requesting transfer status [id = {}, hostname={}]",transferId,hostname);
|
||||
return rootTarget.path(ServiceConstants.STATUS_SERVLET_NAME).path(transferId).request(MediaType.APPLICATION_XML).get(TransferTicket.class);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,36 +1,55 @@
|
|||
package org.gcube.data.transfer.library.transferers;
|
||||
|
||||
import java.net.MalformedURLException;
|
||||
import java.net.URL;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
import org.gcube.data.transfer.library.caches.CapabilitiesCache;
|
||||
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.library.utils.Utils;
|
||||
import org.gcube.data.transfer.model.ServiceConstants;
|
||||
import org.gcube.data.transfer.model.TransferCapabilities;
|
||||
@Slf4j
|
||||
public class TransfererBuilder {
|
||||
|
||||
private static final int timeout=10*1000;
|
||||
|
||||
|
||||
|
||||
public static Transferer getTransfererByHost(String host) throws UnreachableNodeException, ServiceNotFoundException{
|
||||
log.debug("Get transferer by Host "+host);
|
||||
if(!Utils.pingURL(host, timeout)) throw new UnreachableNodeException("No response from host in "+timeout);
|
||||
if(!Utils.pingURL(host+"REST-API/"+ServiceConstants.APPLICATION_PATH, timeout)) throw new ServiceNotFoundException("No DT Service found @ "+host+"REST-API/"+ServiceConstants.APPLICATION_PATH);
|
||||
log.debug("Host is ok, getting targetCapabilities");
|
||||
TransferCapabilities cap=CapabilitiesCache.getInstance().getObject(host);
|
||||
return new HTTPTransferer(cap);
|
||||
|
||||
|
||||
//e.g. http://pc-fabio.isti.cnr.it:8080/data-transfer-service/gcube/service
|
||||
|
||||
public static Transferer getTransfererByHost(String endpoint) throws UnreachableNodeException, ServiceNotFoundException{
|
||||
log.debug("Get transferer by Host "+endpoint);
|
||||
try{
|
||||
URL url=new URL(endpoint);
|
||||
|
||||
String hostname=url.getProtocol()+"://"+url.getHost()+":"+url.getPort();
|
||||
//TODO Implement checks
|
||||
|
||||
// if(!Utils.pingURL(host, timeout)) throw new UnreachableNodeException("No response from host in "+timeout);
|
||||
// String finalHost=host;
|
||||
// if(!finalHost.endsWith(ServiceConstants.APPLICATION_PATH)){
|
||||
// // adjust host
|
||||
// finalHost=finalHost+(host.endsWith("/")?"":"/")+"data-transfer-service"+ServiceConstants.APPLICATION_PATH;
|
||||
// }
|
||||
//
|
||||
//
|
||||
// if(!Utils.pingURL(finalHost, timeout)) throw new ServiceNotFoundException("No DT Service found @ "+finalHost);
|
||||
// log.debug("Host is ok, getting targetCapabilities");
|
||||
TransferCapabilities cap=CapabilitiesCache.getInstance().getObject(hostname);
|
||||
return new HTTPTransferer(cap);
|
||||
}catch(MalformedURLException e){
|
||||
throw new ServiceNotFoundException(e);
|
||||
}
|
||||
}
|
||||
public static Transferer getTransfererByhostingNodeId(String hostId) throws HostingNodeNotFoundException, UnreachableNodeException, ServiceNotFoundException{
|
||||
String hostname=retrieveHostnameByNodeId(hostId);
|
||||
return getTransfererByHost(hostname);
|
||||
}
|
||||
|
||||
|
||||
|
||||
private static String retrieveHostnameByNodeId(String nodeId)throws HostingNodeNotFoundException{
|
||||
//TODO implement endpoint retrieval
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -15,19 +15,19 @@ import org.gcube.data.transfer.model.TransferTicket.Status;
|
|||
import org.gcube.data.transfer.model.options.HttpDownloadOptions;
|
||||
import org.gcube.data.transfer.model.settings.HttpDownloadSettings;
|
||||
import org.glassfish.jersey.client.ClientConfig;
|
||||
import org.junit.Before;
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.Test;
|
||||
|
||||
|
||||
public class TestClientCalls {
|
||||
|
||||
String hostname="http://pc-fabio.isti.cnr.it:8080";
|
||||
String scope="/gcube/devNext";
|
||||
Client client;
|
||||
static String hostname="http://pc-fabio.isti.cnr.it:8080";
|
||||
static String scope="/gcube/devNext";
|
||||
static Client client;
|
||||
|
||||
|
||||
@Before
|
||||
public void init(){
|
||||
@BeforeClass
|
||||
public static void init(){
|
||||
ScopeProvider.instance.set(scope);
|
||||
client=new Client(hostname);
|
||||
}
|
||||
|
|
|
@ -1,20 +1,24 @@
|
|||
package org.gcube.data.transfer.library;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileNotFoundException;
|
||||
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.InitializationException;
|
||||
import org.gcube.data.transfer.library.faults.InvalidSourceException;
|
||||
import org.gcube.data.transfer.library.faults.ServiceNotFoundException;
|
||||
import org.gcube.data.transfer.library.faults.SourceNotSetException;
|
||||
import org.gcube.data.transfer.library.faults.UnreachableNodeException;
|
||||
import org.gcube.data.transfer.library.utils.StorageUtils;
|
||||
import org.junit.BeforeClass;
|
||||
import org.junit.Test;
|
||||
|
||||
public class TransfererTest {
|
||||
|
||||
static String hostname="http://pc-fabio.isti.cnr.it:8080";
|
||||
static String hostname="http://pc-fabio.isti.cnr.it:8080/data-transfer-service/gcube/service";
|
||||
static String scope="/gcube/devNext";
|
||||
|
||||
static DataTransferClient client;
|
||||
|
@ -34,14 +38,31 @@ public class TransfererTest {
|
|||
|
||||
@Test
|
||||
public void httpUrl() throws MalformedURLException, InvalidSourceException, SourceNotSetException, FailedTransferException, InitializationException{
|
||||
String link="https://www.dropbox.com/s/giqsbgmlkk9zklc/COMA%20-%20Last%20Aim.mp3?dl=0";
|
||||
String link="http://goo.gl/oLP7zG";
|
||||
System.out.println(client.httpSource(link));
|
||||
}
|
||||
|
||||
|
||||
@Test
|
||||
public void storage() throws InvalidSourceException, SourceNotSetException, FailedTransferException, InitializationException{
|
||||
public void storage() throws InvalidSourceException, SourceNotSetException, FailedTransferException, InitializationException, RemoteBackendException, FileNotFoundException{
|
||||
String toUpload="/home/fabio/Downloads/Incantesimi3_5.doc";
|
||||
System.out.println(client.storageId(toUpload));
|
||||
System.out.println(client.storageId(StorageUtils.putOntoStorage(new File(toUpload))));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void wrongStorage() throws InvalidSourceException, SourceNotSetException, FailedTransferException, InitializationException{
|
||||
System.out.println(client.storageId("13245780t"));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void wrongLocal() throws InvalidSourceException, SourceNotSetException, FailedTransferException, InitializationException{
|
||||
String localFile="/home/fabio/Downloads/123045689.mp3";
|
||||
System.out.println(client.localFile(localFile));
|
||||
}
|
||||
|
||||
@Test
|
||||
public void wrongUrl() throws MalformedURLException, InvalidSourceException, SourceNotSetException, FailedTransferException, InitializationException{
|
||||
String link="https://www.dropbox.com/s/789023450";
|
||||
System.out.println(client.httpSource(link));
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue