summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openslx/satellitedaemon/ftp/FtpUploadWorker.java
diff options
context:
space:
mode:
authorMichael Petretti2014-05-19 17:33:17 +0200
committerMichael Petretti2014-05-19 17:33:17 +0200
commitf593a42eae01cbec9c64c1a497205b3b74749438 (patch)
tree984b4f31fdef0e82594b6d058034dd6e4cd396dd /src/main/java/org/openslx/satellitedaemon/ftp/FtpUploadWorker.java
parentImprovement of FtpConnection Class. (diff)
downloadsatellite-daemon-f593a42eae01cbec9c64c1a497205b3b74749438.tar.gz
satellite-daemon-f593a42eae01cbec9c64c1a497205b3b74749438.tar.xz
satellite-daemon-f593a42eae01cbec9c64c1a497205b3b74749438.zip
Added the new FtpUploadWorker-Class
Diffstat (limited to 'src/main/java/org/openslx/satellitedaemon/ftp/FtpUploadWorker.java')
-rw-r--r--src/main/java/org/openslx/satellitedaemon/ftp/FtpUploadWorker.java87
1 files changed, 87 insertions, 0 deletions
diff --git a/src/main/java/org/openslx/satellitedaemon/ftp/FtpUploadWorker.java b/src/main/java/org/openslx/satellitedaemon/ftp/FtpUploadWorker.java
new file mode 100644
index 0000000..4f90467
--- /dev/null
+++ b/src/main/java/org/openslx/satellitedaemon/ftp/FtpUploadWorker.java
@@ -0,0 +1,87 @@
+package org.openslx.satellitedaemon.ftp;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.net.ConnectException;
+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 java.util.UUID;
+
+import javax.net.ssl.KeyManagerFactory;
+import javax.net.ssl.TrustManager;
+import javax.net.ssl.TrustManagerFactory;
+
+import org.apache.commons.net.ftp.FTPSClient;
+import org.openslx.imagemaster.thrift.iface.FtpCredentials;
+import org.openslx.imagemaster.thrift.iface.ImageData;
+import org.openslx.satellitedaemon.db.DbImage;
+
+public class FtpUploadWorker implements Runnable
+{
+ static String nilsIp = "132.230.4.23";
+ static int ftpPort = 2221;
+
+ @Override
+ public void run()
+ {
+ List<DbImage> imageList = new ArrayList<DbImage>();
+ while ( true ) {
+ imageList = DbImage.getAllMarkedForUpload();
+ while ( !imageList.isEmpty() ) {
+ // TODO: imDat should be filled by the first entry of imageList.
+ // imageList.get(0);
+ ImageData imDat = new ImageData( UUID.randomUUID().toString(), 113,
+ "TestImage", System.currentTimeMillis(), System.currentTimeMillis(), "me", "anyThing",
+ true, false, "best", "theVeryBest", 1024 );
+
+ FtpCredentials ftpc = ThriftConnection.getFtpCredentials( imDat );
+
+ try {
+ TrustManagerFactory trustManagerFactory = TrustManagerFactory
+ .getInstance( KeyManagerFactory.getDefaultAlgorithm() );
+ KeyStore keystore = KeyStore.getInstance( "JKS" );
+ keystore.load( new FileInputStream( new File(
+ "/home/michael/satellite-daemon/config/ftpsid.jks" ) ),
+ "password".toCharArray() );
+ trustManagerFactory.init( keystore );
+ TrustManager trustManager = trustManagerFactory.getTrustManagers()[0];
+ FTPSClient ftpClient = new FTPSClient( "SSL", true );
+ ftpClient.setTrustManager( trustManager );
+ try {
+ ftpClient.connect( nilsIp, ftpPort );
+ if ( !ftpClient.login( ftpc.username, ftpc.password ) ) {
+ throw new ConnectException( "Could not login." );
+ }
+// System.out.println( "Connected to " + nilsIp + ":" + ftpPort
+// + ". Reply code: " + ftpClient.getReplyCode() );
+
+ // TODO: Where do I find the path to the db-image?
+ File file = new File( "/path/to/File" );
+ FileInputStream fis = new FileInputStream( file );
+
+ // TODO: What is the path where it should be stored?
+ ftpClient.storeFile( "/path/where/theImage/belongs", fis );
+
+ } finally {
+ ftpClient.disconnect();
+ }
+ } catch ( NoSuchAlgorithmException | KeyStoreException | CertificateException | IOException e ) {
+ }
+ imageList.remove( 0 );
+ }
+ try {
+ Thread.sleep( 5 * 60 * 1000 );
+ } catch ( InterruptedException e ) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
+ }
+ }
+
+ }
+
+}