summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openslx/virtualization
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/org/openslx/virtualization')
-rw-r--r--src/main/java/org/openslx/virtualization/configuration/VirtualizationConfiguration.java2
-rw-r--r--src/main/java/org/openslx/virtualization/configuration/VirtualizationConfigurationDocker.java5
-rw-r--r--src/main/java/org/openslx/virtualization/configuration/VirtualizationConfigurationQemu.java19
-rw-r--r--src/main/java/org/openslx/virtualization/configuration/VirtualizationConfigurationVirtualBox.java6
-rw-r--r--src/main/java/org/openslx/virtualization/configuration/VirtualizationConfigurationVmware.java7
-rw-r--r--src/main/java/org/openslx/virtualization/configuration/logic/ConfigurationLogicDozModServerToStatelessClient.java4
6 files changed, 39 insertions, 4 deletions
diff --git a/src/main/java/org/openslx/virtualization/configuration/VirtualizationConfiguration.java b/src/main/java/org/openslx/virtualization/configuration/VirtualizationConfiguration.java
index c5381c5..b8e46ed 100644
--- a/src/main/java/org/openslx/virtualization/configuration/VirtualizationConfiguration.java
+++ b/src/main/java/org/openslx/virtualization/configuration/VirtualizationConfiguration.java
@@ -326,6 +326,8 @@ public abstract class VirtualizationConfiguration<T, U, W, X>
*/
public abstract String getFileNameExtension();
+ public abstract boolean addEmptyHddTemplate();
+
public abstract boolean addHddTemplate( File diskImage, String hddMode, String redoDir );
public abstract boolean addHddTemplate( String diskImagePath, String hddMode, String redoDir );
diff --git a/src/main/java/org/openslx/virtualization/configuration/VirtualizationConfigurationDocker.java b/src/main/java/org/openslx/virtualization/configuration/VirtualizationConfigurationDocker.java
index 5b1615f..d5e9abb 100644
--- a/src/main/java/org/openslx/virtualization/configuration/VirtualizationConfigurationDocker.java
+++ b/src/main/java/org/openslx/virtualization/configuration/VirtualizationConfigurationDocker.java
@@ -104,6 +104,11 @@ public class VirtualizationConfigurationDocker extends VirtualizationConfigurati
public void transformPrivacy() throws VirtualizationConfigurationException {
}
+ @Override
+ public boolean addEmptyHddTemplate() {
+ return false;
+ }
+
@Override public boolean addHddTemplate(File diskImage, String hddMode, String redoDir) {
return false;
}
diff --git a/src/main/java/org/openslx/virtualization/configuration/VirtualizationConfigurationQemu.java b/src/main/java/org/openslx/virtualization/configuration/VirtualizationConfigurationQemu.java
index 716a2f3..710a42d 100644
--- a/src/main/java/org/openslx/virtualization/configuration/VirtualizationConfigurationQemu.java
+++ b/src/main/java/org/openslx/virtualization/configuration/VirtualizationConfigurationQemu.java
@@ -313,6 +313,12 @@ public class VirtualizationConfigurationQemu extends
}
@Override
+ public boolean addEmptyHddTemplate()
+ {
+ return this.addHddTemplate( new String(), null, null );
+ }
+
+ @Override
public boolean addHddTemplate( File diskImage, String hddMode, String redoDir )
{
return this.addHddTemplate( diskImage.getAbsolutePath(), hddMode, redoDir );
@@ -348,13 +354,22 @@ public class VirtualizationConfigurationQemu extends
storageDiskDevice.setBusType( BusType.VIRTIO );
String targetDevName = VirtualizationConfigurationQemuUtils.createAlphabeticalDeviceName( "vd", index );
storageDiskDevice.setTargetDevice( targetDevName );
- storageDiskDevice.setStorage( StorageType.FILE, diskImagePath );
+
+ if ( diskImagePath == null || diskImagePath.isEmpty() ) {
+ storageDiskDevice.removeStorage();
+ } else {
+ storageDiskDevice.setStorage( StorageType.FILE, diskImagePath );
+ }
// add new created HDD to the metadata of the QemuMetaData object, too
this.addHddMetaData( storageDiskDevice );
} else {
// HDD exists, so update existing storage (HDD) device
- storageDiskDevice.setStorage( StorageType.FILE, diskImagePath );
+ if ( diskImagePath == null || diskImagePath.isEmpty() ) {
+ storageDiskDevice.removeStorage();
+ } else {
+ storageDiskDevice.setStorage( StorageType.FILE, diskImagePath );
+ }
}
return true;
diff --git a/src/main/java/org/openslx/virtualization/configuration/VirtualizationConfigurationVirtualBox.java b/src/main/java/org/openslx/virtualization/configuration/VirtualizationConfigurationVirtualBox.java
index d32d496..c53a7e0 100644
--- a/src/main/java/org/openslx/virtualization/configuration/VirtualizationConfigurationVirtualBox.java
+++ b/src/main/java/org/openslx/virtualization/configuration/VirtualizationConfigurationVirtualBox.java
@@ -132,6 +132,12 @@ public class VirtualizationConfigurationVirtualBox extends VirtualizationConfigu
}
@Override
+ public boolean addEmptyHddTemplate()
+ {
+ return this.addHddTemplate( "%VM_DISK_PATH%", "%VM_DISK_MODE%", "%VM_DISK_REDOLOGDIR%" );
+ }
+
+ @Override
public boolean addHddTemplate( String diskImage, String hddMode, String redoDir )
{
config.changeAttribute( "/VirtualBox/Machine/MediaRegistry/HardDisks/HardDisk[@location='" + PlaceHolder.HDDLOCATION.toString() + "']", "location", diskImage );
diff --git a/src/main/java/org/openslx/virtualization/configuration/VirtualizationConfigurationVmware.java b/src/main/java/org/openslx/virtualization/configuration/VirtualizationConfigurationVmware.java
index e1102b6..3e8d913 100644
--- a/src/main/java/org/openslx/virtualization/configuration/VirtualizationConfigurationVmware.java
+++ b/src/main/java/org/openslx/virtualization/configuration/VirtualizationConfigurationVmware.java
@@ -239,6 +239,12 @@ public class VirtualizationConfigurationVmware extends VirtualizationConfigurati
}
@Override
+ public boolean addEmptyHddTemplate()
+ {
+ return this.addHddTemplate( "%VM_DISK_PATH%", "%VM_DISK_MODE%", "%VM_DISK_REDOLOGDIR%" );
+ }
+
+ @Override
public boolean addHddTemplate( File diskImage, String hddMode, String redoDir )
{
return addHddTemplate( diskImage.getName(), hddMode, redoDir );
@@ -251,6 +257,7 @@ public class VirtualizationConfigurationVmware extends VirtualizationConfigurati
LOGGER.error( "Empty disk image path given!" );
return false;
}
+
DriveBusType bus;
try {
bus = DriveBusType.valueOf( config.get( "#SLX_HDD_BUS" ) );
diff --git a/src/main/java/org/openslx/virtualization/configuration/logic/ConfigurationLogicDozModServerToStatelessClient.java b/src/main/java/org/openslx/virtualization/configuration/logic/ConfigurationLogicDozModServerToStatelessClient.java
index 6c573bb..580b0fc 100644
--- a/src/main/java/org/openslx/virtualization/configuration/logic/ConfigurationLogicDozModServerToStatelessClient.java
+++ b/src/main/java/org/openslx/virtualization/configuration/logic/ConfigurationLogicDozModServerToStatelessClient.java
@@ -78,8 +78,8 @@ public class ConfigurationLogicDozModServerToStatelessClient
throw new TransformationException( "Can not set display name in virtualization configuration!" );
}
- // append hard disk drive
- if ( !config.addHddTemplate( "%VM_DISK_PATH%", "%VM_DISK_MODE%", "%VM_DISK_REDOLOGDIR%" ) ) {
+ // append hard disk drive (with no referenced image as content)
+ if ( !config.addEmptyHddTemplate() ) {
throw new TransformationException( "Can not configure hard disk in virtualization configuration!" );
}