From 7e14da18b0320c96859dc3d831cb4c9cd3ee96df Mon Sep 17 00:00:00 2001 From: Simon Rettberg Date: Wed, 9 Sep 2015 14:31:31 +0200 Subject: [server] Also inform lecture owners about expising images, if the image expires before the lecture ends --- .../org/openslx/bwlp/sat/mail/MailGenerator.java | 34 ++++++++++++++++++++-- 1 file 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 relevantUsers = getUserToMail(image); + List 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 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)); + } } } -- cgit v1.2.3-55-g7522