From f0308fc202c9da53f1d00de609c203045f0c1dbf Mon Sep 17 00:00:00 2001 From: ralph isenmann Date: Wed, 15 Jul 2020 14:54:17 +0200 Subject: Add Docker support --- src/main/java/org/openslx/thrifthelper/TConst.java | 1 + src/main/java/org/openslx/util/vm/DiskImage.java | 5 +- .../org/openslx/util/vm/DockerMetaDataDummy.java | 124 +++++++++++++++++++++ src/main/java/org/openslx/util/vm/VmMetaData.java | 5 + 4 files changed, 134 insertions(+), 1 deletion(-) create mode 100644 src/main/java/org/openslx/util/vm/DockerMetaDataDummy.java diff --git a/src/main/java/org/openslx/thrifthelper/TConst.java b/src/main/java/org/openslx/thrifthelper/TConst.java index 2ff902e..b7debba 100644 --- a/src/main/java/org/openslx/thrifthelper/TConst.java +++ b/src/main/java/org/openslx/thrifthelper/TConst.java @@ -9,5 +9,6 @@ public class TConst public static final String VIRT_VMWARE = "vmware"; public static final String VIRT_VIRTUALBOX = "virtualbox"; public static final String VIRT_QEMU = "qemukvm"; + public static final String VIRT_DOCKER = "docker"; } diff --git a/src/main/java/org/openslx/util/vm/DiskImage.java b/src/main/java/org/openslx/util/vm/DiskImage.java index 2b24a3f..15b3800 100644 --- a/src/main/java/org/openslx/util/vm/DiskImage.java +++ b/src/main/java/org/openslx/util/vm/DiskImage.java @@ -26,7 +26,8 @@ public class DiskImage public enum ImageFormat { - VMDK( "vmdk" ), QCOW2( "qcow2" ), VDI( "vdi" ); + VMDK( "vmdk" ), QCOW2( "qcow2" ), VDI( "vdi" ), + DOCKER("dockerfile"); public final String extension; @@ -52,6 +53,8 @@ public class DiskImage return VDI; if ( virtId.equals( TConst.VIRT_QEMU ) ) return QCOW2; + if ( virtId.equals( TConst.VIRT_DOCKER) ) + return DOCKER; return null; } } diff --git a/src/main/java/org/openslx/util/vm/DockerMetaDataDummy.java b/src/main/java/org/openslx/util/vm/DockerMetaDataDummy.java new file mode 100644 index 0000000..0144d65 --- /dev/null +++ b/src/main/java/org/openslx/util/vm/DockerMetaDataDummy.java @@ -0,0 +1,124 @@ +package org.openslx.util.vm; + +import org.apache.log4j.Logger; +import org.openslx.bwlp.thrift.iface.Virtualizer; +import org.openslx.thrifthelper.TConst; + +import java.io.File; +import java.util.List; + +public class DockerMetaDataDummy extends VmMetaData { + // TODO Define DOCKER CONSTANT + + private static final Logger LOGGER = Logger.getLogger( DockerMetaDataDummy.class ); + + private final Virtualizer virtualizer = new Virtualizer( TConst.VIRT_DOCKER, "Docker" ); + + public DockerMetaDataDummy(List osList) { + super(osList); + } + + @Override public byte[] getFilteredDefinitionArray() { + return new byte[0]; + } + + @Override public void applySettingsForLocalEdit() { + + } + + @Override public boolean addHddTemplate(File diskImage, String hddMode, String redoDir) { + return false; + } + + @Override public boolean addHddTemplate(String diskImagePath, String hddMode, String redoDir) { + return false; + } + + @Override public boolean addDefaultNat() { + return false; + } + + @Override public void setOs(String vendorOsId) { + + } + + @Override public boolean addDisplayName(String name) { + return false; + } + + @Override public boolean addRam(int mem) { + return false; + } + + @Override public void addFloppy(int index, String image, boolean readOnly) { + + } + + @Override public boolean addCdrom(String image) { + return false; + } + + @Override public boolean addCpuCoreCount(int nrOfCores) { + return false; + } + + @Override public void setSoundCard(SoundCardType type) { + + } + + @Override public SoundCardType getSoundCard() { + return SoundCardType.NONE; + } + + @Override public void setDDAcceleration(DDAcceleration type) { + + } + + @Override public DDAcceleration getDDAcceleration() { + return DDAcceleration.OFF; + } + + @Override public void setHWVersion(HWVersion type) { + + } + + @Override public HWVersion getHWVersion() { + return HWVersion.DEFAULT; + } + + @Override public void setEthernetDevType(int cardIndex, EthernetDevType type) { + + } + + @Override public EthernetDevType getEthernetDevType(int cardIndex) { + return EthernetDevType.NONE; + } + + @Override public void setMaxUsbSpeed(UsbSpeed speed) { + + } + + @Override public UsbSpeed getMaxUsbSpeed() { + return UsbSpeed.NONE; + } + + @Override public byte[] getDefinitionArray() { + return new byte[0]; + } + + @Override public boolean addEthernet(EtherType type) { + return false; + } + + @Override public Virtualizer getVirtualizer() { + return virtualizer; + } + + @Override public boolean tweakForNonPersistent() { + return false; + } + + @Override public void registerVirtualHW() { + + } +} diff --git a/src/main/java/org/openslx/util/vm/VmMetaData.java b/src/main/java/org/openslx/util/vm/VmMetaData.java index 29e2db9..e695bc0 100644 --- a/src/main/java/org/openslx/util/vm/VmMetaData.java +++ b/src/main/java/org/openslx/util/vm/VmMetaData.java @@ -312,6 +312,11 @@ public abstract class VmMetaData } catch ( Exception e ) { LOGGER.info( "Not a QEmu file", e ); } + try { + return new DockerMetaDataDummy(osList); + } catch ( Exception e ) { + LOGGER.info( "Not a docker file", e ); + } LOGGER.error( "Could not detect any known virtualizer format" ); return null; } -- cgit v1.2.3-55-g7522