From cf91780da6f3b28401c18ad66e8a01337261c092 Mon Sep 17 00:00:00 2001 From: ralph isenmann Date: Wed, 4 Nov 2020 12:32:57 +0100 Subject: [client] FIX image update - add copy contructor to ContainerDefinition, ContainerMeta, ContainerBindMount --- .../dozmod/gui/window/ImageDetailsWindow.java | 61 ++++++++++------------ 1 file changed, 27 insertions(+), 34 deletions(-) (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/gui') diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java index 8dd97bda..1d769089 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ImageDetailsWindow.java @@ -1,40 +1,16 @@ package org.openslx.dozmod.gui.window; -import java.awt.*; -import java.awt.event.*; -import java.nio.ByteBuffer; -import java.util.*; -import java.util.List; - -import javax.swing.AbstractAction; -import javax.swing.JComponent; -import javax.swing.JFrame; -import javax.swing.JMenuItem; -import javax.swing.JOptionPane; -import javax.swing.KeyStroke; -import javax.swing.ListSelectionModel; -import javax.swing.SwingUtilities; - import org.apache.log4j.Logger; import org.apache.thrift.TException; -import org.openslx.bwlp.thrift.iface.ImageBaseWrite; -import org.openslx.bwlp.thrift.iface.ImageDetailsRead; -import org.openslx.bwlp.thrift.iface.ImagePermissions; -import org.openslx.bwlp.thrift.iface.ImageSummaryRead; -import org.openslx.bwlp.thrift.iface.ImageVersionDetails; -import org.openslx.bwlp.thrift.iface.LectureSummary; -import org.openslx.bwlp.thrift.iface.OperatingSystem; -import org.openslx.bwlp.thrift.iface.ShareMode; -import org.openslx.bwlp.thrift.iface.UserInfo; -import org.openslx.bwlp.thrift.iface.Virtualizer; +import org.openslx.bwlp.thrift.iface.*; import org.openslx.dozmod.Branding; import org.openslx.dozmod.gui.Gui; import org.openslx.dozmod.gui.MainWindow; import org.openslx.dozmod.gui.changemonitor.AbstractControlWrapper; import org.openslx.dozmod.gui.changemonitor.DialogChangeMonitor; import org.openslx.dozmod.gui.changemonitor.DialogChangeMonitor.TextNotEmptyConstraint; -import org.openslx.dozmod.gui.helper.*; import org.openslx.dozmod.gui.helper.PopupMenu; +import org.openslx.dozmod.gui.helper.*; import org.openslx.dozmod.gui.window.UserListWindow.UserAddedCallback; import org.openslx.dozmod.gui.window.layout.ImageDetailsWindowLayout; import org.openslx.dozmod.gui.wizard.ImageUpdateWizard; @@ -63,6 +39,13 @@ import org.openslx.util.QuickTimer.Task; import org.openslx.util.ThriftUtil; import org.openslx.util.Util; +import javax.swing.*; +import java.awt.*; +import java.awt.event.*; +import java.nio.ByteBuffer; +import java.util.List; +import java.util.*; + /** * Window for displaying and editing the details of an image. */ @@ -623,18 +606,28 @@ import org.openslx.util.Util; return true; } + /** + * If the user make changes and saves it this method will be executed. + * It makes a deep copy of the current containerDefinition to get all settings. + * After that, every user setting is set in that copy-object. + * If the copy-object and containerDefinition differ, the new settings will be uploaded. + */ private void saveContainerDefinition() { + // TODO do I really need this check? Maybe just get every setting and upload it. - ContainerDefinition conDev = new ContainerDefinition(); + ContainerDefinition newConDev = new ContainerDefinition(containerDefinition); - conDev.setContainerRecipe(txtContainerRecipe.getText()); + if (newConDev.getBuildContextMethod() == ContainerBuildContextMethod.FILE) { + newConDev.setContainerRecipe(txtContainerRecipe.getText()); + } + // currently no update of the git url allowed - conDev.getContainerMeta().setImageName(txtContainerImageName.getText()); - conDev.getContainerMeta().setRunOptions(txtContainerRun.getText()); - conDev.getContainerMeta().setBindMountConfig(bindMountConfigurator.getData()); + newConDev.getContainerMeta().setImageName(txtContainerImageName.getText()); + newConDev.getContainerMeta().setRunOptions(txtContainerRun.getText()); + newConDev.getContainerMeta().setBindMountConfig(bindMountConfigurator.getData()); - if (!conDev.equals(containerDefinition)) { - uploadContainerDef(image.versions.get(0).versionId, conDev.toByteBuffer()); + if (!newConDev.equals(containerDefinition)) { + uploadContainerDef(image.versions.get(0).versionId, newConDev.toByteBuffer()); LOGGER.info("Upload new DockerDefinition"); } } @@ -816,7 +809,7 @@ import org.openslx.util.Util; switch (method) { case FILE: - txtContainerRecipe.setText(containerDefinition.getDescription()); + txtContainerRecipe.setText(containerDefinition.getContainerRecipe()); break; case GIT_REPOSITORY: txtContainerRecipe.setText(containerMeta.getBuildContextUrl()); -- cgit v1.2.3-55-g7522