diff options
Diffstat (limited to 'src/main/java/org/openslx/satellitedaemon/filetransfer/FileDownloadWorker.java')
-rw-r--r-- | src/main/java/org/openslx/satellitedaemon/filetransfer/FileDownloadWorker.java | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/src/main/java/org/openslx/satellitedaemon/filetransfer/FileDownloadWorker.java b/src/main/java/org/openslx/satellitedaemon/filetransfer/FileDownloadWorker.java new file mode 100644 index 0000000..e1ba7e9 --- /dev/null +++ b/src/main/java/org/openslx/satellitedaemon/filetransfer/FileDownloadWorker.java @@ -0,0 +1,51 @@ +package org.openslx.satellitedaemon.filetransfer; + +import java.util.ArrayList; +import java.util.List; + +import org.apache.log4j.Logger; +import org.openslx.filetransfer.Downloader; +import org.openslx.imagemaster.thrift.iface.DownloadInfos; +import org.openslx.satellitedaemon.Globals; +import org.openslx.satellitedaemon.Globals.PropInt; +import org.openslx.satellitedaemon.Globals.PropString; +import org.openslx.satellitedaemon.db.DbImage; + + +public class FileDownloadWorker implements Runnable +{ + private static Logger log = Logger.getLogger( FileUploadWorker.class ); + + @Override + public void run() + { + while ( true ) { + List<DbImage> imageList = DbImage.getAllMarkedForDownload(); + log.info( "FILTRANSFERDownloadWorker: imageList Contains " + imageList.size() + " items." ); + for ( DbImage image : imageList ) { + + List<Integer> range = new ArrayList<Integer>(); + for (long i = 0; i < (image.fileSize / Globals.getPropertyInt( PropInt.BLOCKSIZE )); i++) { + range.add( (int) i ); + } + DownloadInfos downInfos = ThriftConnection.getDownloadInfos( image, range ); + if ( downInfos == null ) { + log.error( "The DownloadInfos returned by ThriftConnection class are null" ); + } + + Downloader d = new Downloader( Globals.getPropertyString( PropString.FILETRANSFERSERVERIP ), downInfos.port, Globals.getMasterServerSslContext() ); + d.sendToken( downInfos.token ); + d.setOutputFilename( "/home/michael/Downloads/tescht.whatever" ); + while ( d.readMetaData() ) + d.readBinary(); + } + try { + Thread.sleep( 5 * 60 * 1000 ); + } catch ( InterruptedException e ) { + Thread.currentThread().interrupt(); + return; + } + } + + } +} |