diff options
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/util/VmWrapper.java')
-rw-r--r-- | dozentenmodul/src/main/java/org/openslx/dozmod/util/VmWrapper.java | 30 |
1 files changed, 21 insertions, 9 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 index 3f3b9fac..d36384bc 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/util/VmWrapper.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/util/VmWrapper.java @@ -24,12 +24,14 @@ import org.openslx.dozmod.gui.Gui; import org.openslx.dozmod.gui.helper.MessageType; import org.openslx.dozmod.thrift.cache.MetaDataCache; import org.openslx.thrifthelper.TConst; -import org.openslx.util.vm.DiskImage; -import org.openslx.util.vm.QemuMetaData; -import org.openslx.util.vm.VboxMetaData; -import org.openslx.util.vm.VmMetaData; -import org.openslx.util.vm.VmMetaData.UsbSpeed; -import org.openslx.util.vm.VmwareMetaData; +import org.openslx.vm.QemuMetaData; +import org.openslx.vm.VboxMetaData; +import org.openslx.vm.VmMetaData; +import org.openslx.vm.VmwareMetaData; +import org.openslx.vm.VmMetaData.UsbSpeed; +import org.openslx.vm.disk.DiskImage; +import org.openslx.vm.disk.DiskImageException; +import org.openslx.vm.disk.DiskImageVmdk; public class VmWrapper { @@ -45,7 +47,17 @@ public class VmWrapper { if (!TConst.VIRT_VMWARE.equals(virtualizerId)) { throw new MetaDataMissingException(); } - machineDescription = getFallbackVmx(diskImageInfo); + + if (diskImageInfo instanceof DiskImageVmdk) { + final DiskImageVmdk vmdkImageInfo = DiskImageVmdk.class.cast( diskImageInfo ); + try { + machineDescription = VmWrapper.getFallbackVmx(vmdkImageInfo); + } catch (DiskImageException e) { + throw new MetaDataMissingException(); + } + } else { + throw new MetaDataMissingException(); + } } // Handle machine description to generate configuration file VmMetaData<?, ?, ?, ?, ?> vmMeta = VmMetaData.getInstance(MetaDataCache.getOperatingSystems(), @@ -126,9 +138,9 @@ public class VmWrapper { FileUtils.writeByteArrayToFile(vmFile, vmMeta.getFilteredDefinitionArray()); } - private static byte[] getFallbackVmx(DiskImage diskImageInfo) throws IOException { + private static byte[] getFallbackVmx(DiskImageVmdk diskImageInfo) throws IOException, DiskImageException { String vmx = ResourceLoader.getTextFile("/txt/vmx_template"); - return vmx.replace("%VM_HW_VERSION%", Integer.toString(diskImageInfo.hwVersion)).getBytes( + return vmx.replace("%VM_HW_VERSION%", Integer.toString(diskImageInfo.getHwVersion())).getBytes( StandardCharsets.UTF_8); } |