diff options
Diffstat (limited to 'dozentenmodulserver/src/main/java/org/openslx')
-rw-r--r-- | dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbLecture.java | 18 | ||||
-rw-r--r-- | dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/web/WebServer.java | 4 |
2 files changed, 15 insertions, 7 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 58c7bdb2..e7a1299c 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 @@ -28,9 +28,8 @@ import org.openslx.bwlp.thrift.iface.NetShare; import org.openslx.bwlp.thrift.iface.TNotFoundException; import org.openslx.bwlp.thrift.iface.UserInfo; import org.openslx.util.Json; +import org.openslx.util.vm.UnsupportedVirtualizerFormatException; import org.openslx.util.vm.VmMetaData; -import org.openslx.util.vm.VmwareMetaData; -import org.openslx.util.vm.VmwareMetaData.EthernetType; import com.google.gson.JsonParseException; @@ -518,7 +517,8 @@ public class DbLecture { } } - public static VmMetaData getClientLaunchData(String lectureId) throws SQLException, TNotFoundException { + public static VmMetaData<?, ?, ?, ?> getClientLaunchData(String lectureId) throws SQLException, + TNotFoundException, UnsupportedVirtualizerFormatException { byte[] config; String lectureName; String osKeyword; @@ -557,13 +557,19 @@ public class DbLecture { if (config == null) { return null; } - VmwareMetaData meta = new VmwareMetaData(OperatingSystemList.get(), config, config.length); + VmMetaData<?, ?, ?, ?> meta = null; + try { + meta = VmMetaData.getInstance(OperatingSystemList.get(), config, config.length); + } catch (Exception e) { + LOGGER.error("meta could not be initialized", e); + return null; + } 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.addEthernet(VmMetaData.EtherType.NAT); // TODO: Use config meta.enableUsb(usbAccess); meta.disableSuspend(); return meta; @@ -580,7 +586,7 @@ public class DbLecture { throw e; } } - + public static List<LectureSummary> getLecturesUsingImageVersion(MysqlConnection connection, String imageVersionId) throws SQLException { MysqlStatement stmt = connection.prepareStatement(summaryBaseSql diff --git a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/web/WebServer.java b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/web/WebServer.java index a4338dce..f528d95b 100644 --- a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/web/WebServer.java +++ b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/web/WebServer.java @@ -17,6 +17,7 @@ import org.openslx.bwlp.thrift.iface.NetShare; import org.openslx.bwlp.thrift.iface.NetShareAuth; import org.openslx.bwlp.thrift.iface.TNotFoundException; import org.openslx.util.Json; +import org.openslx.util.vm.UnsupportedVirtualizerFormatException; import org.openslx.util.vm.VmMetaData; import org.simpleframework.xml.Serializer; import org.simpleframework.xml.core.Persister; @@ -136,7 +137,8 @@ public class WebServer extends NanoHTTPD { VmMetaData meta; try { meta = DbLecture.getClientLaunchData(lectureId); - } catch (TNotFoundException e) { + } catch (UnsupportedVirtualizerFormatException | TNotFoundException e) { + // TODO better virt error handling return notFound(); } catch (SQLException e) { return internalServerError(); |