summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openslx/satellitedaemon/filetransfer
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/openslx/satellitedaemon/filetransfer')
-rw-r--r--src/main/java/org/openslx/satellitedaemon/filetransfer/FileUploadWorker.java22
-rw-r--r--src/main/java/org/openslx/satellitedaemon/filetransfer/ThriftConnection.java11
2 files changed, 23 insertions, 10 deletions
diff --git a/src/main/java/org/openslx/satellitedaemon/filetransfer/FileUploadWorker.java b/src/main/java/org/openslx/satellitedaemon/filetransfer/FileUploadWorker.java
index 156414d..4876e6c 100644
--- a/src/main/java/org/openslx/satellitedaemon/filetransfer/FileUploadWorker.java
+++ b/src/main/java/org/openslx/satellitedaemon/filetransfer/FileUploadWorker.java
@@ -6,6 +6,7 @@ import java.util.List;
import org.apache.log4j.Logger;
import org.openslx.filetransfer.Uploader;
import org.openslx.imagemaster.thrift.iface.ImageData;
+import org.openslx.imagemaster.thrift.iface.ImageDataException;
import org.openslx.imagemaster.thrift.iface.UploadData;
import org.openslx.imagemaster.thrift.iface.UserInfo;
import org.openslx.satellitedaemon.Globals;
@@ -36,11 +37,26 @@ public class FileUploadWorker implements Runnable
String path = Globals.getImageFolder() + "/" + image.path;
+ log.info( imDat.toString() );
// ThriftConnection.getUploadInfos returns uploadInfo and handles ThriftAuthentication
DbUser dbUser = DbUser.getUserById( imDat.ownerLogin );
- UserInfo userInfo = new UserInfo( dbUser.userId, dbUser.firstName, dbUser.lastName, dbUser.email, null );
- ThriftConnection.publishUser( userInfo );
- UploadData upInfos = ThriftConnection.getUploadInfos( imDat, path );
+ if (dbUser == null) {
+ image.updateStatus( Status.only_local );
+ log.warn( "Unknown user from database." );
+ } else {
+ UserInfo userInfo = new UserInfo( dbUser.userId, dbUser.firstName, dbUser.lastName, dbUser.email, dbUser.institution );
+ ThriftConnection.publishUser( userInfo );
+ }
+
+ UploadData upInfos;
+ try {
+ upInfos = ThriftConnection.getUploadInfos( imDat, path );
+ } catch ( ImageDataException e1 ) {
+ log.error( "Invalid image data. Not known by master.", e1 );
+ // mark image as only_local, that this image will be skipped next time.
+ image.updateStatus( Status.only_local );
+ continue;
+ }
if ( upInfos == null ) {
log.error( "The UploadInfos returned by ThriftConnection Class are null" );
continue;
diff --git a/src/main/java/org/openslx/satellitedaemon/filetransfer/ThriftConnection.java b/src/main/java/org/openslx/satellitedaemon/filetransfer/ThriftConnection.java
index c52b45b..7b41e20 100644
--- a/src/main/java/org/openslx/satellitedaemon/filetransfer/ThriftConnection.java
+++ b/src/main/java/org/openslx/satellitedaemon/filetransfer/ThriftConnection.java
@@ -54,8 +54,9 @@ public class ThriftConnection
* connection is ok, it calls submitImage with CRCsum in List<Integer>.
*
* @return returns 'null' if there is a problem.
+ * @throws ImageDataException
*/
- public static UploadData getUploadInfos( ImageData imDat, String path )
+ public static UploadData getUploadInfos( ImageData imDat, String path ) throws ImageDataException
{
ImageServer.Client theClient = null;
String crcPath = path.concat( ".crc" );
@@ -87,12 +88,7 @@ public class ThriftConnection
log.warn( "Unknown authorization error.", e );
}
} catch ( ImageDataException e ) {
- if ( e.number == ImageDataError.INVALID_DATA ) {
- log.warn( "Data for image not valid", e );
- // TODO: add e.message into DB;
- } else {
- log.warn( "ImageDataException", e );
- }
+ throw e;
} catch ( UploadException e ) {
if ( e.number == UploadError.BROKEN_BLOCK ) {
// A Block was transmitted 20 times unsuccessfully.
@@ -269,6 +265,7 @@ public class ThriftConnection
return false;
}
try {
+ log.info( sSD.toString() );
return theClient.publishUser( sSD.sessionId, userInfo );
} catch ( AuthorizationException e ) {
log.error( "AutorizationException", e );