diff options
| author | Simon Rettberg | 2015-09-09 14:31:31 +0200 |
|---|---|---|
| committer | Simon Rettberg | 2015-09-09 14:31:31 +0200 |
| commit | 7e14da18b0320c96859dc3d831cb4c9cd3ee96df (patch) | |
| tree | 6615ef5efd83bb200840eba711864c5fdbb558de /dozentenmodulserver/src | |
| parent | [client] Allow setting master server address via command line (diff) | |
| download | tutor-module-7e14da18b0320c96859dc3d831cb4c9cd3ee96df.tar.gz tutor-module-7e14da18b0320c96859dc3d831cb4c9cd3ee96df.tar.xz tutor-module-7e14da18b0320c96859dc3d831cb4c9cd3ee96df.zip | |
[server] Also inform lecture owners about expising images, if the image expires before the lecture ends
Diffstat (limited to 'dozentenmodulserver/src')
| -rw-r--r-- | dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/mail/MailGenerator.java | 34 |
1 files changed, 31 insertions, 3 deletions
diff --git a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/mail/MailGenerator.java b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/mail/MailGenerator.java index fd7b5a2b..aae515b4 100644 --- a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/mail/MailGenerator.java +++ b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/mail/MailGenerator.java @@ -13,6 +13,7 @@ import org.apache.log4j.Logger; import org.openslx.bwlp.sat.database.mappers.DbConfiguration; import org.openslx.bwlp.sat.database.mappers.DbImage; import org.openslx.bwlp.sat.database.mappers.DbImagePermissions; +import org.openslx.bwlp.sat.database.mappers.DbLecture; import org.openslx.bwlp.sat.database.mappers.DbLecturePermissions; import org.openslx.bwlp.sat.database.mappers.DbUser; import org.openslx.bwlp.sat.database.mappers.DbUser.User; @@ -151,8 +152,10 @@ public class MailGenerator { LOGGER.warn("Could not get image details for image version " + version.imageVersionId); return; } + boolean isCurrentlyLatest = image.latestVersionId == null + || image.latestVersionId.equals(version.imageVersionId); String message; - if (image.latestVersionId == null || image.latestVersionId.equals(version.imageVersionId)) { + if (isCurrentlyLatest) { message = "Die aktuellste Version der VM '" + image.imageName + "' läuft in " + days + " Tag(en) ab. Bitte aktualisieren Sie die VM, da verknüpfte" + " Veranstaltungen sonst deaktiviert werden."; @@ -163,9 +166,34 @@ public class MailGenerator { } else { return; } - List<UserInfo> relevantUsers = getUserToMail(image); + List<UserInfo> relevantUsers; + // Mail users responsible for this image + message = wordWrap(message); + relevantUsers = getUserToMail(image); for (UserInfo user : relevantUsers) { - MailQueue.queue(new Mail(user, wordWrap(message))); + MailQueue.queue(new Mail(user, message)); + } + // Mail users using this image for a lecture, but only if the image expires before the lecture ends + // And the image to delete is currently the newest image + if (!isCurrentlyLatest) + return; + List<LectureSummary> lectures; + try { + lectures = DbLecture.getLecturesUsingImageVersion(version.imageVersionId); + } catch (SQLException e) { + lectures = new ArrayList<>(0); + } + for (LectureSummary lecture : lectures) { + if (lecture.endTime < version.expireTime) + continue; + message = "Hinweis zur Veranstaltung '" + lecture.lectureName + "': Die verwendete VM '" + + image.imageName + "' läuft in " + days + " Tag(en) ab. Bitte aktualisieren" + + " oder wechseln Sie die VM."; + message = wordWrap(message); + relevantUsers = getUserToMail(lecture); + for (UserInfo user : relevantUsers) { + MailQueue.queue(new Mail(user, message)); + } } } |
