From 1839c5c46eabbd85992d1bc90950bda9b1a64d62 Mon Sep 17 00:00:00 2001 From: Andrea Bolognani Date: Fri, 22 Sep 2023 15:19:46 +0200 Subject: [PATCH] qemu: Improve error message for failed firmware autoselection MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The current message can be misleading, because it seems to suggest that no firmware of the requested type is available on the system. What actually happens most of the time, however, is that despite having multiple firmwares of the right type to choose from, none of them is suitable because of lacking some specific feature or being incompatible with some setting that the user has explicitly enabled. Providing an error message that describes exactly the problem is not feasible, since we would have to list each candidate along with the reason why we rejected it, which would get out of hand quickly. As a small but hopefully helpful improvement over the current situation, reword the error message to make it clearer that the culprit is not necessarily the firmware type, but rather the overall domain configuration. Suggested-by: Michael Kjörling <7d1340278307@ewoof.net> Signed-off-by: Andrea Bolognani Reviewed-by: Michal Privoznik --- src/qemu/qemu_firmware.c | 2 +- .../firmware-auto-efi-loader-path-nonstandard.x86_64-latest.err | 2 +- ...rmware-auto-efi-nvram-template-nonstandard.x86_64-latest.err | 2 +- .../firmware-auto-efi-rw-abi-update.x86_64-latest.err | 2 +- tests/qemuxml2argvdata/firmware-auto-efi-rw.x86_64-latest.err | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/qemu/qemu_firmware.c b/src/qemu/qemu_firmware.c index 3dcd139a47..d39e61d071 100644 --- a/src/qemu/qemu_firmware.c +++ b/src/qemu/qemu_firmware.c @@ -1854,7 +1854,7 @@ qemuFirmwareFillDomain(virQEMUDriver *driver, } } else { virReportError(VIR_ERR_OPERATION_FAILED, - _("Unable to find any firmware to satisfy '%1$s'"), + _("Unable to find '%1$s' firmware that is compatible with the current configuration"), virDomainOsDefFirmwareTypeToString(def->os.firmware)); return -1; } diff --git a/tests/qemuxml2argvdata/firmware-auto-efi-loader-path-nonstandard.x86_64-latest.err b/tests/qemuxml2argvdata/firmware-auto-efi-loader-path-nonstandard.x86_64-latest.err index 4cfde1bd2e..3edb2b3451 100644 --- a/tests/qemuxml2argvdata/firmware-auto-efi-loader-path-nonstandard.x86_64-latest.err +++ b/tests/qemuxml2argvdata/firmware-auto-efi-loader-path-nonstandard.x86_64-latest.err @@ -1 +1 @@ -operation failed: Unable to find any firmware to satisfy 'efi' +operation failed: Unable to find 'efi' firmware that is compatible with the current configuration diff --git a/tests/qemuxml2argvdata/firmware-auto-efi-nvram-template-nonstandard.x86_64-latest.err b/tests/qemuxml2argvdata/firmware-auto-efi-nvram-template-nonstandard.x86_64-latest.err index 4cfde1bd2e..3edb2b3451 100644 --- a/tests/qemuxml2argvdata/firmware-auto-efi-nvram-template-nonstandard.x86_64-latest.err +++ b/tests/qemuxml2argvdata/firmware-auto-efi-nvram-template-nonstandard.x86_64-latest.err @@ -1 +1 @@ -operation failed: Unable to find any firmware to satisfy 'efi' +operation failed: Unable to find 'efi' firmware that is compatible with the current configuration diff --git a/tests/qemuxml2argvdata/firmware-auto-efi-rw-abi-update.x86_64-latest.err b/tests/qemuxml2argvdata/firmware-auto-efi-rw-abi-update.x86_64-latest.err index 4cfde1bd2e..3edb2b3451 100644 --- a/tests/qemuxml2argvdata/firmware-auto-efi-rw-abi-update.x86_64-latest.err +++ b/tests/qemuxml2argvdata/firmware-auto-efi-rw-abi-update.x86_64-latest.err @@ -1 +1 @@ -operation failed: Unable to find any firmware to satisfy 'efi' +operation failed: Unable to find 'efi' firmware that is compatible with the current configuration diff --git a/tests/qemuxml2argvdata/firmware-auto-efi-rw.x86_64-latest.err b/tests/qemuxml2argvdata/firmware-auto-efi-rw.x86_64-latest.err index 4cfde1bd2e..3edb2b3451 100644 --- a/tests/qemuxml2argvdata/firmware-auto-efi-rw.x86_64-latest.err +++ b/tests/qemuxml2argvdata/firmware-auto-efi-rw.x86_64-latest.err @@ -1 +1 @@ -operation failed: Unable to find any firmware to satisfy 'efi' +operation failed: Unable to find 'efi' firmware that is compatible with the current configuration