summaryrefslogtreecommitdiffstats
path: root/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page
diff options
context:
space:
mode:
authorralph isenmann2021-06-22 17:32:59 +0200
committerralph isenmann2021-06-22 17:32:59 +0200
commit190d68aa75dde0b6c5535ddfbfb0b257ec9b210c (patch)
treeea73b920a857670f7d1e2f447718296934a09d4a /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)
downloadtutor-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.java39
-rw-r--r--dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ImageMetaDataPage.java41
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