summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openslx/virtualization/virtualizer/VirtualizerQemu.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/openslx/virtualization/virtualizer/VirtualizerQemu.java')
-rw-r--r--src/main/java/org/openslx/virtualization/virtualizer/VirtualizerQemu.java72
1 files changed, 72 insertions, 0 deletions
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;
+ }
+}