summaryrefslogtreecommitdiffstats
path: root/dozentenmodulserver/src/main/java
diff options
context:
space:
mode:
authorSimon Rettberg2015-09-09 14:31:31 +0200
committerSimon Rettberg2015-09-09 14:31:31 +0200
commit7e14da18b0320c96859dc3d831cb4c9cd3ee96df (patch)
tree6615ef5efd83bb200840eba711864c5fdbb558de /dozentenmodulserver/src/main/java
parent[client] Allow setting master server address via command line (diff)
downloadtutor-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/main/java')
-rw-r--r--dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/mail/MailGenerator.java34
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));
+ }
}
}