summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openslx/vm
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/openslx/vm')
-rw-r--r--src/main/java/org/openslx/vm/disk/DiskImage.java3
-rw-r--r--src/main/java/org/openslx/vm/disk/DiskImageQcow2.java8
-rw-r--r--src/main/java/org/openslx/vm/disk/DiskImageUtils.java20
-rw-r--r--src/main/java/org/openslx/vm/disk/DiskImageVdi.java6
-rw-r--r--src/main/java/org/openslx/vm/disk/DiskImageVmdk.java13
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