diff options
Diffstat (limited to 'src/main/java/org/openslx/satellitedaemon/filetransfer')
-rw-r--r-- | src/main/java/org/openslx/satellitedaemon/filetransfer/FileUploadWorker.java | 22 | ||||
-rw-r--r-- | src/main/java/org/openslx/satellitedaemon/filetransfer/ThriftConnection.java | 11 |
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 ); |