summaryrefslogtreecommitdiffstats
path: root/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/thrift/ServerHandler.java
diff options
context:
space:
mode:
authorSimon Rettberg2015-09-10 18:51:20 +0200
committerSimon Rettberg2015-09-10 18:51:20 +0200
commit80af9ff6befbbe4204eab259c72c40df5cd5e5a1 (patch)
treef1c731d05841a6d2457db68b412f297d72edae76 /dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/thrift/ServerHandler.java
parent[client] LectureDetails: moved fields around to keep the same order as in Ima... (diff)
downloadtutor-module-80af9ff6befbbe4204eab259c72c40df5cd5e5a1.tar.gz
tutor-module-80af9ff6befbbe4204eab259c72c40df5cd5e5a1.tar.xz
tutor-module-80af9ff6befbbe4204eab259c72c40df5cd5e5a1.zip
[server] Schema changes, distinct delete flag for images
Diffstat (limited to 'dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/thrift/ServerHandler.java')
-rw-r--r--dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/thrift/ServerHandler.java23
1 files changed, 19 insertions, 4 deletions
diff --git a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/thrift/ServerHandler.java b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/thrift/ServerHandler.java
index 2fe65d86..751e480e 100644
--- a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/thrift/ServerHandler.java
+++ b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/thrift/ServerHandler.java
@@ -9,6 +9,7 @@ import org.apache.log4j.Logger;
import org.apache.thrift.TException;
import org.openslx.bwlp.sat.RuntimeConfig;
import org.openslx.bwlp.sat.database.mappers.DbImage;
+import org.openslx.bwlp.sat.database.mappers.DbImage.DeleteState;
import org.openslx.bwlp.sat.database.mappers.DbImagePermissions;
import org.openslx.bwlp.sat.database.mappers.DbLecture;
import org.openslx.bwlp.sat.database.mappers.DbLecturePermissions;
@@ -19,6 +20,7 @@ import org.openslx.bwlp.sat.fileserv.FileServer;
import org.openslx.bwlp.sat.fileserv.IncomingDataTransfer;
import org.openslx.bwlp.sat.fileserv.OutgoingDataTransfer;
import org.openslx.bwlp.sat.fileserv.SyncTransferHandler;
+import org.openslx.bwlp.sat.maintenance.DeleteOldImages;
import org.openslx.bwlp.sat.permissions.User;
import org.openslx.bwlp.sat.thrift.cache.OperatingSystemList;
import org.openslx.bwlp.sat.thrift.cache.OrganizationList;
@@ -340,9 +342,11 @@ public class ServerHandler implements SatelliteServer.Iface {
User.canDeleteImageVersionOrFail(user, imageVersionId);
try {
DbImage.markForDeletion(imageVersionId);
+ DbImage.setDeletion(DeleteState.DO_DELETE, imageVersionId);
} catch (SQLException e) {
throw new TInvocationException();
}
+ DeleteOldImages.hardDeleteImagesAsync();
}
@Override
@@ -359,12 +363,23 @@ public class ServerHandler implements SatelliteServer.Iface {
String[] ids = new String[imageDetails.versions.size()];
int index = 0;
for (ImageVersionDetails version : imageDetails.versions) {
- ids[index++] = version.versionId;
+ if (version.versionId != null) {
+ ids[index++] = version.versionId;
+ }
+ }
+ if (index != 0) {
+ try {
+ DbImage.markForDeletion(ids);
+ DbImage.setDeletion(DeleteState.DO_DELETE, ids);
+ } catch (Exception e) {
+ LOGGER.warn("Could not delete version when trying to delete base image", e);
+ }
+ DeleteOldImages.hardDeleteImagesAsync();
}
try {
- DbImage.markForDeletion(ids);
- } catch (Exception e) {
- LOGGER.warn("Could not delete version when trying to delete base image", e);
+ DbImage.deleteBasePermanently(imageBaseId);
+ } catch (SQLException e) {
+ throw new TInvocationException();
}
}