diff options
author | Simon Rettberg | 2015-09-10 18:51:20 +0200 |
---|---|---|
committer | Simon Rettberg | 2015-09-10 18:51:20 +0200 |
commit | 80af9ff6befbbe4204eab259c72c40df5cd5e5a1 (patch) | |
tree | f1c731d05841a6d2457db68b412f297d72edae76 /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) | |
download | tutor-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.java | 23 |
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(); } } |