summaryrefslogtreecommitdiffstats
path: root/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/SyncTransferHandler.java
diff options
context:
space:
mode:
authorSimon Rettberg2016-04-20 17:10:42 +0200
committerSimon Rettberg2016-04-20 17:10:42 +0200
commitf73acba9666cbd61d1caa126103eef0f53bc5ac7 (patch)
tree77588f0ef1b0824392aa487af79c368a2e4ea103 /dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/SyncTransferHandler.java
parent[*] Display sat->master progress in client (diff)
downloadtutor-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.java9
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) {