package org.openslx.dozmod.model; import org.openslx.dozmod.thrift.cache.MetaDataCache; import org.openslx.virtualization.configuration.VirtualizationConfigurationDocker; import org.openslx.virtualization.configuration.VirtualizationConfigurationException; import org.openslx.virtualization.configuration.container.ContainerMeta; import java.io.*; import java.util.Scanner; public class ContainerDefinition extends org.openslx.virtualization.configuration.container.ContainerDefinition { public ContainerDefinition(ContainerDefinition containerDefinition) { super(containerDefinition); } public ContainerDefinition() { super(); } public VirtualizationConfigurationDocker createVirtualizationConfig() { byte[] rawContainerRecipe = toByteBuffer().array(); try { return new VirtualizationConfigurationDocker(MetaDataCache.getOperatingSystems(), rawContainerRecipe, rawContainerRecipe.length); } catch (VirtualizationConfigurationException e) { e.printStackTrace(); LOGGER.error("Could not create ContainerMetaDataDummy"); } return null; } private void setContainerMeta(ContainerMeta containerMeta){ this.containerMeta = containerMeta; } /** * Masks the fromByteArray Method in org.openslx.virtualization.configuration.container.ContainerDefinition. * Prevents ClassCastExceptions while casting from parent to child! * @param rawTarData * @return */ public static ContainerDefinition fromByteArray(byte[] rawTarData) { ContainerDefinition conDef = new ContainerDefinition(); org.openslx.virtualization.configuration.container.ContainerDefinition pConDef = org.openslx.virtualization.configuration.container.ContainerDefinition.fromByteArray(rawTarData); conDef.setContainerRecipe(pConDef.getContainerRecipe()); conDef.setContainerMeta(pConDef.getContainerMeta()); return conDef; } 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")){ scanner.close(); return true; } } scanner.close(); } catch (FileNotFoundException e) { e.printStackTrace(); } return false; } }