diff options
author | Simon Rettberg | 2025-03-21 16:21:57 +0100 |
---|---|---|
committer | Simon Rettberg | 2025-03-21 16:21:57 +0100 |
commit | a60f26896c03c84c6621e7308d6a286450fa82cf (patch) | |
tree | 099fbb208d5a15a245204bdab4e428b87f24f434 | |
parent | [libvirt] Add methods to get/set (QXL) VRAM (diff) | |
download | master-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
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 ); } } |