diff options
author | ralph isenmann | 2021-06-22 17:32:59 +0200 |
---|---|---|
committer | ralph isenmann | 2021-06-22 17:32:59 +0200 |
commit | 190d68aa75dde0b6c5535ddfbfb0b257ec9b210c (patch) | |
tree | ea73b920a857670f7d1e2f447718296934a09d4a /dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page | |
parent | [client] Allow user to define a container run command in the lecture details ... (diff) | |
download | tutor-module-190d68aa75dde0b6c5535ddfbfb0b257ec9b210c.tar.gz tutor-module-190d68aa75dde0b6c5535ddfbfb0b257ec9b210c.tar.xz tutor-module-190d68aa75dde0b6c5535ddfbfb0b257ec9b210c.zip |
[client] Set Container Image Type during creation, set text labes
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page')
-rw-r--r-- | dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ContainerUploadPage.java | 39 | ||||
-rw-r--r-- | dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageMetaDataPage.java | 41 |
2 files changed, 42 insertions, 38 deletions
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 466b26a0..7d6e4899 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 @@ -4,9 +4,7 @@ import org.apache.commons.io.FileUtils; import org.apache.log4j.Logger; import org.openslx.bwlp.thrift.iface.ImageDetailsRead; import org.openslx.dozmod.Config; -import org.openslx.dozmod.gui.Gui; import org.openslx.dozmod.gui.helper.I18n; -import org.openslx.dozmod.gui.helper.MessageType; import org.openslx.dozmod.gui.helper.QFileChooser; import org.openslx.dozmod.gui.helper.TextChangeListener; import org.openslx.dozmod.gui.wizard.Wizard; @@ -16,9 +14,6 @@ import org.openslx.dozmod.model.ContainerDefinition; import org.openslx.dozmod.model.ContainerMeta; import org.openslx.dozmod.state.UploadWizardState; import org.openslx.dozmod.thrift.ThriftActions; -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.virtualization.configuration.VirtualizationConfigurationDocker; @@ -32,7 +27,6 @@ import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.io.File; import java.io.IOException; -import java.nio.ByteBuffer; import java.util.regex.Matcher; import java.util.regex.Pattern; @@ -50,7 +44,7 @@ public class ContainerUploadPage extends ContainerUploadPageLayout { private final UploadWizardState state; private final ImageDetailsRead existingImage; - private final ContainerDefinition containerDefinition; + private ContainerDefinition containerDefinition; /** * Page for uploading an Container Image @@ -99,6 +93,12 @@ public class ContainerUploadPage extends ContainerUploadPageLayout { init(); } + public ContainerUploadPage(Wizard wizard, UploadWizardState state, + ContainerDefinition containerDefinition) { + this(wizard, state); + this.containerDefinition = containerDefinition; + } + private void init() { this.txtImageFile.addActionListener(new ActionListener() { @Override public void actionPerformed(ActionEvent e) { @@ -266,7 +266,6 @@ public class ContainerUploadPage extends ContainerUploadPageLayout { containerMeta.setBuildContextMethod(getBuildContextMethod().ordinal()); containerMeta.setImageName(txtImageName.getText()); - File containerImageFile = new File(txtContainerImageFile.getText()); if (containerImageFile.exists()) state.diskFile = containerImageFile; @@ -301,16 +300,13 @@ public class ContainerUploadPage extends ContainerUploadPageLayout { * and give the user feedback about it. */ @Override protected boolean wantNextOrFinish() { - // are we creating a new image? then either: - // get the image name either auto filled by VmwareMetaData or by user - // get the image name from the image we are uploading a new version of - state.name = existingImage != null ? existingImage.getImageName() : txtImageName.getText(); state.virtualizationConfig = createVirtualizationConfig(); // -- create image to get uuid -- if (existingImage == null) { if (state.uuid == null) { state.uuid = ThriftActions.createImage(JOptionPane.getFrameForComponent(this), state.name); + state.name = txtImageName.getText(); if (state.uuid == null) return false; txtImageName.setEnabled(false); @@ -319,25 +315,8 @@ public class ContainerUploadPage extends ContainerUploadPageLayout { } } else { state.uuid = existingImage.getImageBaseId(); + state.name = existingImage.getImageName(); } - // Create upload initiator that will manage requesting a token, hashing the - // file, connecting for upload... - if (state.upload == null) { - try { - state.upload = new UploadInitiator(state.uuid, state.diskFile, - ByteBuffer.wrap(state.virtualizationConfig.getConfigurationAsByteArray())); - } catch (WrappedException e) { - ThriftError.showMessage(this, LOGGER, e.exception, e.displayMessage); - return false; - } catch (IOException e) { - Gui.showMessageBox(this, - I18n.PAGE.getString("ImageUpload.Message.error.uploadInitiatorFailed"), - MessageType.ERROR, LOGGER, e); - return false; - } - } - // Start the hash check now - state.upload.startHashing(); return true; } 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 e6fcc783..a604c167 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 @@ -7,6 +7,8 @@ import org.openslx.dozmod.gui.helper.I18n; import org.openslx.dozmod.gui.helper.TextChangeListener; import org.openslx.dozmod.gui.wizard.Wizard; import org.openslx.dozmod.gui.wizard.layout.ImageMetaDataPageLayout; +import org.openslx.dozmod.model.ContainerDefinition; +import org.openslx.dozmod.model.ContainerMeta; import org.openslx.dozmod.state.UploadWizardState; import org.openslx.dozmod.thrift.Session; import org.openslx.dozmod.thrift.cache.MetaDataCache; @@ -15,6 +17,8 @@ import org.openslx.util.QuickTimer; import org.openslx.util.QuickTimer.Task; import org.openslx.virtualization.configuration.VirtualizationConfigurationDocker; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; import java.awt.event.ItemEvent; import java.awt.event.ItemListener; import java.util.Collections; @@ -70,6 +74,32 @@ public class ImageMetaDataPage extends ImageMetaDataPageLayout { }); } + private ContainerDefinition containerDefinition; + + public ImageMetaDataPage(Wizard wizard, UploadWizardState state, + ContainerDefinition containerDefinition) { + this(wizard, state); + this.containerDefinition = containerDefinition; + + // TODO we need Information about a OS in Container? Currently use "Other (32 Bit)" as default + lblOperatingSystem.setVisible(false); + cboOperatingSystem.setVisible(false); + + // TODO do we need to check license restrictions in container? + chkLicenseRestricted.setVisible(false); + // TODO currently no Container Template! + chkIsTemplate.setVisible(false); + + // meta attribute for container images + lblContainerImageType.setVisible(true); + cboContainerImageType.setVisible(true); + cboContainerImageType.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent actionEvent) { + reactToUserInput(); + } + }); + } + @Override protected void onPageEnter() { // Preselect OS if possible if (state.detectedOs != null) { @@ -114,14 +144,9 @@ public class ImageMetaDataPage extends ImageMetaDataPageLayout { } if (state.virtualizationConfig instanceof VirtualizationConfigurationDocker) { - // TODO we need Information about a OS in Container? Currently use "Other (32 Bit)" as default - lblOperatingSystem.setVisible(false); - cboOperatingSystem.setVisible(false); - - // TODO do we need to check license restrictions in container? - chkLicenseRestricted.setVisible(false); - // TODO currently no Container Template! - chkIsTemplate.setVisible(false); + containerDefinition.getContainerMeta() + .setImageType((ContainerMeta.ContainerImageType) cboContainerImageType.getSelectedItem()); + state.virtualizationConfig = containerDefinition.createVirtualizationConfig(); } // evaluate description field |