From: <bsc...@us...> - 2011-03-02 20:58:00
|
Revision: 9152 http://unicore.svn.sourceforge.net/unicore/?rev=9152&view=rev Author: bschuller Date: 2011-03-02 20:57:53 +0000 (Wed, 02 Mar 2011) Log Message: ----------- uftp staging incl testcase Modified Paths: -------------- unicorex/trunk/uas-core/src/main/java/de/fzj/unicore/uas/xnjs/U6FileExportBase.java unicorex/trunk/uas-core/src/main/java/de/fzj/unicore/uas/xnjs/U6FileImportBase.java unicorex/trunk/uas-core/src/main/java/de/fzj/unicore/uas/xnjs/U6FileTransferBase.java unicorex/trunk/uas-uftp/src/main/java/de/fzj/unicore/uas/client/UFTPFileTransferClient.java unicorex/trunk/uas-uftp/src/main/java/de/fzj/unicore/uas/fts/uftp/UFTPFileTransferImpl.java unicorex/trunk/uas-uftp/src/test/resources/log4j.properties unicorex/trunk/uas-uftp/src/test/resources/uas.config Modified: unicorex/trunk/uas-core/src/main/java/de/fzj/unicore/uas/xnjs/U6FileExportBase.java =================================================================== --- unicorex/trunk/uas-core/src/main/java/de/fzj/unicore/uas/xnjs/U6FileExportBase.java 2011-03-02 15:41:03 UTC (rev 9151) +++ unicorex/trunk/uas-core/src/main/java/de/fzj/unicore/uas/xnjs/U6FileExportBase.java 2011-03-02 20:57:53 UTC (rev 9152) @@ -4,6 +4,7 @@ import java.io.InputStream; import java.util.ArrayList; import java.util.List; +import java.util.Map; import org.unigrids.services.atomic.types.GridFileType; import org.unigrids.x2006.x04.services.sms.ImportFileDocument; @@ -127,6 +128,10 @@ req.addNewImportFile().setDestination(target); req.getImportFile().setProtocol(getProtocol()); boolean append=OverwritePolicy.APPEND.equals(overwrite); + Map<String,String>ep=getExtraParameters(); + if(ep!=null && ep.size()>0){ + req.getImportFile().setExtraParameters(convert(ep)); + } req.getImportFile().setOverwrite(!append); ImportFileResponseDocument res=sms.ImportFile(req); fileTransferInstanceEpr=res.getImportFileResponse().getImportEPR(); Modified: unicorex/trunk/uas-core/src/main/java/de/fzj/unicore/uas/xnjs/U6FileImportBase.java =================================================================== --- unicorex/trunk/uas-core/src/main/java/de/fzj/unicore/uas/xnjs/U6FileImportBase.java 2011-03-02 15:41:03 UTC (rev 9151) +++ unicorex/trunk/uas-core/src/main/java/de/fzj/unicore/uas/xnjs/U6FileImportBase.java 2011-03-02 20:57:53 UTC (rev 9152) @@ -4,6 +4,7 @@ import java.io.OutputStream; import java.util.ArrayList; import java.util.List; +import java.util.Map; import org.unigrids.services.atomic.types.GridFileType; import org.unigrids.services.atomic.types.PermissionsType; @@ -167,6 +168,10 @@ ExportFileDocument req=ExportFileDocument.Factory.newInstance(); req.addNewExportFile().setSource(source.getPath()); req.getExportFile().setProtocol(getProtocol()); + Map<String,String>ep=getExtraParameters(); + if(ep!=null && ep.size()>0){ + req.getExportFile().setExtraParameters(convert(ep)); + } ExportFileResponseDocument res=sms.ExportFile(req); fileTransferInstanceEpr=res.getExportFileResponse().getExportEPR(); ftc=getFTClient(); @@ -245,4 +250,5 @@ } } + } Modified: unicorex/trunk/uas-core/src/main/java/de/fzj/unicore/uas/xnjs/U6FileTransferBase.java =================================================================== --- unicorex/trunk/uas-core/src/main/java/de/fzj/unicore/uas/xnjs/U6FileTransferBase.java 2011-03-02 15:41:03 UTC (rev 9151) +++ unicorex/trunk/uas-core/src/main/java/de/fzj/unicore/uas/xnjs/U6FileTransferBase.java 2011-03-02 20:57:53 UTC (rev 9152) @@ -6,9 +6,13 @@ import java.util.Map; import org.apache.log4j.Logger; +import org.unigrids.services.atomic.types.PropertyType; import org.unigrids.services.atomic.types.ProtocolType; +import org.unigrids.x2006.x04.services.sms.ExtraParametersDocument.ExtraParameters; import org.w3.x2005.x08.addressing.EndpointReferenceType; +import sun.nio.ch.EPollSelectorProvider; + import de.fzj.unicore.uas.client.FileTransferClient; import de.fzj.unicore.uas.fts.ProgressListener; import de.fzj.unicore.uas.util.LogUtil; @@ -307,6 +311,24 @@ return filePath; } + /** + * setup a map containing protocol dependent extra parameters + * @return {@link Map} or <code>null</code> + */ + protected Map<String,String>getExtraParameters(){ + return null; + } + + protected final ExtraParameters convert(Map<String,String>params){ + ExtraParameters r=ExtraParameters.Factory.newInstance(); + for(Map.Entry<String, String>e: params.entrySet()){ + PropertyType t=r.addNewParameter(); + t.setName(e.getKey()); + t.setValue(e.getValue()); + } + return r; + } + public boolean isExport() { return export; } Modified: unicorex/trunk/uas-uftp/src/main/java/de/fzj/unicore/uas/client/UFTPFileTransferClient.java =================================================================== --- unicorex/trunk/uas-uftp/src/main/java/de/fzj/unicore/uas/client/UFTPFileTransferClient.java 2011-03-02 15:41:03 UTC (rev 9151) +++ unicorex/trunk/uas-uftp/src/main/java/de/fzj/unicore/uas/client/UFTPFileTransferClient.java 2011-03-02 20:57:53 UTC (rev 9152) @@ -66,6 +66,10 @@ super(url, epr, sec); } + public void setSecret(String secret){ + this.secret=secret; + } + @Override public void readAllData(OutputStream os) throws Exception { if(localMode){ Modified: unicorex/trunk/uas-uftp/src/main/java/de/fzj/unicore/uas/fts/uftp/UFTPFileTransferImpl.java =================================================================== --- unicorex/trunk/uas-uftp/src/main/java/de/fzj/unicore/uas/fts/uftp/UFTPFileTransferImpl.java 2011-03-02 15:41:03 UTC (rev 9151) +++ unicorex/trunk/uas-uftp/src/main/java/de/fzj/unicore/uas/fts/uftp/UFTPFileTransferImpl.java 2011-03-02 20:57:53 UTC (rev 9152) @@ -4,14 +4,17 @@ import java.net.InetAddress; import java.util.Map; +import org.apache.log4j.Logger; import org.apache.xmlbeans.XmlObject; import org.unigrids.x2006.x04.services.fts.PropertyDocument; import de.fzj.unicore.uas.client.UFTPFileTransferClient; import de.fzj.unicore.uas.fts.FileTransferImpl; +import de.fzj.unicore.uas.util.LogUtil; import de.fzj.unicore.wsrflite.Kernel; import de.fzj.unicore.wsrflite.persistence.Persist; import de.fzj.unicore.wsrflite.xmlbeans.rp.ImmutableResourceProperty; +import eu.unicore.security.Client; import eu.unicore.uftp.server.Job; /** @@ -20,8 +23,34 @@ * @author schuller */ public class UFTPFileTransferImpl extends FileTransferImpl { + + private static final Logger logger=LogUtil.getLogger(LogUtil.SERVICES, UFTPFileTransferImpl.class); + + /** + * limit for number of streams + */ + public static final String PARAM_STREAMS_LIMIT="uftp.streams.limit"; + /** + * server host + */ + public static final String PARAM_SERVER_HOST="uftp.server.host"; + + /** + * server host + */ + public static final String PARAM_SERVER_PORT="uftp.server.port"; + + /** + * control socket host + */ + public static final String PARAM_CONTROL_HOST="uftp.control.host"; + /** + * control socket port + */ + public static final String PARAM_CONTROL_PORT="uftp.control.port"; + @Persist private String clientHost; @@ -34,8 +63,11 @@ @Override public void initialise(String sname, Map<String, Object> map) throws Exception{ super.initialise(sname, map); + logger.info("Creating new UFTP file transfer for client "+getClient()); clientHost=extraParameters.get(UFTPFileTransferClient.PARAM_CLIENT_HOST); - streams=Integer.parseInt(extraParameters.get(UFTPFileTransferClient.PARAM_STREAMS)); + if(clientHost==null)throw new IllegalArgumentException("Missing parameter: "+UFTPFileTransferClient.PARAM_CLIENT_HOST); + String streamsP=extraParameters.get(UFTPFileTransferClient.PARAM_STREAMS); + streams=streamsP!=null?Integer.parseInt(streamsP) : 2; checkNumConnectionsValid(); String secret=extraParameters.get(UFTPFileTransferClient.PARAM_SECRET); publishServerParams(); @@ -47,7 +79,7 @@ * check and enforce server limit on numconnections */ protected void checkNumConnectionsValid(){ - int maxStreams=Integer.parseInt(Kernel.getKernel().getProperty("udt.server.maxStreams", "4")); + int maxStreams=Integer.parseInt(Kernel.getKernel().getProperty(PARAM_STREAMS_LIMIT, "4")); streams=Math.min(maxStreams, streams); } @@ -55,8 +87,8 @@ * put server parameters (host, port, number of streams) into extra RP properties */ protected void publishServerParams(){ - String serverHost=Kernel.getKernel().getProperty("udt.server.host","localhost"); - int serverPort=Integer.parseInt(Kernel.getKernel().getProperty("udt.server.port", "64435")); + String serverHost=Kernel.getKernel().getProperty(PARAM_SERVER_HOST,"localhost"); + int serverPort=Integer.parseInt(Kernel.getKernel().getProperty(PARAM_SERVER_PORT, "64435")); PropertyDocument pd=PropertyDocument.Factory.newInstance(); pd.addNewProperty().setName(UFTPFileTransferClient.PARAM_SERVER_HOST); @@ -79,13 +111,20 @@ * @throws Exception */ public void setupUFTP(String secret)throws Exception{ - String serverHost=Kernel.getKernel().getProperty("udt.server.host", "localhost"); - int serverJobPort=Integer.parseInt(Kernel.getKernel().getProperty("udt.server.contolport", "64434")); + String controlHost=Kernel.getKernel().getProperty("uftp.control.host", "localhost"); + int controlPort=Integer.parseInt(Kernel.getKernel().getProperty("uftp.control.port", "64434")); + //setup xlogin/group + String user="nobody"; + String group="nobody"; + Client c=getClient(); + if(c.getXlogin()!=null){ + user=c.getXlogin().getUserName(); + group=c.getXlogin().getGroup(); + logger.debug("Initiating UFTP file transfer for user "+user); + } //"local" mode... we really need to do this via the TSI - String user="nobody"; - String group="nobory"; - runLocally(serverHost,serverJobPort,secret,user,group); + runLocally(controlHost,controlPort,secret,user,group); } /** @@ -103,4 +142,16 @@ job.sendTo(InetAddress.getByName(host), port); } + /** + * uses the XNJS to send the uftp job to the UFTPD server + * @param host + * @param port + * @param secret + * @param user + * @param group + * @throws Exception + */ + protected void runViaXNJS(String host, int port, String secret, String user, String group)throws Exception{ + //TODO + } } Modified: unicorex/trunk/uas-uftp/src/test/resources/log4j.properties =================================================================== --- unicorex/trunk/uas-uftp/src/test/resources/log4j.properties 2011-03-02 15:41:03 UTC (rev 9151) +++ unicorex/trunk/uas-uftp/src/test/resources/log4j.properties 2011-03-02 20:57:53 UTC (rev 9152) @@ -22,3 +22,5 @@ log4j.logger.unicore.services=INFO + +log4j.logger.unicore.services.SMSBaseImpl=DEBUG \ No newline at end of file Modified: unicorex/trunk/uas-uftp/src/test/resources/uas.config =================================================================== --- unicorex/trunk/uas-uftp/src/test/resources/uas.config 2011-03-02 15:41:03 UTC (rev 9151) +++ unicorex/trunk/uas-uftp/src/test/resources/uas.config 2011-03-02 20:57:53 UTC (rev 9152) @@ -42,4 +42,4 @@ # # What protocols should a SMS support? # -uas.sms.protocols=BFT UFTP +uas.sms.protocols=BFT UFTP RBYTEIO This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |