summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Rettberg2025-03-21 16:21:57 +0100
committerSimon Rettberg2025-03-21 16:21:57 +0100
commita60f26896c03c84c6621e7308d6a286450fa82cf (patch)
tree099fbb208d5a15a245204bdab4e428b87f24f434
parent[libvirt] Add methods to get/set (QXL) VRAM (diff)
downloadmaster-sync-shared-a60f268.tar.gz
master-sync-shared-a60f268.tar.xz
master-sync-shared-a60f268.zip
[libvirt] Remove efi loader tag on client download transform
-rw-r--r--src/main/java/org/openslx/virtualization/configuration/VirtualizationConfigurationException.java4
-rw-r--r--src/main/java/org/openslx/virtualization/configuration/VirtualizationConfigurationQemu.java16
2 files changed, 17 insertions, 3 deletions
diff --git a/src/main/java/org/openslx/virtualization/configuration/VirtualizationConfigurationException.java b/src/main/java/org/openslx/virtualization/configuration/VirtualizationConfigurationException.java
index 2d401b1..44333fa 100644
--- a/src/main/java/org/openslx/virtualization/configuration/VirtualizationConfigurationException.java
+++ b/src/main/java/org/openslx/virtualization/configuration/VirtualizationConfigurationException.java
@@ -10,4 +10,8 @@ public class VirtualizationConfigurationException extends Exception
public VirtualizationConfigurationException(String message) {
super(message);
}
+
+ public VirtualizationConfigurationException(Throwable cause) {
+ super(cause);
+ }
} \ No newline at end of file
diff --git a/src/main/java/org/openslx/virtualization/configuration/VirtualizationConfigurationQemu.java b/src/main/java/org/openslx/virtualization/configuration/VirtualizationConfigurationQemu.java
index de0dae6..d714fc4 100644
--- a/src/main/java/org/openslx/virtualization/configuration/VirtualizationConfigurationQemu.java
+++ b/src/main/java/org/openslx/virtualization/configuration/VirtualizationConfigurationQemu.java
@@ -214,13 +214,23 @@ public class VirtualizationConfigurationQemu extends VirtualizationConfiguration
public void transformOsLoader() throws VirtualizationConfigurationException
{
+ // If we got firmware="efi" in the os tag, we don't need the loader
+ // at all, in fact it can lead to
+ // libvirt: QEMU Driver Fehler : operation failed: Unable to find any firmware to satisfy 'efi'
+ // so we remove the loader tag in that case and bail out
+ if ( "efi".equalsIgnoreCase( vmConfig.getOsFirmware() ) ) {
+ vmConfig.setOsLoader( null );
+ return;
+ }
+
+ // Other/unknown loader, try to determine what to do
final String sourceOsLoader = this.vmConfig.getOsLoader();
final String sourceOsArch = this.vmConfig.getOsArch();
final String sourceOsMachine = this.vmConfig.getOsMachine();
// transform OS loader for local editing
// check if OS loader is specified
- if ( sourceOsLoader != null && !sourceOsLoader.isEmpty() ) {
+ if ( !Util.isEmptyString( sourceOsLoader ) ) {
// OS loader is specified so transform path to specified firmware path
// First, lookup QEMU firmware loader for target
String targetOsLoader = null;
@@ -228,11 +238,11 @@ public class VirtualizationConfigurationQemu extends VirtualizationConfiguration
targetOsLoader = QemuFirmwareUtil.lookupTargetOsLoaderDefaultFwSpecDir( sourceOsLoader, sourceOsArch,
sourceOsMachine );
} catch ( FirmwareException e ) {
- throw new VirtualizationConfigurationException( e.getLocalizedMessage() );
+ throw new VirtualizationConfigurationException( e );
}
// Second, set target QEMU firmware loader if specified
- if ( targetOsLoader != null && !targetOsLoader.isEmpty() ) {
+ if ( !Util.isEmptyString( targetOsLoader ) ) {
this.vmConfig.setOsLoader( targetOsLoader );
}
}