diff options
author | Manuel Bentele | 2021-02-25 14:59:33 +0100 |
---|---|---|
committer | Manuel Bentele | 2021-03-11 06:59:43 +0100 |
commit | 9eedf73295ad9e5b9764b2181fc95058d698011d (patch) | |
tree | f1882d97662d8611a94e40ce4d6f4c52b3eeda62 /dozentenmodul/src | |
parent | Merge branch 'feature/vmwarevm-support' into feature-merge (diff) | |
download | tutor-module-9eedf73295ad9e5b9764b2181fc95058d698011d.tar.gz tutor-module-9eedf73295ad9e5b9764b2181fc95058d698011d.tar.xz tutor-module-9eedf73295ad9e5b9764b2181fc95058d698011d.zip |
[client,server] Refactor disk image representation
Diffstat (limited to 'dozentenmodul/src')
14 files changed, 100 insertions, 67 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\ |