diff options
Diffstat (limited to 'src/main/java/org/openslx/satellitedaemon/ftp/FtpDownloadWorker.java')
-rw-r--r-- | src/main/java/org/openslx/satellitedaemon/ftp/FtpDownloadWorker.java | 93 |
1 files changed, 8 insertions, 85 deletions
diff --git a/src/main/java/org/openslx/satellitedaemon/ftp/FtpDownloadWorker.java b/src/main/java/org/openslx/satellitedaemon/ftp/FtpDownloadWorker.java index d315735..73e0b03 100644 --- a/src/main/java/org/openslx/satellitedaemon/ftp/FtpDownloadWorker.java +++ b/src/main/java/org/openslx/satellitedaemon/ftp/FtpDownloadWorker.java @@ -1,19 +1,8 @@ package org.openslx.satellitedaemon.ftp; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.security.KeyManagementException; -import java.security.KeyStore; -import java.security.KeyStoreException; -import java.security.NoSuchAlgorithmException; -import java.security.cert.CertificateException; +import java.util.ArrayList; import java.util.List; -import javax.net.ssl.SSLContext; -import javax.net.ssl.TrustManager; -import javax.net.ssl.TrustManagerFactory; - import org.apache.log4j.Logger; import org.openslx.filetransfer.Downloader; import org.openslx.imagemaster.thrift.iface.DownloadInfos; @@ -22,7 +11,6 @@ import org.openslx.satellitedaemon.Globals.PropInt; import org.openslx.satellitedaemon.Globals.PropString; import org.openslx.satellitedaemon.db.DbImage; -// TODO: Pretty much the same todos as in the uploader apply here public class FtpDownloadWorker implements Runnable { @@ -36,86 +24,21 @@ public class FtpDownloadWorker implements Runnable log.info( "FtpDownloadWorker: imageList Contains " + imageList.size() + " items." ); for ( DbImage image : imageList ) { - DownloadInfos downInfos = ThriftConnection.getDownloadInfos( image ); + 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" ); } - char[] passphrase = Globals.getPropertyString( PropString.FTPSKEYSTOREPWD ).toCharArray(); - KeyStore keystore; - try { - keystore = KeyStore.getInstance( "JKS" ); - keystore.load( new FileInputStream( Globals.getPropertyString( PropString.FTPSKEYSTOREPATH ) ), passphrase ); - TrustManagerFactory tmf = TrustManagerFactory.getInstance( TrustManagerFactory.getDefaultAlgorithm() ); - tmf.init( keystore ); - SSLContext context = SSLContext.getInstance( "SSLv3" ); - TrustManager[] trustManagers = tmf.getTrustManagers(); - context.init( null, trustManagers, null ); - - Downloader d = new Downloader( Globals.getPropertyString( PropString.FTPSERVERIP ), Globals.getPropertyInt( PropInt.FTPPORT ), context ); + Downloader d = new Downloader( Globals.getPropertyString( PropString.FTPSERVERIP ), downInfos.port, Globals.getMasterServerSslContext() ); d.sendToken( downInfos.token ); + d.setOutputFilename( "/home/michael/Downloads/tescht.whatever" ); while ( d.readMetaData() ) d.readBinary(); - } catch ( NoSuchAlgorithmException e ) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch ( CertificateException e ) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch ( FileNotFoundException e ) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch ( IOException e ) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch ( KeyStoreException e ) { - // TODO Auto-generated catch block - e.printStackTrace(); - } catch ( KeyManagementException e ) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - - // try { - // TrustManagerFactory trustManagerFactory = TrustManagerFactory - // .getInstance( KeyManagerFactory.getDefaultAlgorithm() ); - // KeyStore keystore = KeyStore.getInstance( Globals.getPropertyString( PropString.KEYSTORETYPE ) ); - // keystore.load( new FileInputStream( new File( - // Globals.getPropertyString( PropString.FTPSKEYSTOREPATH ) ) ), - // Globals.getPropertyString( PropString.FTPSKEYSTOREPWD ).toCharArray() ); - // trustManagerFactory.init( keystore ); - // TrustManager trustManager = trustManagerFactory.getTrustManagers()[0]; - // FTPSClient ftpClient = new FTPSClient( "SSL", true ); - // ftpClient.setTrustManager( trustManager ); - // try { - // ftpClient.connect( Globals.getPropertyString( PropString.FTPSERVERIP ), Globals.getPropertyInt( PropInt.FTPPORT ) ); - // if ( !ftpClient.login( ftpc.username, ftpc.password ) ) { - // log.error( "FTP problem. Coundn't log in!" ); - // } - // File file = new File( "/tmp/" + image.guid + ".vmdk"); - // ftpClient.setFileType( FTP.BINARY_FILE_TYPE ); - // log.info( "FtpDownloadWorker: ftpc.filename: " + ftpc.filename ); - // InputStream is = ftpClient.retrieveFileStream( ftpc.filename ); - // FileOutputStream fos = new FileOutputStream( file ); - // int b; - // while ((b = is.read()) != -1) { - // fos.write( b ); - // } - // is.close(); - // fos.close(); - // ThriftConnection.finishedDownload( ftpc.username); - // - // } catch (IOException e) { - // log.error("FtpDownloadWorker: Error creating the FileInputStream"); - // } - // finally { - // ftpClient.disconnect(); - // log.info( "FtpDownloadWorker: ftpClient disconnected" ); - // } - // } catch ( NoSuchAlgorithmException | KeyStoreException | CertificateException | IOException e ) { - // log.debug( "FtpDownloadWorker: Problem with Keystore ore FtpsClient creation." ); - // } } try { Thread.sleep( 5 * 60 * 1000 ); |