summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbLecture.java31
1 files changed, 18 insertions, 13 deletions
diff --git a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbLecture.java b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbLecture.java
index af350a9b..1436aa36 100644
--- a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbLecture.java
+++ b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbLecture.java
@@ -439,6 +439,9 @@ public class DbLecture {
}
public static VmMetaData getClientLaunchData(String lectureId) throws SQLException, TNotFoundException {
+ byte[] config;
+ String lectureName;
+ String osKeyword;
try (MysqlConnection connection = Database.getConnection()) {
// Get required data about lecture and used image
MysqlStatement stmt = connection.prepareStatement("SELECT"
@@ -455,18 +458,9 @@ public class DbLecture {
|| rs.getLong("endtime") < now) {
throw new TNotFoundException();
}
- byte[] config = rs.getBytes("virtualizerconfig");
- if (config == null) {
- return null;
- }
- VmwareMetaData meta = new VmwareMetaData(OperatingSystemList.get(), config, config.length);
- meta.addDisplayName(rs.getString("lecturename"));
- if (meta.getOs() == null) {
- meta.setOs(rs.getString("virtoskeyword"));
- }
- meta.addHddTemplate("%VM_DISK_PATH%", "%VM_DISK_MODE%", "%VM_DISK_REDOLOGDIR%");
- meta.addEthernet(EthernetType.NAT); // TODO: Use config
- meta.disableSuspend();
+ config = rs.getBytes("virtualizerconfig");
+ lectureName = rs.getString("lecturename");
+ osKeyword = rs.getString("virtoskeyword");
// Everything worked so far, update statistics counters
MysqlStatement upStmt = connection.prepareStatement("UPDATE"
+ " lecture SET lastused = UNIX_TIMESTAMP(), usecount = usecount + 1"
@@ -474,11 +468,22 @@ public class DbLecture {
upStmt.setString("lectureid", lectureId);
upStmt.executeUpdate();
connection.commit();
- return meta;
} catch (SQLException e) {
LOGGER.error("Query failed in DbLecture.getClientLaunchData()", e);
throw e;
}
+ if (config == null) {
+ return null;
+ }
+ VmwareMetaData meta = new VmwareMetaData(OperatingSystemList.get(), config, config.length);
+ meta.addDisplayName(lectureName);
+ if (osKeyword != null) {
+ meta.setOs(osKeyword);
+ }
+ meta.addHddTemplate("%VM_DISK_PATH%", "%VM_DISK_MODE%", "%VM_DISK_REDOLOGDIR%");
+ meta.addEthernet(EthernetType.NAT); // TODO: Use config
+ meta.disableSuspend();
+ return meta;
}
public static void deleteOld(int minAgeDays) throws SQLException {