summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openslx/util/vm/VmwareMetaData.java
diff options
context:
space:
mode:
authorSimon Rettberg2016-02-24 14:45:25 +0100
committerSimon Rettberg2016-02-24 14:45:25 +0100
commit80641a892cbbbff717e8c7f81dd62edf5d170939 (patch)
treefd99dbd80130fefc089a81f3f901605c18ad9608 /src/main/java/org/openslx/util/vm/VmwareMetaData.java
parentadded comparator for locations (diff)
downloadmaster-sync-shared-80641a892cbbbff717e8c7f81dd62edf5d170939.tar.gz
master-sync-shared-80641a892cbbbff717e8c7f81dd62edf5d170939.tar.xz
master-sync-shared-80641a892cbbbff717e8c7f81dd62edf5d170939.zip
[vmware] Add addCdrom function
Diffstat (limited to 'src/main/java/org/openslx/util/vm/VmwareMetaData.java')
-rw-r--r--src/main/java/org/openslx/util/vm/VmwareMetaData.java29
1 files changed, 28 insertions, 1 deletions
diff --git a/src/main/java/org/openslx/util/vm/VmwareMetaData.java b/src/main/java/org/openslx/util/vm/VmwareMetaData.java
index e15f476..e748515 100644
--- a/src/main/java/org/openslx/util/vm/VmwareMetaData.java
+++ b/src/main/java/org/openslx/util/vm/VmwareMetaData.java
@@ -99,6 +99,12 @@ public class VmwareMetaData extends VmMetaData
config.set( key, value ).filtered( true );
}
+ private boolean isSetAndTrue( String key )
+ {
+ String value = config.get( key );
+ return value != null && value.equalsIgnoreCase( "true" );
+ }
+
private void handleLoadEntry( Entry<String, ConfigEntry> entry )
{
String lowerKey = entry.getKey().toLowerCase();
@@ -236,9 +242,10 @@ public class VmwareMetaData extends VmMetaData
addFiltered( pre + ".present", "TRUE" );
if ( image == null ) {
addFiltered( pre + ".startConnected", "FALSE" );
- addFiltered( pre + ".autodetect", "TRUE" );
addFiltered( pre + ".fileType", "device" );
config.remove( pre + ".fileName" );
+ config.remove( pre + ".readonly" );
+ addFiltered( pre + ".autodetect", "TRUE" );
} else {
addFiltered( pre + ".startConnected", "TRUE" );
addFiltered( pre + ".fileType", "file" );
@@ -248,6 +255,26 @@ public class VmwareMetaData extends VmMetaData
}
}
+ public boolean addCdrom( String image )
+ {
+ for ( String port : new String[] { "ide0:0", "ide0:1", "ide1:0", "ide1:1", "scsi0:1" } ) {
+ if ( !isSetAndTrue( port + ".present" ) ) {
+ addFiltered( port + ".present", "TRUE" );
+ if ( image == null ) {
+ addFiltered( port + ".autodetect", "TRUE" );
+ addFiltered( port + ".deviceType", "cdrom-raw" );
+ config.remove( port + ".fileName" );
+ } else {
+ config.remove( port + ".autodetect" );
+ addFiltered( port + ".deviceType", "cdrom-image" );
+ addFiltered( port + ".fileName", image );
+ }
+ return true;
+ }
+ }
+ return false;
+ }
+
public boolean disableSuspend()
{
addFiltered( "suspend.disabled", "TRUE" );