diff options
Diffstat (limited to 'dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ContainerUploadPage.java')
-rw-r--r-- | dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/page/ContainerUploadPage.java | 98 |
1 files changed, 41 insertions, 57 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 b21564a6..c7e85d22 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 @@ -13,9 +13,8 @@ import org.openslx.dozmod.model.ContainerDefinition; import org.openslx.dozmod.state.UploadWizardState; import org.openslx.dozmod.thrift.ThriftActions; import org.openslx.dozmod.thrift.cache.MetaDataCache; +import org.openslx.dozmod.util.ContainerUtils; import org.openslx.virtualization.configuration.VirtualizationConfigurationDocker; -import org.openslx.virtualization.configuration.container.ContainerBuildContextMethod; -import org.openslx.virtualization.configuration.container.ContainerMeta; import javax.swing.*; import javax.swing.event.ChangeEvent; @@ -23,8 +22,6 @@ import javax.swing.event.ChangeListener; import javax.swing.filechooser.FileFilter; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; -import java.awt.event.MouseEvent; -import java.awt.event.MouseListener; import java.io.File; import java.io.IOException; import java.util.regex.Matcher; @@ -65,8 +62,8 @@ public class ContainerUploadPage extends ContainerUploadPageLayout { init(); } - // TODO this constructor is currently used in case if user wants do upload a new version. - // This makes no currently no sens in context of docker container and this is used. + // This constructor is used in case the user wants do upload a new version. + // TODO currently unused public ContainerUploadPage(Wizard wizard, UploadWizardState uploadWizardState, ImageDetailsRead imageDetailsRead) { super(wizard); @@ -129,45 +126,37 @@ public class ContainerUploadPage extends ContainerUploadPageLayout { } }); - txtContainerImageFile.addMouseListener(new MouseListener() { - @Override public void mouseClicked(MouseEvent e) { - if (e.getClickCount() >= 2) - browseContainerImageFile(); - } - - @Override public void mousePressed(MouseEvent e) { - - } - - @Override public void mouseReleased(MouseEvent e) { - - } - - @Override public void mouseEntered(MouseEvent e) { - + this.btnBrowseImageTar.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { + browseImageTarFile(); } + }); - @Override public void mouseExited(MouseEvent e) { - + this.txtImageTar.addActionListener(new ActionListener() { + @Override public void actionPerformed(ActionEvent e) { + browseImageTarFile(); } }); btnBrowseForImage.requestFocus(); } - private void browseContainerImageFile() { + private void browseImageTarFile() { QFileChooser fc = new QFileChooser(Config.getUploadPath(), false); fc.setAcceptAllFileFilterUsed(false); fc.addChoosableFileFilter(new ContainerImageFileFiler()); int action = fc.showOpenDialog(getDialog()); File file = fc.getSelectedFile(); - if (action != JFileChooser.APPROVE_OPTION || file == null) { - txtContainerImageFile.setText(""); + + if (action != JFileChooser.APPROVE_OPTION || file == null || !ContainerUtils.isValidTar(file)) { + txtImageTar.setText(""); return; } - txtContainerImageFile.setText(file.getAbsolutePath()); + txtImageTar.setText(file.getAbsolutePath()); + Config.setUploadPath(file.getParent()); + reactOnUserInput(); LOGGER.info("Tar File selected"); } @@ -191,13 +180,6 @@ public class ContainerUploadPage extends ContainerUploadPageLayout { txtImageName.setText(existingImage.getImageName()); state.descriptionFile = file; - // TESTING: Upload also a prematurely created image (tar) - String imageName = file.getParentFile().getName(); - File imageTarFile = new File(file.getParentFile(), imageName.concat(".tar")); - if (imageTarFile.exists()) { - txtContainerImageFile.setText(imageTarFile.getAbsolutePath()); - LOGGER.info("Prebuild Container Image found"); - } Config.setUploadPath(file.getParent()); reactOnUserInput(); @@ -230,9 +212,8 @@ public class ContainerUploadPage extends ContainerUploadPageLayout { } private boolean checkUserInput() { - ContainerBuildContextMethod method = getBuildContextMethod(); - switch (method) { + switch (getBuildContextMethod()) { case IMAGE_REPO: if (txtImageRepo.getText() == null || txtImageRepo.getText().isEmpty()) { setWarningMessage(I18n.PAGE.getString("ContainerUploadPage.Warning.NoImageRepo")); @@ -244,7 +225,7 @@ public class ContainerUploadPage extends ContainerUploadPageLayout { setWarningMessage(I18n.PAGE.getString("ContainerUploadPage.Warning.NoReceipt")); return false; } - if (! ContainerDefinition.isValidDockerfile(txtImageFile.getText())) { + if (!ContainerDefinition.isValidDockerfile(txtImageFile.getText())) { setWarningMessage(I18n.PAGE.getString("ContainerUploadPage.Warning.NoValidDockerfiler")); return false; } @@ -255,6 +236,16 @@ public class ContainerUploadPage extends ContainerUploadPageLayout { return false; } break; + case DOCKER_TAR: + if (txtImageTar.getText() == null || txtImageTar.getText().isEmpty()) { + setWarningMessage("No Image provided"); + return false; + } + break; + + default: + // The case is not provided + return false; } if (txtImageName.getText() == null || txtImageName.getText().isEmpty()) { @@ -266,27 +257,26 @@ public class ContainerUploadPage extends ContainerUploadPageLayout { private VirtualizationConfigurationDocker createVirtualizationConfig() { - ContainerMeta containerMeta = containerDefinition.getContainerMeta(); - containerMeta.setBuildContextMethod(getBuildContextMethod().ordinal()); - containerMeta.setImageName(txtImageName.getText()); - - File containerImageFile = new File(txtContainerImageFile.getText()); - if (containerImageFile.exists()) - state.diskFile = containerImageFile; - else - state.diskFile = getDummyFile(); + containerDefinition.getContainerMeta().setBuildContextMethod(getBuildContextMethod().ordinal()); + containerDefinition.getContainerMeta().setImageName(txtImageName.getText()); switch (containerDefinition.getBuildContextMethod()) { case FILE: containerDefinition.setContainerRecipe(state.descriptionFile); + state.diskFile = getDummyFile(); break; case IMAGE_REPO: - containerMeta.setImageRepo(txtImageRepo.getText()); + containerDefinition.getContainerMeta().setImageRepo(txtImageRepo.getText()); + state.diskFile = getDummyFile(); state.descriptionFile = getDummyFile(); case GIT_REPOSITORY: - containerMeta.setBuildContextUrl(txtGitRepo.getText()); + containerDefinition.getContainerMeta().setBuildContextUrl(txtGitRepo.getText()); + state.diskFile = getDummyFile(); state.descriptionFile = getDummyFile(); break; + case DOCKER_TAR: + state.diskFile = new File(txtImageTar.getText()); + state.descriptionFile = getDummyFile(); } return containerDefinition.createVirtualizationConfig(); } @@ -331,10 +321,7 @@ public class ContainerUploadPage extends ContainerUploadPageLayout { Pattern p = Pattern.compile("[Dd]ockerfile"); Matcher m = p.matcher(f.getName()); - boolean accept = false; - if ((f.isFile() && m.matches()) || f.isDirectory()) - accept = true; - return accept; + return (f.isFile() && m.matches()) || f.isDirectory(); } @Override public String getDescription() { @@ -346,10 +333,7 @@ public class ContainerUploadPage extends ContainerUploadPageLayout { @Override public boolean accept(File f) { - boolean accept = false; - if ((f.isFile() && f.toString().endsWith(".tar")) || f.isDirectory()) - accept = true; - return accept; + return (f.isFile() && f.toString().endsWith(".tar")) || f.isDirectory(); } @Override public String getDescription() { |