diff options
author | Simon Rettberg | 2016-04-20 17:10:42 +0200 |
---|---|---|
committer | Simon Rettberg | 2016-04-20 17:10:42 +0200 |
commit | f73acba9666cbd61d1caa126103eef0f53bc5ac7 (patch) | |
tree | 77588f0ef1b0824392aa487af79c368a2e4ea103 /dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/SyncTransferHandler.java | |
parent | [*] Display sat->master progress in client (diff) | |
download | tutor-module-f73acba9666cbd61d1caa126103eef0f53bc5ac7.tar.gz tutor-module-f73acba9666cbd61d1caa126103eef0f53bc5ac7.tar.xz tutor-module-f73acba9666cbd61d1caa126103eef0f53bc5ac7.zip |
More imgsync stuff
Diffstat (limited to 'dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/SyncTransferHandler.java')
-rw-r--r-- | dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/SyncTransferHandler.java | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/SyncTransferHandler.java b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/SyncTransferHandler.java index 36faa4bc..cd46a1c5 100644 --- a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/SyncTransferHandler.java +++ b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/SyncTransferHandler.java @@ -17,6 +17,7 @@ import org.apache.log4j.Logger; import org.apache.thrift.TException; import org.openslx.bwlp.sat.database.mappers.DbImage; import org.openslx.bwlp.sat.database.mappers.DbUser; +import org.openslx.bwlp.sat.database.models.ImageVersionMeta; import org.openslx.bwlp.sat.database.models.LocalImageVersion; import org.openslx.bwlp.sat.util.Constants; import org.openslx.bwlp.sat.util.FileSystem; @@ -114,15 +115,22 @@ public class SyncTransferHandler { if (!absFile.isFile() || !absFile.canRead()) { LOGGER.error("Cannot upload " + imgVersion.imageVersionId + ": file missing: " + absFile.getAbsolutePath()); + DbImage.markValid(false, true, imgVersion); throw new TInvocationException(InvocationError.INTERNAL_SERVER_ERROR, "Source file not readable"); } if (absFile.length() != imgVersion.fileSize) { LOGGER.error("Cannot upload" + imgVersion.imageVersionId + ": wrong file size - expected " + imgVersion.fileSize + ", got " + absFile.length()); + DbImage.markValid(false, true, imgVersion); throw new TInvocationException(InvocationError.INTERNAL_SERVER_ERROR, "File corrupted on satellite server"); } checkUploadCount(); + ImageVersionMeta versionDetails = DbImage.getVersionDetails(imgVersion.imageVersionId); + if (versionDetails == null || versionDetails.machineDescription == null + || versionDetails.machineDescription.length == 0) + throw new TInvocationException(InvocationError.MISSING_DATA, + "Given virtual machine has no hardware description"); ImageDetailsRead details = DbImage.getImageDetails(null, imgVersion.imageBaseId); List<ByteBuffer> blockHashes = DbImage.getBlockHashes(imgVersion.imageVersionId); ImagePublishData publishData = new ImagePublishData(); @@ -137,6 +145,7 @@ public class SyncTransferHandler { publishData.uploader = DbUser.getOrNull(imgVersion.uploaderId); publishData.owner = DbUser.getOrNull(imgBase.ownerId); publishData.virtId = details.virtId; + publishData.machineDescription = ByteBuffer.wrap(versionDetails.machineDescription); try { transferInfo = ThriftManager.getMasterClient().submitImage(userToken, publishData, blockHashes); } catch (TAuthorizationException e) { |