diff options
Diffstat (limited to 'src/main/java/org/openslx/vm')
5 files changed, 18 insertions, 32 deletions
diff --git a/src/main/java/org/openslx/vm/disk/DiskImage.java b/src/main/java/org/openslx/vm/disk/DiskImage.java index 38964f4..309ad77 100644 --- a/src/main/java/org/openslx/vm/disk/DiskImage.java +++ b/src/main/java/org/openslx/vm/disk/DiskImage.java @@ -9,6 +9,7 @@ import java.util.function.Predicate; import org.openslx.bwlp.thrift.iface.Virtualizer; import org.openslx.thrifthelper.TConst; +import org.openslx.virtualization.Version; /** * Disk image for virtual machines. @@ -103,7 +104,7 @@ public abstract class DiskImage * * @throws DiskImageException unable to obtain version of the disk image format. */ - public abstract int getVersion() throws DiskImageException; + public abstract Version getVersion() throws DiskImageException; /** * Returns the disk image description. diff --git a/src/main/java/org/openslx/vm/disk/DiskImageQcow2.java b/src/main/java/org/openslx/vm/disk/DiskImageQcow2.java index 5f72a00..04e61ea 100644 --- a/src/main/java/org/openslx/vm/disk/DiskImageQcow2.java +++ b/src/main/java/org/openslx/vm/disk/DiskImageQcow2.java @@ -5,6 +5,8 @@ import java.io.FileNotFoundException; import java.io.IOException; import java.io.RandomAccessFile; +import org.openslx.virtualization.Version; + /** * QCOW2 disk image for virtual machines. * @@ -120,7 +122,7 @@ public class DiskImageQcow2 extends DiskImage // check if QCOW2 image uses extended L2 tables // extended L2 tables are only possible in QCOW2 version 3 header format - if ( this.getVersion() >= 3 ) { + if ( this.getVersion().getMajor() >= Short.valueOf( "3" ) ) { // read incompatible feature bits final long qcowIncompatibleFeatures = DiskImageUtils.readLong( diskFile, 72 ); @@ -216,7 +218,7 @@ public class DiskImageQcow2 extends DiskImage } @Override - public int getVersion() throws DiskImageException + public Version getVersion() throws DiskImageException { final RandomAccessFile diskFile = this.getDiskImage(); final int qcowVersion = DiskImageUtils.readInt( diskFile, 4 ); @@ -228,7 +230,7 @@ public class DiskImageQcow2 extends DiskImage throw new DiskImageException( errorMsg ); } - return DiskImageUtils.versionFromMajor( Integer.valueOf( qcowVersion ).shortValue() ); + return new Version( Integer.valueOf( qcowVersion ).shortValue() ); } @Override diff --git a/src/main/java/org/openslx/vm/disk/DiskImageUtils.java b/src/main/java/org/openslx/vm/disk/DiskImageUtils.java index e704b74..cc29721 100644 --- a/src/main/java/org/openslx/vm/disk/DiskImageUtils.java +++ b/src/main/java/org/openslx/vm/disk/DiskImageUtils.java @@ -141,24 +141,4 @@ public class DiskImageUtils return new String( values ); } - - public static int versionFromMajorMinor( final short major, final short minor ) - { - return ( ( Integer.valueOf( major ) << 16 ) | minor ); - } - - public static int versionFromMajor( final short major ) - { - return DiskImageUtils.versionFromMajorMinor( major, Short.valueOf( "0" ) ); - } - - public static short versionToMajor( final int version ) - { - return Integer.valueOf( version >> 16 ).shortValue(); - } - - public static short versionToMinor( final int version ) - { - return Integer.valueOf( version & 0x0000FFFF ).shortValue(); - } } diff --git a/src/main/java/org/openslx/vm/disk/DiskImageVdi.java b/src/main/java/org/openslx/vm/disk/DiskImageVdi.java index 1c34c1d..16db956 100644 --- a/src/main/java/org/openslx/vm/disk/DiskImageVdi.java +++ b/src/main/java/org/openslx/vm/disk/DiskImageVdi.java @@ -5,6 +5,8 @@ import java.io.FileNotFoundException; import java.io.IOException; import java.io.RandomAccessFile; +import org.openslx.virtualization.Version; + /** * VDI disk image for virtual machines. * @@ -94,14 +96,14 @@ public class DiskImageVdi extends DiskImage } @Override - public int getVersion() throws DiskImageException + public Version getVersion() throws DiskImageException { final RandomAccessFile diskFile = this.getDiskImage(); final short vdiVersionMajor = Short.reverseBytes( DiskImageUtils.readShort( diskFile, 68 ) ); final short vdiVersionMinor = Short.reverseBytes( DiskImageUtils.readShort( diskFile, 70 ) ); - return DiskImageUtils.versionFromMajorMinor( vdiVersionMajor, vdiVersionMinor ); + return new Version( vdiVersionMajor, vdiVersionMinor ); } @Override diff --git a/src/main/java/org/openslx/vm/disk/DiskImageVmdk.java b/src/main/java/org/openslx/vm/disk/DiskImageVmdk.java index 1f475d9..7f59bc3 100644 --- a/src/main/java/org/openslx/vm/disk/DiskImageVmdk.java +++ b/src/main/java/org/openslx/vm/disk/DiskImageVmdk.java @@ -7,6 +7,7 @@ import java.io.RandomAccessFile; import org.openslx.util.Util; import org.openslx.virtualization.configuration.VirtualizationConfigurationVmwareFileFormat; +import org.openslx.virtualization.Version; import org.openslx.virtualization.configuration.VirtualizationConfigurationException; /** @@ -184,10 +185,10 @@ public class DiskImageVmdk extends DiskImage * * @throws DiskImageException */ - public int getHwVersion() throws DiskImageException + public Version getHwVersion() throws DiskImageException { final VirtualizationConfigurationVmwareFileFormat vmdkConfig = this.getVmdkConfig(); - final int hwVersion; + final Version hwVersion; if ( vmdkConfig != null ) { // VMDK image contains a hardware version, so return parsed hardware version @@ -195,11 +196,11 @@ public class DiskImageVmdk extends DiskImage final String hwVersionStr = vmdkConfig.get( "ddb.virtualHWVersion" ); final int hwVersionMajor = Util.parseInt( hwVersionStr, DiskImageVmdk.VMDK_DEFAULT_HW_VERSION ); - hwVersion = DiskImageUtils.versionFromMajor( Integer.valueOf( hwVersionMajor ).shortValue() ); + hwVersion = new Version( Integer.valueOf( hwVersionMajor ).shortValue() ); } else { // VMDK image does not contain any hardware version, so return default hardware version final int hwVersionMajor = DiskImageVmdk.VMDK_DEFAULT_HW_VERSION; - hwVersion = DiskImageUtils.versionFromMajor( Integer.valueOf( hwVersionMajor ).shortValue() ); + hwVersion = new Version( Integer.valueOf( hwVersionMajor ).shortValue() ); } return hwVersion; @@ -276,12 +277,12 @@ public class DiskImageVmdk extends DiskImage } @Override - public int getVersion() throws DiskImageException + public Version getVersion() throws DiskImageException { final RandomAccessFile diskFile = this.getDiskImage(); final int vmdkVersion = Integer.reverseBytes( DiskImageUtils.readInt( diskFile, 4 ) ); - return DiskImageUtils.versionFromMajor( Integer.valueOf( vmdkVersion ).shortValue() ); + return new Version( Integer.valueOf( vmdkVersion ).shortValue() ); } @Override |