From 2c2e5376e9c5e4e2e385e0ad678c00b0916bb8d6 Mon Sep 17 00:00:00 2001 From: ralph isenmann Date: Wed, 23 Jun 2021 14:54:16 +0200 Subject: [client] Update project structure, related to container model. - import container model from master-sync-shared subproject - container model and dependencies removed --- .../ContainerBindMountConfigurator.java | 2 +- .../gui/control/table/ContainerBindMountTable.java | 2 +- .../openslx/dozmod/gui/panel/ContainerPanel.java | 4 +- .../gui/window/ContainerBindMountWindow.java | 2 +- .../wizard/layout/ContainerUploadPageLayout.java | 2 +- .../gui/wizard/layout/ImageMetaDataPageLayout.java | 3 +- .../gui/wizard/page/ContainerUploadPage.java | 6 +- .../dozmod/gui/wizard/page/ImageMetaDataPage.java | 2 +- .../openslx/dozmod/model/ContainerBindMount.java | 62 ------- .../dozmod/model/ContainerBuildContextMethod.java | 10 - .../openslx/dozmod/model/ContainerDefinition.java | 206 +-------------------- .../org/openslx/dozmod/model/ContainerMeta.java | 165 ----------------- .../java/org/openslx/dozmod/util/ImageWrapper.java | 2 +- .../org/openslx/dozmod/util/TarArchiveUtil.java | 30 --- 14 files changed, 19 insertions(+), 479 deletions(-) delete mode 100644 dozentenmodul/src/main/java/org/openslx/dozmod/model/ContainerBindMount.java delete mode 100644 dozentenmodul/src/main/java/org/openslx/dozmod/model/ContainerBuildContextMethod.java delete mode 100644 dozentenmodul/src/main/java/org/openslx/dozmod/model/ContainerMeta.java delete mode 100644 dozentenmodul/src/main/java/org/openslx/dozmod/util/TarArchiveUtil.java (limited to 'dozentenmodul') diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/configurator/ContainerBindMountConfigurator.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/configurator/ContainerBindMountConfigurator.java index db536513..a58df382 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/configurator/ContainerBindMountConfigurator.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/configurator/ContainerBindMountConfigurator.java @@ -9,7 +9,7 @@ import org.openslx.dozmod.gui.control.table.QScrollPane; import org.openslx.dozmod.gui.helper.GridManager; import org.openslx.dozmod.gui.helper.I18n; import org.openslx.dozmod.gui.window.ContainerBindMountWindow; -import org.openslx.dozmod.model.ContainerBindMount; +import org.openslx.virtualization.configuration.container.ContainerBindMount; import javax.swing.*; import javax.swing.event.ChangeListener; 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 27053661..b812d9af 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,6 +1,6 @@ package org.openslx.dozmod.gui.control.table; -import org.openslx.dozmod.model.ContainerBindMount; +import org.openslx.virtualization.configuration.container.ContainerBindMount; import java.util.ArrayList; 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 621bdba2..e37494ce 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 @@ -10,8 +10,8 @@ import org.openslx.dozmod.gui.control.ComboBox; 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.model.ContainerDefinition; -import org.openslx.dozmod.model.ContainerMeta; +import org.openslx.virtualization.configuration.container.ContainerDefinition; +import org.openslx.virtualization.configuration.container.ContainerMeta; import org.openslx.thrifthelper.ThriftManager; import org.openslx.util.ThriftUtil; diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ContainerBindMountWindow.java b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ContainerBindMountWindow.java index 77361f57..fa3cf920 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ContainerBindMountWindow.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/gui/window/ContainerBindMountWindow.java @@ -3,7 +3,7 @@ package org.openslx.dozmod.gui.window; import org.openslx.dozmod.gui.control.table.ContainerBindMountTable; import org.openslx.dozmod.gui.helper.TextChangeListener; import org.openslx.dozmod.gui.window.layout.ContainerBindMountWindowLayout; -import org.openslx.dozmod.model.ContainerBindMount; +import org.openslx.virtualization.configuration.container.ContainerBindMount; import java.awt.*; import java.awt.event.ActionEvent; 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 5e6769e8..e3c80ea3 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 @@ -5,7 +5,7 @@ import org.openslx.dozmod.gui.helper.GridManager; import org.openslx.dozmod.gui.helper.I18n; import org.openslx.dozmod.gui.wizard.Wizard; import org.openslx.dozmod.gui.wizard.WizardPage; -import org.openslx.dozmod.model.ContainerBuildContextMethod; +import org.openslx.virtualization.configuration.container.ContainerBuildContextMethod; import javax.swing.*; import java.awt.*; 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 63b7f498..db7284c3 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 @@ -9,9 +9,10 @@ import org.openslx.dozmod.gui.helper.GridManager; import org.openslx.dozmod.gui.helper.I18n; import org.openslx.dozmod.gui.wizard.Wizard; import org.openslx.dozmod.gui.wizard.WizardPage; -import org.openslx.dozmod.model.ContainerMeta; import org.openslx.thrifthelper.Comparators; +import org.openslx.virtualization.configuration.container.ContainerMeta; + import javax.swing.*; public abstract class ImageMetaDataPageLayout extends WizardPage { 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 7d6e4899..6d2078f8 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 @@ -9,13 +9,13 @@ import org.openslx.dozmod.gui.helper.QFileChooser; import org.openslx.dozmod.gui.helper.TextChangeListener; import org.openslx.dozmod.gui.wizard.Wizard; import org.openslx.dozmod.gui.wizard.layout.ContainerUploadPageLayout; -import org.openslx.dozmod.model.ContainerBuildContextMethod; 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.cache.MetaDataCache; 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; @@ -305,8 +305,8 @@ public class ContainerUploadPage extends ContainerUploadPageLayout { // -- 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(); + state.uuid = ThriftActions.createImage(JOptionPane.getFrameForComponent(this), state.name); if (state.uuid == null) return false; txtImageName.setEnabled(false); 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 a604c167..97ade77f 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 @@ -8,7 +8,6 @@ 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; @@ -16,6 +15,7 @@ import org.openslx.thrifthelper.Comparators; import org.openslx.util.QuickTimer; import org.openslx.util.QuickTimer.Task; import org.openslx.virtualization.configuration.VirtualizationConfigurationDocker; +import org.openslx.virtualization.configuration.container.ContainerMeta; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/model/ContainerBindMount.java b/dozentenmodul/src/main/java/org/openslx/dozmod/model/ContainerBindMount.java deleted file mode 100644 index 84449bad..00000000 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/model/ContainerBindMount.java +++ /dev/null @@ -1,62 +0,0 @@ -package org.openslx.dozmod.model; - -import java.util.Objects; - -/** - * This class implements a model for a bind mount entry in the docker context - * (eg. docker run ... --mount type=bind,source=source,target=target,options ... ). A list of objects of this class is stored in - * {@link ContainerMeta}. - */ -public class ContainerBindMount { - - private String source; - private String target; - private String options; - - public ContainerBindMount() { - } - - public ContainerBindMount(String source, String target, String options) { - this.source = source; - this.target = target; - this.options = options; - } - - public String getSource() { - return source; - } - - public void setSource(String source) { - this.source = source; - } - - public String getTarget() { - return target; - } - - public void setTarget(String target) { - this.target = target; - } - - public String getOptions() { - return options; - } - - public void setOptions(String options) { - this.options = options; - } - - @Override public boolean equals(Object o) { - if (this == o) - return true; - if (o == null || getClass() != o.getClass()) - return false; - ContainerBindMount that = (ContainerBindMount) o; - return Objects.equals(source, that.source) && Objects.equals(target, that.target) && Objects.equals( - options, that.options); - } - - @Override public int hashCode() { - return Objects.hash(source, target, options); - } -} diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/model/ContainerBuildContextMethod.java b/dozentenmodul/src/main/java/org/openslx/dozmod/model/ContainerBuildContextMethod.java deleted file mode 100644 index 54b7bd39..00000000 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/model/ContainerBuildContextMethod.java +++ /dev/null @@ -1,10 +0,0 @@ -package org.openslx.dozmod.model; - -public enum ContainerBuildContextMethod { - - FILE, GIT_REPOSITORY,IMAGE_REPO; - - public static ContainerBuildContextMethod fromInt(int index) { - return values()[index]; - } -} 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 c1a1ea3c..23142b51 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/model/ContainerDefinition.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/model/ContainerDefinition.java @@ -1,80 +1,19 @@ package org.openslx.dozmod.model; -import com.google.gson.Gson; -import com.google.gson.GsonBuilder; -import com.google.gson.stream.JsonReader; -import org.apache.log4j.Logger; -import org.kamranzafar.jtar.TarEntry; -import org.kamranzafar.jtar.TarInputStream; -import org.kamranzafar.jtar.TarOutputStream; import org.openslx.dozmod.thrift.cache.MetaDataCache; -import org.openslx.dozmod.util.TarArchiveUtil; import org.openslx.virtualization.configuration.VirtualizationConfigurationDocker; import org.openslx.virtualization.configuration.VirtualizationConfigurationException; -import java.io.*; -import java.nio.ByteBuffer; -import java.nio.charset.StandardCharsets; -import java.util.Objects; -import java.util.zip.GZIPInputStream; -import java.util.zip.GZIPOutputStream; -public class ContainerDefinition { +public class ContainerDefinition extends + org.openslx.virtualization.configuration.container.ContainerDefinition { - private static final Logger LOGGER = Logger.getLogger(ContainerDefinition.class); - - private static final String CONTAINER_FILE = "dockerfile"; - private static final String CONTAINER_META_FILE = "container_meta.json"; - - /** - * The file to construct a real container image, could be an dockerfile or a singularity recipe. - */ - public String containerRecipe = ""; - - /** - * Further container information, see {@link ContainerMeta}. - */ - public ContainerMeta containerMeta; - - public ContainerDefinition() { - containerMeta = new ContainerMeta(); - } - - /** - * Copy Constructor - * - * @param containerDef {@link ContainerDefinition} from which to make a deep copy. - */ - public ContainerDefinition(ContainerDefinition containerDef) { - containerRecipe = String.valueOf(containerDef.getContainerRecipe()); - containerMeta = new ContainerMeta(containerDef.getContainerMeta()); - } - - public String getContainerRecipe() { - return containerRecipe; - } - - public void setContainerRecipe(String containerRecipe) { - this.containerRecipe = containerRecipe; - } - - public void setContainerRecipe(File containerRecipeFile) { - this.containerRecipe = readContainerRecipe(containerRecipeFile); - } - - public void setContainerRecipe(byte[] rawContainerRecipe) { - this.containerRecipe = new String(rawContainerRecipe, StandardCharsets.UTF_8); + public ContainerDefinition(ContainerDefinition containerDefinition) { + super(containerDefinition); } - public void setContainerMeta(byte[] containerMeta) { - Gson gson = new GsonBuilder().create(); - this.containerMeta = gson.fromJson(new JsonReader( - new InputStreamReader(new ByteArrayInputStream(containerMeta), StandardCharsets.UTF_8)), - ContainerMeta.class); - } - - public ContainerMeta getContainerMeta() { - return containerMeta; + public ContainerDefinition() { + super(); } public VirtualizationConfigurationDocker createVirtualizationConfig() { @@ -88,137 +27,4 @@ public class ContainerDefinition { } return null; } - - /** - * Utility function to create a {@link ContainerDefinition} object for a byte array downloaded from the server. - * - * @param rawTarData Downloaded tar.gz file from the server as a byte array. - * @return New object of ContainerDefinition. - */ - public static ContainerDefinition fromByteArray(byte[] rawTarData) { - - ContainerDefinition containerDef = new ContainerDefinition(); - - try { - TarInputStream tis = new TarInputStream( - new GZIPInputStream(new BufferedInputStream(new ByteArrayInputStream(rawTarData)))); - - TarEntry entry; - - while ((entry = tis.getNextEntry()) != null) { - byte[] rawData = new byte[1024]; - ByteArrayOutputStream output = new ByteArrayOutputStream(); - int count; - - // read everything from the TarInputStream for the current Entry - while ((count = tis.read(rawData)) != -1) { - output.write(rawData, 0, count); - } - - if (entry.getName().equals(CONTAINER_FILE)) - containerDef.setContainerRecipe(output.toByteArray()); - if (entry.getName().equals(CONTAINER_META_FILE)) - containerDef.setContainerMeta(output.toByteArray()); - } - - } catch (IOException e) { - LOGGER.error("Could not create a ContainerDefinition Object for rawTarData", e); - } - - return containerDef; - } - - /** - * Serializes the ContainerMeta and Container Description (e.g. dockerfile) into an tar.gz archive. - * - * @return A ByteBuffer object of the container definition. Can be uploaded so satellite server. - */ - public ByteBuffer toByteBuffer() { - - ByteBuffer containerDef = null; - - try { - ByteArrayOutputStream baos = new ByteArrayOutputStream(); - TarOutputStream output = new TarOutputStream(new GZIPOutputStream(baos)); - - Gson gson = new GsonBuilder().setPrettyPrinting().create(); - TarArchiveUtil.tarPutFile(output, CONTAINER_META_FILE, gson.toJson(containerMeta)); - TarArchiveUtil.tarPutFile(output, CONTAINER_FILE, containerRecipe); - output.close(); - - containerDef = ByteBuffer.wrap(baos.toByteArray()); - - } catch (IOException e) { - LOGGER.warn("Could not create a tar file", e); - } - - return containerDef; - } - - private String readContainerRecipe(File file) { - String recipe = null; - try { - - BufferedInputStream bis = new BufferedInputStream(new FileInputStream(file)); - ByteArrayOutputStream rawFile = new ByteArrayOutputStream(); - int count; - byte[] data = new byte[1024]; - while ((count = bis.read(data)) != -1) { - rawFile.write(data, 0, count); - } - - String rawRecipe = new String(rawFile.toByteArray(), StandardCharsets.UTF_8); - - // replace windows by unix EOL - recipe = rawRecipe.replaceAll("\\r\\n", "\n"); - - bis.close(); - - } catch (IOException e) { - LOGGER.error("Could not read Container Recipe", e); - } - return recipe; - } - - /** - * Saves containerRecipe and containerMeta at the provided location. - * - * @param destDir destination directory for containerRecipe and containerMeta. - */ - public void saveLocal(File destDir) { - - writeFile(destDir, containerRecipe, CONTAINER_FILE); - Gson gson = new GsonBuilder().setPrettyPrinting().create(); - writeFile(destDir, gson.toJson(containerMeta), CONTAINER_META_FILE); - } - - private void writeFile(File destDir, String fileContent, String filename) { - File output = new File(destDir, filename); - try { - FileWriter fw = new FileWriter(output); - fw.write(fileContent); - fw.flush(); - fw.close(); - } catch (IOException e) { - e.printStackTrace(); - LOGGER.error("Could not write File", e); - } - } - - public ContainerBuildContextMethod getBuildContextMethod() { - return ContainerBuildContextMethod.fromInt(containerMeta.getBuildContextMethod()); - } - - @Override public boolean equals(Object o) { - if (this == o) - return true; - if (o == null || getClass() != o.getClass()) - return false; - ContainerDefinition that = (ContainerDefinition) o; - return containerRecipe.equals(that.containerRecipe) && containerMeta.equals(that.containerMeta); - } - - @Override public int hashCode() { - return Objects.hash(containerRecipe, containerMeta); - } } diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/model/ContainerMeta.java b/dozentenmodul/src/main/java/org/openslx/dozmod/model/ContainerMeta.java deleted file mode 100644 index 2f13c156..00000000 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/model/ContainerMeta.java +++ /dev/null @@ -1,165 +0,0 @@ -package org.openslx.dozmod.model; - -import java.util.ArrayList; -import java.util.List; -import java.util.Objects; - -/** - * ContainerMeta is used to store container specific information. - * An object of this class will be serialized with gson to a json file. - *

- * TODO remove build_context_method - * no need to distinguish between methods - * TODO rename build_context_url to build_context - */ -public class ContainerMeta { - - public enum ContainerImageType implements org.apache.thrift.TEnum { - LECTURE("lecture"), BATCH("batch"), DATA("data"); - - private final String name; - - ContainerImageType(String name) { - this.name = name; - } - - public boolean equalNames(String other) { - return name.equals(other); - } - - public static ContainerImageType getByName(String name) { - for (ContainerImageType item : ContainerImageType.values()) { - if (item.name.equals(name)) - return item; - } - // name is not an enum, return lecture as default - return LECTURE; - } - - @Override public String toString() { - return this.name; - } - - @Override public int getValue() { - return this.ordinal(); - } - } - - private int build_context_method; - private String image_repo; - private String build_context_url; - private String image_name; - private String run_options; - private String run_command; - private String image_type; - private List bind_mount_config = new ArrayList<>(); - - public ContainerMeta() { - - image_repo = ""; - build_context_method = ContainerBuildContextMethod.FILE.ordinal(); - build_context_url = ""; - image_name = ""; - run_options = ""; - run_command = ""; - image_type = ContainerImageType.LECTURE.toString(); - bind_mount_config = new ArrayList<>(); - } - - public ContainerMeta(ContainerMeta containerMeta) { - build_context_method = containerMeta.build_context_method; - build_context_url = containerMeta.build_context_url; - image_name = containerMeta.image_name; - run_options = containerMeta.run_options; - run_command = containerMeta.run_command; - image_repo = containerMeta.image_repo; - - for (ContainerBindMount bm : containerMeta.bind_mount_config) - bind_mount_config.add(new ContainerBindMount(bm.getSource(), bm.getTarget(), bm.getOptions())); - - } - - public int getBuildContextMethod() { - return build_context_method; - } - - public void setBuildContextMethod(int buildContextMethod) { - this.build_context_method = buildContextMethod; - } - - public String getBuildContextUrl() { - return build_context_url; - } - - public void setBuildContextUrl(String buildContextUrl) { - this.build_context_url = buildContextUrl; - } - - public String getRunOptions() { - return run_options; - } - - public void setRunOptions(String run_options) { - this.run_options = run_options; - } - - public void setRunCommand(String run_command) { - this.run_command = run_command; - } - - public String getRunCommand() { - return this.run_command; - } - - public String getImageName() { - return image_name; - } - - public void setImageName(String image_name) { - this.image_name = image_name; - } - - public List getBindMountConfig() { - return bind_mount_config; - } - - public void setBindMountConfig(List bindMountConfig) { - this.bind_mount_config = bindMountConfig; - } - - public String getImageRepo() { - return image_repo; - } - - public void setImageRepo(String from_image) { - this.image_repo = from_image; - } - - public ContainerImageType getImageType() { - if (image_type == null || image_type.length() == 0) - return ContainerImageType.LECTURE; - - return ContainerImageType.getByName(image_type); - } - - public void setImageType(ContainerImageType image_type) { - this.image_type = image_type.toString(); - } - - @Override public boolean equals(Object o) { - if (this == o) - return true; - if (o == null || getClass() != o.getClass()) - return false; - ContainerMeta that = (ContainerMeta) o; - return Objects.equals(build_context_url, that.build_context_url) && Objects.equals(image_name, - that.image_name) && Objects.equals(run_options, that.run_options) && Objects.equals( - run_command, that.run_command) && Objects.equals(bind_mount_config, that.bind_mount_config) - && Objects.equals(image_repo, that.image_repo) && Objects.equals(image_type, that.image_type); - } - - @Override public int hashCode() { - return Objects.hash(build_context_url, image_name, run_options, run_command, bind_mount_config, - image_repo, image_type); - } -} diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/util/ImageWrapper.java b/dozentenmodul/src/main/java/org/openslx/dozmod/util/ImageWrapper.java index a6281df1..07c137ab 100644 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/util/ImageWrapper.java +++ b/dozentenmodul/src/main/java/org/openslx/dozmod/util/ImageWrapper.java @@ -49,7 +49,7 @@ public class ImageWrapper { // TODO In future maybe this is a check to distinguish between VM-Image and Container Image if (virtualizerId.equals(TConst.VIRT_DOCKER)) { - ContainerDefinition conDef = ContainerDefinition.fromByteArray(virtualizerConfig); + ContainerDefinition conDef = (ContainerDefinition) ContainerDefinition.fromByteArray(virtualizerConfig); conDef.saveLocal(destDir); try { diff --git a/dozentenmodul/src/main/java/org/openslx/dozmod/util/TarArchiveUtil.java b/dozentenmodul/src/main/java/org/openslx/dozmod/util/TarArchiveUtil.java deleted file mode 100644 index c1a282b6..00000000 --- a/dozentenmodul/src/main/java/org/openslx/dozmod/util/TarArchiveUtil.java +++ /dev/null @@ -1,30 +0,0 @@ -package org.openslx.dozmod.util; - -import org.kamranzafar.jtar.TarEntry; -import org.kamranzafar.jtar.TarHeader; -import org.kamranzafar.jtar.TarOutputStream; -import org.openslx.util.Util; - -import java.io.IOException; -import java.nio.charset.StandardCharsets; - -public class TarArchiveUtil { - - - - public static void tarPutFile(TarOutputStream output, String fileName, String data) throws IOException - { - if (data == null) - return; - tarPutFile(output, fileName, data.getBytes(StandardCharsets.UTF_8)); - } - - public static void tarPutFile(TarOutputStream output, String fileName, byte[] data) throws IOException - { - if (data == null) - return; - output.putNextEntry(new TarEntry( - TarHeader.createHeader(fileName, data.length, Util.unixTime(), false, 0644))); - output.write(data); - } -} -- cgit v1.2.3-55-g7522