diff options
-rw-r--r-- | dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageUploadPage.java | 9 | ||||
-rw-r--r-- | dozentenmodul/src/main/java/org/openslx/dozmod/util/ImageWrapper.java | 36 |
2 files changed, 15 insertions, 30 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 4f64f1e9..645587c6 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 @@ -262,13 +262,14 @@ public class ImageUploadPage extends ImageUploadPageLayout { vmDiskFileInfo = new File(vmBaseDirectory, hdds.get(0).diskImage); } - final DiskImage diskImage; final boolean diskImageIsSnapshot; final boolean diskImageIsStandalone; - try { - diskImage = DiskImage.newInstance(vmDiskFileInfo); + final ImageFormat diskFormat; + + try (DiskImage diskImage = DiskImage.newInstance(vmDiskFileInfo)) { diskImageIsSnapshot = diskImage.isSnapshot(); diskImageIsStandalone = diskImage.isStandalone(); + diskFormat = diskImage.getFormat(); } catch (FileNotFoundException e) { setErrorMessage(I18n.PAGE.getString("ImageUpload.WizardPage.errorMessage.diskImageNotFound", vmDiskFileInfo.getName())); @@ -290,7 +291,7 @@ public class ImageUploadPage extends ImageUploadPageLayout { // 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 )) { + if (!diskFormat.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")); 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 8891bbac..f589a939 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/util/ImageWrapper.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/util/ImageWrapper.java @@ -41,7 +41,6 @@ public class ImageWrapper { // after the whole image is downloaded and persisted as a .part file, // this will be executed to unpack it. - DiskImage diskImage = null; String ext = virtualizerId; boolean imageIsCompressed = false; @@ -61,41 +60,26 @@ public class ImageWrapper { } } else { - try { - diskImage = DiskImage.newInstance(tmpDiskFile); - } catch (IOException | DiskImageException e) { - LOGGER.warn("Could not open downloaded image for analyze step", e); - } - - if (diskImage != null) { + try (DiskImage diskImage = DiskImage.newInstance(tmpDiskFile)) { ext = diskImage.getFormat().getExtension(); + imageIsCompressed = diskImage.isCompressed(); + } catch (IOException | DiskImageException e) { + LOGGER.warn("Could not open/analyze downloaded image", e); + } - try { - imageIsCompressed = diskImage.isCompressed(); - } catch (DiskImageException e) { - LOGGER.warn("Could not analyze if image is compressed", e); - } - - if (imageIsCompressed) { - - Gui.asyncMessageBox( - I18n.THRIFT.getString("ThriftActions.Message.warning.diskImageCompressed", - imageName, Branding.getServiceFAQWebsite()), MessageType.WARNING, null, - null); - } + if (imageIsCompressed) { + Gui.asyncMessageBox(I18n.THRIFT.getString("ThriftActions.Message.warning.diskImageCompressed", + imageName, Branding.getServiceFAQWebsite()), MessageType.WARNING, null, null); } File destImage = new File(destDir.getAbsolutePath(), VmWrapper.generateFilename(imageName, ext)); - destImage.delete(); - if (!tmpDiskFile.renameTo(destImage)) { destImage = tmpDiskFile; // Must be Windows... } - try { + try (DiskImage diskImage = DiskImage.newInstance(destImage)) { VmWrapper.wrapVm(destImage, imageName, virtualizerConfig, virtualizerId, osId, diskImage); - - } catch (VmWrapper.MetaDataMissingException | IOException e) { + } catch (VmWrapper.MetaDataMissingException | IOException | DiskImageException e) { Gui.asyncMessageBox(I18n.THRIFT.getString("ThriftActions.Message.warning.couldNotWrapVM"), MessageType.WARNING, LOGGER, e); } |