summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageUploadPage.java
diff options
context:
space:
mode:
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageUploadPage.java')
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageUploadPage.java41
1 files changed, 27 insertions, 14 deletions
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);