diff options
Diffstat (limited to 'dozentenmodul/src/main/java')
6 files changed, 69 insertions, 37 deletions
diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/table/ContainerBindMountTable.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/table/ContainerBindMountTable.java index b812d9af..81c76303 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/table/ContainerBindMountTable.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/control/table/ContainerBindMountTable.java @@ -1,5 +1,6 @@ package org.openslx.dozmod.gui.control.table; +import org.openslx.dozmod.gui.helper.I18n; import org.openslx.virtualization.configuration.container.ContainerBindMount; import java.util.ArrayList; @@ -11,9 +12,12 @@ public class ContainerBindMountTable extends ListTable<ContainerBindMount> { */ private static final long serialVersionUID = -2908607335582645909L; - public static final ListTableColumn COL_SOURCE = new ListTableColumn("SOURCE"); - public static final ListTableColumn COL_TARGET = new ListTableColumn("TARGET"); - public static final ListTableColumn COL_OPTIONS = new ListTableColumn("OPTIONS"); + public static final ListTableColumn COL_SOURCE = new ListTableColumn( + I18n.CONFIGURATOR.getString("ContainerBindMount.BindMountTable.col.src")); + public static final ListTableColumn COL_TARGET = new ListTableColumn( + I18n.CONFIGURATOR.getString("ContainerBindMount.BindMountTable.col.dest")); + public static final ListTableColumn COL_OPTIONS = new ListTableColumn( + I18n.CONFIGURATOR.getString("ContainerBindMount.BindMountTable.col.opt")); public ContainerBindMountTable() { super(COL_SOURCE, COL_TARGET, COL_OPTIONS); diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/panel/ContainerPanel.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/panel/ContainerPanel.java index b2201239..1cb861ee 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/panel/ContainerPanel.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/panel/ContainerPanel.java @@ -30,9 +30,8 @@ public class ContainerPanel extends JPanel { public static final String IMAGE_CONTEXT = "IMAGE"; public static final String CONTAINER_CONTEXT = "CONTAINER"; - private final Logger LOGGER = Logger.getLogger(ContainerBindMountConfigurator.class); + private final Logger LOGGER = Logger.getLogger(ContainerPanel.class); - // TODO ContainerImageType should be set in MetaData private final QLabel lblContainerImageType; private final ComboBox<ContainerMeta.ContainerImageType> cboContainerImageType; @@ -65,6 +64,8 @@ public class ContainerPanel extends JPanel { QLabel lblContainerRunCommand = new QLabel( I18n.PANEL.getString("ContainerPanel.ContainerRunCommand.label")); + lblContainerRunCommand.setToolTipText( + I18n.PANEL.getString("ContainerPanel.ContainerRunCommand.tooltip")); txtContainerRunCommand = new JTextField(); grdContainerMeta.add(lblContainerRunCommand); grdContainerMeta.add(txtContainerRunCommand, 2).fill(true, false).expand(true, false); @@ -89,20 +90,9 @@ public class ContainerPanel extends JPanel { scrollableTextArea.setPreferredSize(Gui.getScaledDimension(0, 200)); grdContainer.add(scrollableTextArea, 2).fill(true, true).expand(true, true); - // TODO copy-paste in ImageMetaDataPageLayout for this ContainerImageType component - lblContainerImageType = new QLabel("Container Image Type"); - cboContainerImageType = new ComboBox<>( - new ComboBox.ComboBoxRenderer<ContainerMeta.ContainerImageType>() { - @Override public String renderItem(ContainerMeta.ContainerImageType item) { - if (item == null) - return "null"; - return item.toString(); // shows the provided label - } - }, ContainerMeta.ContainerImageType.class); - for (ContainerMeta.ContainerImageType type : ContainerMeta.ContainerImageType.values()) { - cboContainerImageType.addItem(type); - } - cboContainerImageType.setSelectedItem(ContainerMeta.ContainerImageType.LECTURE); + lblContainerImageType = new QLabel( + I18n.PANEL.getString("ContainerPanel.Label.ContainerImageType.text")); + cboContainerImageType = ContainerPanel.createContainerImageTypeCBO(); grdContainer.add(lblContainerImageType); grdContainer.add(cboContainerImageType).fill(true, false).expand(true, false); @@ -236,5 +226,28 @@ public class ContainerPanel extends JPanel { } return true; } + + public static ComboBox<ContainerMeta.ContainerImageType> createContainerImageTypeCBO (){ + ComboBox<ContainerMeta.ContainerImageType> cbo = new ComboBox<>( + new ComboBox.ComboBoxRenderer<ContainerMeta.ContainerImageType>() { + @Override public String renderItem(ContainerMeta.ContainerImageType item) { + switch (item){ + case LECTURE: + return "Pool"; + case BATCH: + return "Pool/Cluster"; + case DATA: + return "Daten"; + default: + return ""; + } + } + }, ContainerMeta.ContainerImageType.class); + for (ContainerMeta.ContainerImageType type : ContainerMeta.ContainerImageType.values()) { + cbo.addItem(type); + } + cbo.setSelectedItem(ContainerMeta.ContainerImageType.LECTURE); + return cbo; + } } diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/ContainerUploadPageLayout.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/ContainerUploadPageLayout.java index e3c80ea3..b0201e47 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/ContainerUploadPageLayout.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/ContainerUploadPageLayout.java @@ -83,10 +83,9 @@ public class ContainerUploadPageLayout extends WizardPage { tpInput = new JTabbedPane(); tpInput.addTab("Dockerfile", p1); - tpInput.addTab("Git Repository", p2); - tpInput.addTab("Image Repository", imageRepoPanel); - // set "Image Repository" as selected - tpInput.setSelectedIndex(2); + tpInput.addTab("Git-Repository", p2); + tpInput.addTab("Image-Repository", imageRepoPanel); + tpInput.setSelectedIndex(0); grid.add(tpInput, 3).fill(true, false); grid.nextRow(); diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/ImageMetaDataPageLayout.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/ImageMetaDataPageLayout.java index bec7e3dc..14145c75 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/ImageMetaDataPageLayout.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/wizard/layout/ImageMetaDataPageLayout.java @@ -7,6 +7,7 @@ import org.openslx.dozmod.gui.control.ComboBox.ComboBoxRenderer; import org.openslx.dozmod.gui.control.QLabel; import org.openslx.dozmod.gui.helper.GridManager; import org.openslx.dozmod.gui.helper.I18n; +import org.openslx.dozmod.gui.panel.ContainerPanel; import org.openslx.dozmod.gui.wizard.Wizard; import org.openslx.dozmod.gui.wizard.WizardPage; import org.openslx.thrifthelper.Comparators; @@ -75,20 +76,9 @@ public abstract class ImageMetaDataPageLayout extends WizardPage { grid.add(chkLicenseRestricted, 2); grid.nextRow(); - // TODO copy-paste in ContainerPanel for this ContainerImageType component - lblContainerImageType = new QLabel("Container Image Type"); - cboContainerImageType = new ComboBox<>( - new ComboBox.ComboBoxRenderer<ContainerMeta.ContainerImageType>() { - @Override public String renderItem(ContainerMeta.ContainerImageType item) { - if (item == null) - return "null"; - return item.toString(); // shows the provided label - } - }, ContainerMeta.ContainerImageType.class); - for (ContainerMeta.ContainerImageType type : ContainerMeta.ContainerImageType.values()) { - cboContainerImageType.addItem(type); - } - cboContainerImageType.setSelectedItem(ContainerMeta.ContainerImageType.LECTURE); + lblContainerImageType = new QLabel( + I18n.PANEL.getString("ContainerPanel.Label.ContainerImageType.text")); + cboContainerImageType = ContainerPanel.createContainerImageTypeCBO(); grid.add(lblContainerImageType); grid.add(cboContainerImageType).fill(true, false).expand(true, false); lblContainerImageType.setVisible(false); 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 6d2078f8..b21564a6 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 @@ -244,6 +244,10 @@ public class ContainerUploadPage extends ContainerUploadPageLayout { setWarningMessage(I18n.PAGE.getString("ContainerUploadPage.Warning.NoReceipt")); return false; } + if (! ContainerDefinition.isValidDockerfile(txtImageFile.getText())) { + setWarningMessage(I18n.PAGE.getString("ContainerUploadPage.Warning.NoValidDockerfiler")); + return false; + } break; case GIT_REPOSITORY: if (txtGitRepo.getText() == null || txtGitRepo.getText().isEmpty()) { diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/model/ContainerDefinition.java b/dozentenmodul/src/main/java/org/openslx/dozmod/model/ContainerDefinition.java index 23142b51..99d73c23 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/model/ContainerDefinition.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/model/ContainerDefinition.java @@ -4,6 +4,9 @@ import org.openslx.dozmod.thrift.cache.MetaDataCache; import org.openslx.virtualization.configuration.VirtualizationConfigurationDocker; import org.openslx.virtualization.configuration.VirtualizationConfigurationException; +import java.io.File; +import java.io.FileNotFoundException; +import java.util.Scanner; public class ContainerDefinition extends org.openslx.virtualization.configuration.container.ContainerDefinition { @@ -27,4 +30,23 @@ public class ContainerDefinition extends } return null; } + + public static boolean isValidDockerfile(String dockerfile) { + try { + File file = new File(dockerfile); + if (file.length() == 0) + return false; + + Scanner scanner = new Scanner(file); + while (scanner.hasNext()) { + if(scanner.next().contains("FROM")){ + return true; + } + } + scanner.close(); + } catch (FileNotFoundException e) { + e.printStackTrace(); + } + return false; + } } |