summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openslx/virtualization/virtualizer/VirtualizerQemu.java
blob: 5d933bb567a8a074c66774acfde2c93323c96a3b (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
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;
	}
}