summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorManuel Bentele2021-02-25 14:59:33 +0100
committerManuel Bentele2021-03-11 06:59:43 +0100
commit9eedf73295ad9e5b9764b2181fc95058d698011d (patch)
treef1882d97662d8611a94e40ce4d6f4c52b3eeda62
parentMerge branch 'feature/vmwarevm-support' into feature-merge (diff)
downloadtutor-module-9eedf73295ad9e5b9764b2181fc95058d698011d.tar.gz
tutor-module-9eedf73295ad9e5b9764b2181fc95058d698011d.tar.xz
tutor-module-9eedf73295ad9e5b9764b2181fc95058d698011d.zip
[client,server] Refactor disk image representation
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/VirtConfigEditorWindow.java6
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/VirtDropDownConfigEditorWindow.java14
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/VirtDropDownConfigEditorWindowLayout.java10
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ContainerUploadPage.java2
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageMetaDataPage.java4
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageUploadPage.java41
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/model/ContainerDefinition.java4
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/state/UploadWizardState.java2
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftActions.java5
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/util/ImageWrapper.java20
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/util/VmWrapper.java30
-rw-r--r--dozentenmodul/src/main/properties/i18n/page.properties10
-rw-r--r--dozentenmodul/src/main/properties/i18n/page_de_DE.properties11
-rw-r--r--dozentenmodul/src/main/properties/i18n/page_tr_TR.properties8
-rw-r--r--dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/database/mappers/DbLecture.java4
-rw-r--r--dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/IncomingDataTransfer.java9
16 files changed, 106 insertions, 74 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/VirtConfigEditorWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/VirtConfigEditorWindow.java
index cb207d34..8ea5372b 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/VirtConfigEditorWindow.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/VirtConfigEditorWindow.java
@@ -24,9 +24,9 @@ import org.openslx.dozmod.thrift.ImageDetailsActions;
import org.openslx.dozmod.thrift.ImageDetailsActions.VirtConfCallback;
import org.openslx.dozmod.thrift.cache.MetaDataCache;
import org.openslx.util.XmlHelper;
-import org.openslx.util.vm.VboxMetaData;
-import org.openslx.util.vm.VmMetaData;
-import org.openslx.util.vm.VmwareConfig;
+import org.openslx.vm.VboxMetaData;
+import org.openslx.vm.VmMetaData;
+import org.openslx.vm.VmwareConfig;
@SuppressWarnings("serial")
public class VirtConfigEditorWindow extends VirtConfigEditorWindowLayout implements UiFeedback {
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/VirtDropDownConfigEditorWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/VirtDropDownConfigEditorWindow.java
index b6584b8e..200a9f0e 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/VirtDropDownConfigEditorWindow.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/VirtDropDownConfigEditorWindow.java
@@ -20,13 +20,13 @@ import org.openslx.dozmod.thrift.cache.MetaDataCache;
import org.openslx.sat.thrift.version.Feature;
import org.openslx.util.ThriftUtil;
import org.openslx.util.XmlHelper;
-import org.openslx.util.vm.VboxMetaData;
-import org.openslx.util.vm.VmMetaData;
-import org.openslx.util.vm.VmMetaData.DDAcceleration;
-import org.openslx.util.vm.VmMetaData.EthernetDevType;
-import org.openslx.util.vm.VmMetaData.HWVersion;
-import org.openslx.util.vm.VmMetaData.SoundCardType;
-import org.openslx.util.vm.VmMetaData.UsbSpeed;
+import org.openslx.vm.VboxMetaData;
+import org.openslx.vm.VmMetaData;
+import org.openslx.vm.VmMetaData.DDAcceleration;
+import org.openslx.vm.VmMetaData.EthernetDevType;
+import org.openslx.vm.VmMetaData.HWVersion;
+import org.openslx.vm.VmMetaData.SoundCardType;
+import org.openslx.vm.VmMetaData.UsbSpeed;
@SuppressWarnings("serial")
public class VirtDropDownConfigEditorWindow extends VirtDropDownConfigEditorWindowLayout
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/VirtDropDownConfigEditorWindowLayout.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/VirtDropDownConfigEditorWindowLayout.java
index 1703e77e..bddf759e 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/VirtDropDownConfigEditorWindowLayout.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/layout/VirtDropDownConfigEditorWindowLayout.java
@@ -25,11 +25,11 @@ import org.openslx.dozmod.gui.helper.GridManager;
import org.openslx.dozmod.gui.helper.I18n;
import org.openslx.dozmod.thrift.Session;
import org.openslx.sat.thrift.version.Feature;
-import org.openslx.util.vm.VmMetaData.DDAcceleration;
-import org.openslx.util.vm.VmMetaData.EthernetDevType;
-import org.openslx.util.vm.VmMetaData.HWVersion;
-import org.openslx.util.vm.VmMetaData.SoundCardType;
-import org.openslx.util.vm.VmMetaData.UsbSpeed;
+import org.openslx.vm.VmMetaData.DDAcceleration;
+import org.openslx.vm.VmMetaData.EthernetDevType;
+import org.openslx.vm.VmMetaData.HWVersion;
+import org.openslx.vm.VmMetaData.SoundCardType;
+import org.openslx.vm.VmMetaData.UsbSpeed;
@SuppressWarnings("serial")
public class VirtDropDownConfigEditorWindowLayout extends JDialog {
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ContainerUploadPage.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ContainerUploadPage.java
index e7e7adf5..1954db28 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ContainerUploadPage.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ContainerUploadPage.java
@@ -20,7 +20,7 @@ import org.openslx.dozmod.thrift.ThriftError;
import org.openslx.dozmod.thrift.UploadInitiator;
import org.openslx.dozmod.thrift.WrappedException;
import org.openslx.dozmod.thrift.cache.MetaDataCache;
-import org.openslx.util.vm.DockerMetaDataDummy;
+import org.openslx.vm.DockerMetaDataDummy;
import javax.swing.*;
import javax.swing.event.ChangeEvent;
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageMetaDataPage.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageMetaDataPage.java
index a20ef8b6..19df525a 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageMetaDataPage.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageMetaDataPage.java
@@ -14,8 +14,8 @@ import org.openslx.dozmod.thrift.cache.MetaDataCache;
import org.openslx.thrifthelper.Comparators;
import org.openslx.util.QuickTimer;
import org.openslx.util.QuickTimer.Task;
-import org.openslx.util.vm.DockerMetaDataDummy;
-import org.openslx.util.vm.QemuMetaData;
+import org.openslx.vm.DockerMetaDataDummy;
+import org.openslx.vm.QemuMetaData;
import java.awt.event.ItemEvent;
import java.awt.event.ItemListener;
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageUploadPage.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageUploadPage.java
index c764bee3..68bcbd50 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageUploadPage.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageUploadPage.java
@@ -35,12 +35,12 @@ import org.openslx.dozmod.thrift.WrappedException;
import org.openslx.dozmod.thrift.cache.MetaDataCache;
import org.openslx.sat.thrift.version.Feature;
import org.openslx.thrifthelper.TConst;
-import org.openslx.util.vm.DiskImage;
-import org.openslx.util.vm.DiskImage.ImageFormat;
-import org.openslx.util.vm.DiskImage.UnknownImageFormatException;
-import org.openslx.util.vm.VmMetaData;
-import org.openslx.util.vm.VmMetaData.HardDisk;
-import org.openslx.util.vm.VmwareMetaData;
+import org.openslx.vm.VmMetaData;
+import org.openslx.vm.VmwareMetaData;
+import org.openslx.vm.VmMetaData.HardDisk;
+import org.openslx.vm.disk.DiskImage;
+import org.openslx.vm.disk.DiskImage.ImageFormat;
+import org.openslx.vm.disk.DiskImageException;
/**
* Page for uploading a new image.
@@ -257,10 +257,14 @@ public class ImageUploadPage extends ImageUploadPageLayout {
File vmBaseDirectory = file.getParentFile();
vmDiskFileInfo = new File(vmBaseDirectory, hdds.get(0).diskImage);
}
- DiskImage diskImage;
- List<DiskImage.ImageFormat> supportedImageFormats = state.meta.getSupportedImageFormats();
+
+ final DiskImage diskImage;
+ final boolean diskImageIsSnapshot;
+ final boolean diskImageIsStandalone;
try {
- diskImage = new DiskImage(vmDiskFileInfo, supportedImageFormats);
+ diskImage = DiskImage.newInstance(vmDiskFileInfo);
+ diskImageIsSnapshot = diskImage.isSnapshot();
+ diskImageIsStandalone = diskImage.isStandalone();
} catch (FileNotFoundException e) {
setErrorMessage(I18n.PAGE.getString("ImageUpload.WizardPage.errorMessage.diskImageNotFound",
vmDiskFileInfo.getName()));
@@ -271,7 +275,7 @@ public class ImageUploadPage extends ImageUploadPageLayout {
vmDiskFileInfo.getName()));
setPageComplete(false);
return;
- } catch (UnknownImageFormatException e) {
+ } catch (DiskImageException e) {
setErrorMessage(
I18n.PAGE.getString("ImageUpload.WizardPage.errorMessage.diskImageHasUnknownFormat",
vmDiskFileInfo.getName()));
@@ -279,19 +283,28 @@ public class ImageUploadPage extends ImageUploadPageLayout {
setPageComplete(false);
return;
}
+
+ // check if disk image format is supported by the hypervisor's supported disk image formats
+ final List<ImageFormat> supportedImageFormats = state.meta.getSupportedImageFormats();
+ if (!diskImage.getFormat().isSupportedbyVirtualizer( supportedImageFormats )) {
+ Gui.showMessageBox(I18n.PAGE.getString("ImageUpload.Message.warning.diskImageNotSupportedByHypervisor",
+ Branding.getServiceName()), MessageType.WARNING, null, null);
+ setErrorMessage(I18n.PAGE.getString("ImageUpload.WizardPage.errorMessage.diskImageNotSupportedByHypervisor"));
+ setPageComplete(false);
+ return;
+ }
// Warn user about snapshot
- if (diskImage.isSnapshot || state.meta.isMachineSnapshot()) {
+ if (diskImageIsSnapshot || state.meta.isMachineSnapshot()) {
Gui.showMessageBox(I18n.PAGE.getString("ImageUpload.Message.warning.diskImageSnapshot",
Branding.getServiceName()), MessageType.WARNING, null, null);
setErrorMessage(I18n.PAGE.getString("ImageUpload.WizardPage.errorMessage.diskImageSnapshot"));
setPageComplete(false);
return;
}
- if (!diskImage.isStandalone) {
+ if (!diskImageIsStandalone) {
Gui.showMessageBox(
- I18n.PAGE.getString("ImageUpload.Message.warning.diskImageStandalone",
- diskImage.subFormat, Branding.getApplicationName()),
+ I18n.PAGE.getString("ImageUpload.Message.warning.diskImageStandalone", Branding.getApplicationName()),
MessageType.WARNING, null, null);
setErrorMessage(I18n.PAGE.getString("ImageUpload.WizardPage.errorMessage.diskImageStandalone"));
setPageComplete(false);
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/model/ContainerDefinition.java b/dozentenmodul/src/main/java/org/openslx/dozmod/model/ContainerDefinition.java
index 4f9be05e..35ef765d 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/model/ContainerDefinition.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/model/ContainerDefinition.java
@@ -9,8 +9,8 @@ import org.kamranzafar.jtar.TarInputStream;
import org.kamranzafar.jtar.TarOutputStream;
import org.openslx.dozmod.thrift.cache.MetaDataCache;
import org.openslx.dozmod.util.TarArchiveUtil;
-import org.openslx.util.vm.DockerMetaDataDummy;
-import org.openslx.util.vm.UnsupportedVirtualizerFormatException;
+import org.openslx.vm.DockerMetaDataDummy;
+import org.openslx.vm.UnsupportedVirtualizerFormatException;
import java.io.*;
import java.nio.ByteBuffer;
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/state/UploadWizardState.java b/dozentenmodul/src/main/java/org/openslx/dozmod/state/UploadWizardState.java
index beea1a74..1485943a 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/state/UploadWizardState.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/state/UploadWizardState.java
@@ -10,7 +10,7 @@ import org.openslx.bwlp.thrift.iface.ShareMode;
import org.openslx.dozmod.gui.wizard.WizardPage;
import org.openslx.dozmod.thrift.Session;
import org.openslx.dozmod.thrift.UploadInitiator;
-import org.openslx.util.vm.VmMetaData;
+import org.openslx.vm.VmMetaData;
public class UploadWizardState {
// -- Objects of the GUI itself --
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftActions.java b/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftActions.java
index ab3db38b..7d0fde5f 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftActions.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/thrift/ThriftActions.java
@@ -4,7 +4,6 @@ import java.awt.Frame;
import java.awt.Window;
import java.io.File;
import java.io.FileNotFoundException;
-import java.io.IOException;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
@@ -19,7 +18,6 @@ import org.apache.thrift.transport.TTransportException;
import org.openslx.bwlp.thrift.iface.*;
import org.openslx.bwlp.thrift.iface.SatelliteServer.Client;
import org.openslx.dozmod.App;
-import org.openslx.dozmod.Branding;
import org.openslx.dozmod.Config;
import org.openslx.dozmod.Config.SavedSession;
import org.openslx.dozmod.authentication.Authenticator.AuthenticationData;
@@ -40,13 +38,10 @@ import org.openslx.dozmod.thrift.cache.UserCache;
import org.openslx.dozmod.util.FormatHelper;
import org.openslx.dozmod.util.ImageWrapper;
import org.openslx.dozmod.util.VmWrapper;
-import org.openslx.dozmod.util.VmWrapper.MetaDataMissingException;
import org.openslx.sat.thrift.version.Version;
import org.openslx.thrifthelper.ThriftManager;
import org.openslx.util.QuickTimer;
import org.openslx.util.QuickTimer.Task;
-import org.openslx.util.vm.DiskImage;
-import org.openslx.util.vm.DiskImage.UnknownImageFormatException;
public class ThriftActions {
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/util/ImageWrapper.java b/dozentenmodul/src/main/java/org/openslx/dozmod/util/ImageWrapper.java
index 05ba40bd..8891bbac 100644
--- a/dozentenmodul/src/main/java/org/openslx/dozmod/util/ImageWrapper.java
+++ b/dozentenmodul/src/main/java/org/openslx/dozmod/util/ImageWrapper.java
@@ -7,7 +7,8 @@ import org.openslx.dozmod.gui.helper.I18n;
import org.openslx.dozmod.gui.helper.MessageType;
import org.openslx.dozmod.model.ContainerDefinition;
import org.openslx.thrifthelper.TConst;
-import org.openslx.util.vm.DiskImage;
+import org.openslx.vm.disk.DiskImage;
+import org.openslx.vm.disk.DiskImageException;
import java.io.File;
import java.io.IOException;
@@ -42,6 +43,7 @@ public class ImageWrapper {
DiskImage diskImage = null;
String ext = virtualizerId;
+ boolean imageIsCompressed = false;
// unwrap each image individually
// TODO In future maybe this is a check to distinguish between VM-Image and Container Image
@@ -60,16 +62,22 @@ public class ImageWrapper {
} else {
try {
- diskImage = new DiskImage(tmpDiskFile);
- } catch (IOException | DiskImage.UnknownImageFormatException e) {
+ diskImage = DiskImage.newInstance(tmpDiskFile);
+ } catch (IOException | DiskImageException e) {
LOGGER.warn("Could not open downloaded image for analyze step", e);
}
if (diskImage != null) {
- if (diskImage.format != null) {
- ext = diskImage.format.extension;
+
+ ext = diskImage.getFormat().getExtension();
+
+ try {
+ imageIsCompressed = diskImage.isCompressed();
+ } catch (DiskImageException e) {
+ LOGGER.warn("Could not analyze if image is compressed", e);
}
- if (diskImage.isCompressed) {
+
+ if (imageIsCompressed) {
Gui.asyncMessageBox(
I18n.THRIFT.getString("ThriftActions.Message.warning.diskImageCompressed",
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);
}
diff --git a/dozentenmodul/src/main/properties/i18n/page.properties b/dozentenmodul/src/main/properties/i18n/page.properties
index 39b984de..cea6bcdd 100644
--- a/dozentenmodul/src/main/properties/i18n/page.properties
+++ b/dozentenmodul/src/main/properties/i18n/page.properties
@@ -17,13 +17,15 @@ ImageUpload.WizardPage.errorMessage.diskImageNotFound=''{0}'' cannot be found!
ImageUpload.WizardPage.errorMessage.diskImageNotReadable=''{0}'' cannot be read!
ImageUpload.WizardPage.errorMessage.diskImageHasUnknownFormat=''{0}'' has unknown file format!
ImageUpload.WizardPage.errorMessage.diskImageSnapshot=The selected VM is in snapshot state.
+ImageUpload.Message.warning.diskImageNotSupportedByHypervisor=The format of the virtual hard disk associated \
+ with this\n VM is not supported by the current hypervisor.
+ImageUpload.WizardPage.errorMessage.diskImageNotSupportedByHypervisor=The disk image file format of the VM is not supported by the current hypervisor
ImageUpload.Message.warning.diskImageSnapshot=A snapshot was taken of the selected VM. \
In this state\n the VM unfortunately cannot be loaded into the {0} system. Please consolidate\n\
the snapshot first and try again.
-ImageUpload.WizardPage.errorMessage.diskImageStandalone=The VMDK file of the VM has an incompatible format
-ImageUpload.Message.warning.diskImageStandalone=The virtual hard disk associated with this VM is in the format ''{0}''.\
- \nThis format is not supported by {1}. Please convert the VM\n\
- into the format ''monolithicSparse''.
+ImageUpload.WizardPage.errorMessage.diskImageStandalone=The disk image file of the VM has an incompatible format
+ImageUpload.Message.warning.diskImageStandalone=The format of the virtual hard disk associated with this\n VM is not \
+ standalone. Please convert the VM\n\into a standalone (single-file) format.
ImageUpload.WizardPage.description=You can now start the upload.
ImageUpload.Message.yesNo.cancelLockFile=The selected VM seems to be still in use. Please shut down the VM\n\
before uploading and close the VMware Player, otherwise\n\
diff --git a/dozentenmodul/src/main/properties/i18n/page_de_DE.properties b/dozentenmodul/src/main/properties/i18n/page_de_DE.properties
index 8d395a91..cf27df34 100644
--- a/dozentenmodul/src/main/properties/i18n/page_de_DE.properties
+++ b/dozentenmodul/src/main/properties/i18n/page_de_DE.properties
@@ -20,10 +20,13 @@ ImageUpload.WizardPage.errorMessage.diskImageSnapshot=Die gewählte VM befindet
ImageUpload.Message.warning.diskImageSnapshot=Von der ausgewählten VM wurde ein Snapshot erstellt. \
In diesem Zustand kann\n die VM leider nicht ins {0}-System geladen werden. Bitte konsolidieren Sie zunächst\n\
den Snapshot und versuchen Sie es erneut.
-ImageUpload.WizardPage.errorMessage.diskImageStandalone=Die VMDK Datei der VM hat ein inkompatibles Format
-ImageUpload.Message.warning.diskImageStandalone=Die zu dieser VM gehörige Virtuelle Festplatte ist im Format ''{0}''.\n\
- Dieses Format wird von {1} nicht unterstützt. Bitte konvertieren Sie die VM\n\
- in das Format ''monolithicSparse''.
+ImageUpload.Message.warning.diskImageNotSupportedByHypervisor=Das Format der zu dieser VM gehörigen virtuellen \
+ Festplatte\n wird vom aktuellen aktuellen Hypervisor nicht unterstützt.
+ImageUpload.WizardPage.errorMessage.diskImageNotSupportedByHypervisor=Das Format der virtuellen Festplatte dieser VM \
+ wird vom aktuellen Hypervisor nicht unterstützt
+ImageUpload.WizardPage.errorMessage.diskImageStandalone=Die virtuelle Festplatte der VM hat ein inkompatibles Format
+ImageUpload.Message.warning.diskImageStandalone=Die zu dieser VM gehörige virtuelle Festplatte weist kein \
+ eigenständiges\nFormat auf. Bitte konvertieren Sie die VM in ein eigenständiges\n (Einzeldatei-) Format.
ImageUpload.WizardPage.description=Sie können jetzt den Upload starten.
ImageUpload.Message.yesNo.cancelLockFile=Die gewählte VM scheint noch in Verwendung zu sein. Bitte fahren Sie die VM\n\
vor dem Hochladen herunter und schließen Sie den VMware Player, ansonsten\n\
diff --git a/dozentenmodul/src/main/properties/i18n/page_tr_TR.properties b/dozentenmodul/src/main/properties/i18n/page_tr_TR.properties
index ad6b3ad0..766e7881 100644
--- a/dozentenmodul/src/main/properties/i18n/page_tr_TR.properties
+++ b/dozentenmodul/src/main/properties/i18n/page_tr_TR.properties
@@ -20,10 +20,10 @@ ImageUpload.WizardPage.errorMessage.diskImageSnapshot=Seçilen sanal makine snap
ImageUpload.Message.warning.diskImageSnapshot=Seçilen sanal makinenin snapshot''ı alındı. \
Bu durumda\n sanal makine maalesef {0} sistemine yüklenemez. Lütfen önce snapshot birleştirme\n\
işlemini gerçekleştirin ve sonra tekrar deneyin.
-ImageUpload.WizardPage.errorMessage.diskImageStandalone=Sanal makinenin VMDK dosyası uyumsuz bir formata sahip
-ImageUpload.Message.warning.diskImageStandalone=Bu sanal makineye ait sanal sabit disk ''{0}'' formatında.\n\
- Bu format {1} tarafından desteklenmiyor. Lütfen sanal makineyi\n\
- ''monolithicSparse'' formatına dönüştürün.
+ImageUpload.Message.warning.diskImageNotSupportedByHypervisor=
+ImageUpload.WizardPage.errorMessage.diskImageNotSupportedByHypervisor=
+ImageUpload.WizardPage.errorMessage.diskImageStandalone=
+ImageUpload.Message.warning.diskImageStandalone=
ImageUpload.WizardPage.description=Şimdi yüklemeyi başlatabilirsiniz.
ImageUpload.Message.yesNo.cancelLockFile=Seçilen sanal makine hâlâ kullanımda gibi görünüyor. Lütfen\n\
yüklemeden önce sanal makineyi ve VMware Player''ı kapatın, aksi hâlde\n\
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 c07a0ed9..fb69feac 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
@@ -30,8 +30,8 @@ import org.openslx.bwlp.thrift.iface.TNotFoundException;
import org.openslx.bwlp.thrift.iface.UserInfo;
import org.openslx.util.Json;
import org.openslx.util.Util;
-import org.openslx.util.vm.VmMetaData;
-import org.openslx.util.vm.VmMetaData.UsbSpeed;
+import org.openslx.vm.VmMetaData;
+import org.openslx.vm.VmMetaData.UsbSpeed;
import com.google.gson.JsonParseException;
diff --git a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/IncomingDataTransfer.java b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/IncomingDataTransfer.java
index 02a5eb3d..3c663bd0 100644
--- a/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/IncomingDataTransfer.java
+++ b/dozentenmodulserver/src/main/java/org/openslx/bwlp/sat/fileserv/IncomingDataTransfer.java
@@ -6,7 +6,6 @@ import java.io.FileOutputStream;
import java.io.IOException;
import java.sql.SQLException;
import java.util.List;
-import java.util.UUID;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.concurrent.atomic.AtomicInteger;
@@ -37,8 +36,8 @@ import org.openslx.filetransfer.util.FileChunk;
import org.openslx.filetransfer.util.HashChecker;
import org.openslx.filetransfer.util.IncomingTransferBase;
import org.openslx.util.ThriftUtil;
-import org.openslx.util.vm.DiskImage;
-import org.openslx.util.vm.DiskImage.UnknownImageFormatException;
+import org.openslx.vm.disk.DiskImage;
+import org.openslx.vm.disk.DiskImageException;
public class IncomingDataTransfer extends IncomingTransferBase {
@@ -231,8 +230,8 @@ public class IncomingDataTransfer extends IncomingTransferBase {
// Ready to go. First step: Rename temp file to something usable
String ext = "img";
try {
- ext = new DiskImage(getTmpFileName()).format.extension;
- } catch (IOException | UnknownImageFormatException e1) {
+ ext = DiskImage.newInstance(getTmpFileName()).getFormat().getExtension();
+ } catch (IOException | DiskImageException e1) {
}
File destination = new File(getTmpFileName().getParent(), Formatter.vmName(owner, image.imageName,
ext));