From 9eedf73295ad9e5b9764b2181fc95058d698011d Mon Sep 17 00:00:00 2001 From: Manuel Bentele Date: Thu, 25 Feb 2021 14:59:33 +0100 Subject: [client,server] Refactor disk image representation --- .../dozmod/gui/window/VirtConfigEditorWindow.java | 6 ++-- .../gui/window/VirtDropDownConfigEditorWindow.java | 14 ++++---- .../VirtDropDownConfigEditorWindowLayout.java | 10 +++--- .../gui/wizard/page/ContainerUploadPage.java | 2 +- .../dozmod/gui/wizard/page/ImageMetaDataPage.java | 4 +-- .../dozmod/gui/wizard/page/ImageUploadPage.java | 41 ++++++++++++++-------- .../openslx/dozmod/model/ContainerDefinition.java | 4 +-- .../openslx/dozmod/state/UploadWizardState.java | 2 +- .../org/openslx/dozmod/thrift/ThriftActions.java | 5 --- .../java/org/openslx/dozmod/util/ImageWrapper.java | 20 +++++++---- .../java/org/openslx/dozmod/util/VmWrapper.java | 30 +++++++++++----- .../src/main/properties/i18n/page.properties | 10 +++--- .../src/main/properties/i18n/page_de_DE.properties | 11 +++--- .../src/main/properties/i18n/page_tr_TR.properties | 8 ++--- .../bwlp/sat/database/mappers/DbLecture.java | 4 +-- .../bwlp/sat/fileserv/IncomingDataTransfer.java | 9 +++-- 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 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 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)); -- cgit v1.2.3-55-g7522