diff options
author | Simon Rettberg | 2015-09-02 18:05:58 +0200 |
---|---|---|
committer | Simon Rettberg | 2015-09-02 18:05:58 +0200 |
commit | fb628060475cbbd328e8c846d8f960096dfa0ebc (patch) | |
tree | 3c28c55a95f5d406e21ac84935ca6ce101893336 /dozentenmodul/src/main/java/org/openslx/dozmod | |
parent | [server] Return machine description via http (diff) | |
download | tutor-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.java | 38 |
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; + } + +} |