diff options
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx')
4 files changed, 30 insertions, 17 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageListWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageListWindow.java index 9434ad25..f3ad5701 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageListWindow.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageListWindow.java @@ -316,9 +316,13 @@ public class ImageListWindow extends ImageListWindowLayout implements DownloadCa if (!hasLatestVersion(image)) return; if (ContainerUtils.isContainerImageLinked(image)){ - ContainerUtils.showWarning(me,LOGGER); + ContainerUtils.showWarning(me, I18n.PAGE.getString("LectureImageList.WizardPage.errorMessage.containerLinkedWithLecture") ,LOGGER); + return; + } else if (ContainerUtils.isDataContainer(image)) { + ContainerUtils.showWarning(me, I18n.PAGE.getString("LectureImageList.WizardPage.errorMessage.imageIsDataContainer") ,LOGGER); return; } + new LectureWizard(SwingUtilities.getWindowAncestor(this), image, image.getLatestVersionId()).setVisible(true); } diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java index 1bf231f2..57acf57d 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/LectureDetailsWindow.java @@ -199,9 +199,13 @@ public class LectureDetailsWindow extends LectureDetailsWindowLayout implements if (newImage == null) return; if (ContainerUtils.isContainerImageLinked(newImage)) { - ContainerUtils.showWarning(me, LOGGER); + ContainerUtils.showWarning(me, I18n.PAGE.getString("LectureImageList.WizardPage.errorMessage.containerLinkedWithLecture") ,LOGGER); + return; + } else if (ContainerUtils.isDataContainer(newImage)) { + ContainerUtils.showWarning(me, I18n.PAGE.getString("LectureImageList.WizardPage.errorMessage.imageIsDataContainer") ,LOGGER); return; } + final ImageMetaCallback callback = new ImageMetaCallback() { @Override public void fetchedImageDetails(ImageDetailsRead imageDetails, diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/LectureImageListPage.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/LectureImageListPage.java index 1c35df7b..b00bfbd7 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/LectureImageListPage.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/LectureImageListPage.java @@ -95,6 +95,11 @@ public class LectureImageListPage extends LectureImageListPageLayout { setErrorMessage(I18n.PAGE.getString("LectureImageList.WizardPage.errorMessage.containerLinkedWithLecture")); return false; } + else if (ContainerUtils.isDataContainer(selected)) { + setErrorMessage(I18n.PAGE.getString("LectureImageList.WizardPage.errorMessage.imageIsDataContainer")); + return false; + } + else if (selected != null && selected.isValid && ImagePerms.canLink(selected)) { state.image = selected; state.imageVersionId = selected.getLatestVersionId(); diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/util/ContainerUtils.java b/dozentenmodul/src/main/java/org/openslx/dozmod/util/ContainerUtils.java index 54400439..d6836c8d 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/util/ContainerUtils.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/util/ContainerUtils.java @@ -60,32 +60,32 @@ public class ContainerUtils { return false; } + public static boolean isDataContainer(ImageSummaryRead image) { + + ContainerDefinition containerDefinition = getContainerDefinition(Session.getSatelliteToken(), image.getLatestVersionId()); + if (containerDefinition.getContainerMeta().getImageType() == ContainerMeta.ContainerImageType.DATA) { + return true; + } + return false; + } + public static List<ImageSummaryRead> getDataContainerImages() { String satelliteToken = Session.getSatelliteToken(); List<ImageSummaryRead> images = ImageCache.get(true); List<ImageSummaryRead> dataContainerImages = new ArrayList<>(); for (ImageSummaryRead image : images) { if (image.getVirtId().equals(TConst.VIRT_DOCKER)) { - try { - byte[] rawVirtConfig; - ByteBuffer byteBuffer = ThriftManager.getSatClient().getImageVersionVirtConfig(satelliteToken, - image.getLatestVersionId()); - rawVirtConfig = ThriftUtil.unwrapByteBuffer(byteBuffer); - ContainerDefinition containerDefinition = ContainerDefinition.fromByteArray(rawVirtConfig); - if (containerDefinition.getContainerMeta().getImageType() == ContainerMeta.ContainerImageType.DATA) - dataContainerImages.add(image); - - } catch (TException e) { - // LOGGER.error("Failed to retrieve virtualizer config for image version " + "'" - // + image.getLatestVersionId() + ", see trace: ", e); - } + + ContainerDefinition containerDefinition = getContainerDefinition(satelliteToken, image.getLatestVersionId()); + if (containerDefinition.getContainerMeta().getImageType() == ContainerMeta.ContainerImageType.DATA) + dataContainerImages.add(image); } } return dataContainerImages; } - public static void showWarning(Component c, Logger logger) { - Gui.showMessageBox(c, I18n.WINDOW.getString("LectureDetails.Message.error.containerLinkedWithLecture"), + public static void showWarning(Component c, String message, Logger logger) { + Gui.showMessageBox(c, message, MessageType.WARNING, logger, null); } |