summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod
diff options
context:
space:
mode:
authorSimon Rettberg2015-09-02 18:05:58 +0200
committerSimon Rettberg2015-09-02 18:05:58 +0200
commitfb628060475cbbd328e8c846d8f960096dfa0ebc (patch)
tree3c28c55a95f5d406e21ac84935ca6ce101893336 /dozentenmodul/src/main/java/org/openslx/dozmod
parent[server] Return machine description via http (diff)
downloadtutor-module-fb628060475cbbd328e8c846d8f960096dfa0ebc.tar.gz
tutor-module-fb628060475cbbd328e8c846d8f960096dfa0ebc.tar.xz
tutor-module-fb628060475cbbd328e8c846d8f960096dfa0ebc.zip
[client] Add vm wrapper skeleton (for local vmx generation)
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod')
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/util/VmWrapper.java38
1 files changed, 38 insertions, 0 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/util/VmWrapper.java b/dozentenmodul/src/main/java/org/openslx/dozmod/util/VmWrapper.java
new file mode 100644
index 00000000..dcd5ce01
--- /dev/null
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/util/VmWrapper.java
@@ -0,0 +1,38 @@
+package org.openslx.dozmod.util;
+
+import java.io.File;
+import java.io.IOException;
+
+import org.apache.log4j.Logger;
+import org.openslx.bwlp.thrift.iface.OperatingSystem;
+import org.openslx.bwlp.thrift.iface.Virtualizer;
+import org.openslx.dozmod.thrift.cache.MetaDataCache;
+import org.openslx.util.vm.DiskImage;
+import org.openslx.util.vm.DiskImage.UnknownImageFormatException;
+import org.openslx.util.vm.VmwareMetaData;
+
+public class VmWrapper {
+
+ private static final Logger LOGGER = Logger.getLogger(VmWrapper.class);
+
+ public static void wrapVm(File diskFile, byte[] machineDescription, Virtualizer virtualizer,
+ OperatingSystem os) throws MetaDataMissingException {
+ VmwareMetaData vmwareConfig = new VmwareMetaData(MetaDataCache.getOperatingSystems(),
+ machineDescription, machineDescription.length);
+ if (!vmwareConfig.addEthernetNat() || !vmwareConfig.addHddTemplate(diskFile.getName())) {
+ throw new MetaDataMissingException();
+ }
+ DiskImage diskImage;
+ try {
+ diskImage = new DiskImage(diskFile);
+ } catch (IOException | UnknownImageFormatException e) {
+ LOGGER.debug("Cannot open disk file '" + diskFile.getName() + "' for reading", e);
+ diskImage = null;
+ }
+ }
+
+ public static class MetaDataMissingException extends Exception {
+ private static final long serialVersionUID = -7842986428831219758L;
+ }
+
+}