diff options
author | Simon Rettberg | 2016-02-24 14:45:25 +0100 |
---|---|---|
committer | Simon Rettberg | 2016-02-24 14:45:25 +0100 |
commit | 80641a892cbbbff717e8c7f81dd62edf5d170939 (patch) | |
tree | fd99dbd80130fefc089a81f3f901605c18ad9608 /src/main/java/org/openslx/util/vm/VmwareMetaData.java | |
parent | added comparator for locations (diff) | |
download | master-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.java | 29 |
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" ); |