summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openslx/virtualization/virtualizer
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/openslx/virtualization/virtualizer')
-rw-r--r--src/main/java/org/openslx/virtualization/virtualizer/Virtualizer.java68
-rw-r--r--src/main/java/org/openslx/virtualization/virtualizer/VirtualizerDocker.java55
-rw-r--r--src/main/java/org/openslx/virtualization/virtualizer/VirtualizerQemu.java72
-rw-r--r--src/main/java/org/openslx/virtualization/virtualizer/VirtualizerVirtualBox.java56
-rw-r--r--src/main/java/org/openslx/virtualization/virtualizer/VirtualizerVmware.java73
5 files changed, 324 insertions, 0 deletions
diff --git a/src/main/java/org/openslx/virtualization/virtualizer/Virtualizer.java b/src/main/java/org/openslx/virtualization/virtualizer/Virtualizer.java
new file mode 100644
index 0000000..ff24862
--- /dev/null
+++ b/src/main/java/org/openslx/virtualization/virtualizer/Virtualizer.java
@@ -0,0 +1,68 @@
+package org.openslx.virtualization.virtualizer;
+
+import java.util.List;
+
+import org.openslx.virtualization.Version;
+import org.openslx.virtualization.disk.DiskImage.ImageFormat;
+
+/**
+ * Representation of a virtualization system.
+ *
+ * The virtualization system can be for example a virtual machine hypervisor (like VirtualBox), a
+ * container for operating systems or applications (like LXC or Docker), or a runtime environment
+ * (like Wine).
+ *
+ * @author Manuel Bentele
+ * @version 1.0
+ */
+public abstract class Virtualizer
+{
+ /**
+ * Internal data representation for the virtualizer.
+ */
+ protected final org.openslx.bwlp.thrift.iface.Virtualizer internalVirtualizer;
+
+ /**
+ * Creates a new virtualizer.
+ *
+ * @param internalVirtualizer internal data representation for the new virtualizer.
+ */
+ public Virtualizer( org.openslx.bwlp.thrift.iface.Virtualizer internalVirtualizer )
+ {
+ this.internalVirtualizer = internalVirtualizer;
+ }
+
+ /**
+ * Returns the identifier of the virtualizer.
+ *
+ * @return identifier of the virtualizer.
+ */
+ public String getId()
+ {
+ return this.internalVirtualizer.getVirtId();
+ }
+
+ /**
+ * Returns the name of the virtualizer.
+ *
+ * @return name of the virtualizer.
+ */
+ public String getName()
+ {
+ return this.internalVirtualizer.getVirtName();
+ }
+
+ /**
+ * Returns a list of supported disk image formats by the virtualizer.
+ *
+ * @return list of supported disk image formats by the virtualizer.
+ */
+ public abstract List<ImageFormat> getSupportedImageFormats();
+
+ /**
+ * Returns a list of supported versions of the virtualizer.
+ *
+ * @return list of supported versions of the virtualizer.
+ */
+ public abstract List<Version> getSupportedVersions();
+}
diff --git a/src/main/java/org/openslx/virtualization/virtualizer/VirtualizerDocker.java b/src/main/java/org/openslx/virtualization/virtualizer/VirtualizerDocker.java
new file mode 100644
index 0000000..06ac24e
--- /dev/null
+++ b/src/main/java/org/openslx/virtualization/virtualizer/VirtualizerDocker.java
@@ -0,0 +1,55 @@
+package org.openslx.virtualization.virtualizer;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.openslx.thrifthelper.TConst;
+import org.openslx.virtualization.Version;
+import org.openslx.virtualization.disk.DiskImage;
+import org.openslx.virtualization.disk.DiskImage.ImageFormat;
+
+/**
+ * Representation of the Docker virtualizer for application containers.
+ *
+ * @author Manuel Bentele
+ * @version 1.0
+ */
+public class VirtualizerDocker extends Virtualizer
+{
+ /**
+ * Name of the Docker virtualizer.
+ */
+ private static final String VIRTUALIZER_NAME = "Docker";
+
+ /**
+ * List of supported image formats by the Docker virtualizer.
+ */
+ private static final List<DiskImage.ImageFormat> VIRTUALIZER_SUPPORTED_IMAGE_FORMATS = Collections
+ .unmodifiableList( Arrays.asList( ImageFormat.NONE ) );
+
+ /**
+ * List of supported versions of the Docker virtualizer.
+ */
+ private static final List<Version> VIRTUALIZER_SUPPORTED_VERSIONS = null;
+
+ /**
+ * Creates a new Docker virtualizer.
+ */
+ public VirtualizerDocker()
+ {
+ super( new org.openslx.bwlp.thrift.iface.Virtualizer( TConst.VIRT_DOCKER, VirtualizerDocker.VIRTUALIZER_NAME ) );
+ }
+
+ @Override
+ public List<ImageFormat> getSupportedImageFormats()
+ {
+ return VirtualizerDocker.VIRTUALIZER_SUPPORTED_IMAGE_FORMATS;
+ }
+
+ @Override
+ public List<Version> getSupportedVersions()
+ {
+ return VirtualizerDocker.VIRTUALIZER_SUPPORTED_VERSIONS;
+ }
+}
diff --git a/src/main/java/org/openslx/virtualization/virtualizer/VirtualizerQemu.java b/src/main/java/org/openslx/virtualization/virtualizer/VirtualizerQemu.java
new file mode 100644
index 0000000..5d933bb
--- /dev/null
+++ b/src/main/java/org/openslx/virtualization/virtualizer/VirtualizerQemu.java
@@ -0,0 +1,72 @@
+package org.openslx.virtualization.virtualizer;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.openslx.thrifthelper.TConst;
+import org.openslx.virtualization.Version;
+import org.openslx.virtualization.disk.DiskImage;
+import org.openslx.virtualization.disk.DiskImage.ImageFormat;
+
+/**
+ * Representation of the QEMU virtualizer for virtual machines.
+ *
+ * @author Manuel Bentele
+ * @version 1.0
+ */
+public class VirtualizerQemu extends Virtualizer
+{
+ /**
+ * Name of the QEMU virtualizer.
+ */
+ private static final String VIRTUALIZER_NAME = "QEMU";
+
+ /**
+ * List of supported image formats by the QEMU virtualizer.
+ */
+ private static final List<DiskImage.ImageFormat> VIRTUALIZER_SUPPORTED_IMAGE_FORMATS = Collections
+ .unmodifiableList( Arrays.asList( ImageFormat.QCOW2, ImageFormat.VMDK, ImageFormat.VDI ) );
+
+ /**
+ * List of supported versions of the QEMU virtualizer.
+ */
+ private static final List<Version> VIRTUALIZER_SUPPORTED_VERSIONS = Collections.unmodifiableList(
+ Arrays.asList(
+ new Version( Short.valueOf( "2" ), Short.valueOf( "4" ), "QEMU 2.4" ),
+ new Version( Short.valueOf( "2" ), Short.valueOf( "5" ), "QEMU 2.5" ),
+ new Version( Short.valueOf( "2" ), Short.valueOf( "6" ), "QEMU 2.6" ),
+ new Version( Short.valueOf( "2" ), Short.valueOf( "7" ), "QEMU 2.7" ),
+ new Version( Short.valueOf( "2" ), Short.valueOf( "8" ), "QEMU 2.8" ),
+ new Version( Short.valueOf( "2" ), Short.valueOf( "9" ), "QEMU 2.9" ),
+ new Version( Short.valueOf( "3" ), Short.valueOf( "0" ), "QEMU 3.0" ),
+ new Version( Short.valueOf( "3" ), Short.valueOf( "1" ), "QEMU 3.1" ),
+ new Version( Short.valueOf( "4" ), Short.valueOf( "0" ), "QEMU 4.0" ),
+ new Version( Short.valueOf( "4" ), Short.valueOf( "1" ), "QEMU 4.1" ),
+ new Version( Short.valueOf( "4" ), Short.valueOf( "2" ), "QEMU 4.2" ),
+ new Version( Short.valueOf( "5" ), Short.valueOf( "0" ), "QEMU 5.0" ),
+ new Version( Short.valueOf( "5" ), Short.valueOf( "1" ), "QEMU 5.1" ),
+ new Version( Short.valueOf( "5" ), Short.valueOf( "2" ), "QEMU 5.2" ),
+ new Version( Short.valueOf( "6" ), Short.valueOf( "0" ), "QEMU 6.0" ),
+ new Version( Short.valueOf( "6" ), Short.valueOf( "1" ), "QEMU 6.1" ) ) );
+
+ /**
+ * Creates a new QEMU virtualizer.
+ */
+ public VirtualizerQemu()
+ {
+ super( new org.openslx.bwlp.thrift.iface.Virtualizer( TConst.VIRT_QEMU, VirtualizerQemu.VIRTUALIZER_NAME ) );
+ }
+
+ @Override
+ public List<ImageFormat> getSupportedImageFormats()
+ {
+ return VirtualizerQemu.VIRTUALIZER_SUPPORTED_IMAGE_FORMATS;
+ }
+
+ @Override
+ public List<Version> getSupportedVersions()
+ {
+ return VirtualizerQemu.VIRTUALIZER_SUPPORTED_VERSIONS;
+ }
+}
diff --git a/src/main/java/org/openslx/virtualization/virtualizer/VirtualizerVirtualBox.java b/src/main/java/org/openslx/virtualization/virtualizer/VirtualizerVirtualBox.java
new file mode 100644
index 0000000..ebb3b3f
--- /dev/null
+++ b/src/main/java/org/openslx/virtualization/virtualizer/VirtualizerVirtualBox.java
@@ -0,0 +1,56 @@
+package org.openslx.virtualization.virtualizer;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.openslx.thrifthelper.TConst;
+import org.openslx.virtualization.Version;
+import org.openslx.virtualization.disk.DiskImage;
+import org.openslx.virtualization.disk.DiskImage.ImageFormat;
+
+/**
+ * Representation of the VirtualBox virtualizer for virtual machines.
+ *
+ * @author Manuel Bentele
+ * @version 1.0
+ */
+public class VirtualizerVirtualBox extends Virtualizer
+{
+ /**
+ * Name of the VirtualBox virtualizer.
+ */
+ private static final String VIRTUALIZER_NAME = "VirtualBox";
+
+ /**
+ * List of supported image formats by the VirtualBox virtualizer.
+ */
+ private static final List<DiskImage.ImageFormat> VIRTUALIZER_SUPPORTED_IMAGE_FORMATS = Collections
+ .unmodifiableList( Arrays.asList( ImageFormat.VDI ) );
+
+ /**
+ * List of supported version of the VirtualBox virtualizer.
+ */
+ private static final List<Version> VIRTUALIZER_SUPPORTED_VERSIONS = null;
+
+ /**
+ * Creates a new VirtualBox virtualizer.
+ */
+ public VirtualizerVirtualBox()
+ {
+ super( new org.openslx.bwlp.thrift.iface.Virtualizer( TConst.VIRT_VIRTUALBOX,
+ VirtualizerVirtualBox.VIRTUALIZER_NAME ) );
+ }
+
+ @Override
+ public List<ImageFormat> getSupportedImageFormats()
+ {
+ return VirtualizerVirtualBox.VIRTUALIZER_SUPPORTED_IMAGE_FORMATS;
+ }
+
+ @Override
+ public List<Version> getSupportedVersions()
+ {
+ return VirtualizerVirtualBox.VIRTUALIZER_SUPPORTED_VERSIONS;
+ }
+}
diff --git a/src/main/java/org/openslx/virtualization/virtualizer/VirtualizerVmware.java b/src/main/java/org/openslx/virtualization/virtualizer/VirtualizerVmware.java
new file mode 100644
index 0000000..f94ef39
--- /dev/null
+++ b/src/main/java/org/openslx/virtualization/virtualizer/VirtualizerVmware.java
@@ -0,0 +1,73 @@
+package org.openslx.virtualization.virtualizer;
+
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+import org.openslx.thrifthelper.TConst;
+import org.openslx.virtualization.Version;
+import org.openslx.virtualization.disk.DiskImage;
+import org.openslx.virtualization.disk.DiskImage.ImageFormat;
+
+/**
+ * Representation of the VMware virtualizer for virtual machines.
+ *
+ * @author Manuel Bentele
+ * @version 1.0
+ */
+public class VirtualizerVmware extends Virtualizer
+{
+ /**
+ * Name of the VMware virtualizer.
+ */
+ private static final String VIRTUALIZER_NAME = "VMware";
+
+ /**
+ * List of supported image formats by the VMware virtualizer.
+ */
+ private static final List<DiskImage.ImageFormat> VIRTUALIZER_SUPPORTED_IMAGE_FORMATS = Collections
+ .unmodifiableList( Arrays.asList( ImageFormat.VMDK ) );
+
+ /**
+ * List of supported versions of the VMware virtualizer.
+ */
+ private static final List<Version> VIRTUALIZER_SUPPORTED_VERSIONS = Collections.unmodifiableList(
+ Arrays.asList(
+ new Version( Short.valueOf( "03" ), "Workstation 4/5, Player 1" ),
+ new Version( Short.valueOf( "04" ), "Workstation 4/5, Player 1/2, Fusion 1" ),
+ new Version( Short.valueOf( "06" ), "Workstation 6" ),
+ new Version( Short.valueOf( "07" ), "Workstation 6.5/7, Player 3, Fusion 2/3" ),
+ new Version( Short.valueOf( "08" ), "Workstation 8, Player/Fusion 4" ),
+ new Version( Short.valueOf( "09" ), "Workstation 9, Player/Fusion 5" ),
+ new Version( Short.valueOf( "10" ), "Workstation 10, Player/Fusion 6" ),
+ new Version( Short.valueOf( "11" ), "Workstation 11, Player/Fusion 7" ),
+ new Version( Short.valueOf( "12" ), "Workstation/Player 12, Fusion 8" ),
+ new Version( Short.valueOf( "14" ), "Workstation/Player 14, Fusion 10" ),
+ new Version( Short.valueOf( "15" ), "Workstation/Player 15, Fusion 11" ),
+ new Version( Short.valueOf( "16" ), "Workstation/Player 15.1, Fusion 11.1" ),
+ new Version( Short.valueOf( "17" ), "Workstation/Player 16, Fusion 12" ),
+ new Version( Short.valueOf( "18" ), "Workstation/Player 16.1, Fusion 12.1" ),
+ new Version( Short.valueOf( "19" ), "Workstation/Player 16.2, Fusion 12.2" ),
+ new Version( Short.valueOf( "20" ), "Workstation/Player 17, Fusion 13" ) ) );
+
+ /**
+ * Creates a new VMware virtualizer.
+ */
+ public VirtualizerVmware()
+ {
+ super( new org.openslx.bwlp.thrift.iface.Virtualizer( TConst.VIRT_VMWARE, VirtualizerVmware.VIRTUALIZER_NAME ) );
+ }
+
+ @Override
+ public List<ImageFormat> getSupportedImageFormats()
+ {
+ return VirtualizerVmware.VIRTUALIZER_SUPPORTED_IMAGE_FORMATS;
+ }
+
+ @Override
+ public List<Version> getSupportedVersions()
+ {
+ return VirtualizerVmware.VIRTUALIZER_SUPPORTED_VERSIONS;
+ }
+
+}