[pve-devel] [PATCH qemu-server v3] fix #4378: standardized error for ovmf files

Noel Ullreich n.ullreich at proxmox.com
Mon Jan 16 15:24:10 CET 2023


The error messages for missing OVMF_CODE and OVMF_VARS files were
inconsistent as well as the error for the missing base var file not
telling you the expected path.

Signed-off-by: Noel Ullreich <n.ullreich at proxmox.com>
---
 changes from v1:
 * rebased to account for move from sub config_to_command to sub
   print_ovmf_drive_commandlines
 * left out check for existing EFI vars image in sub config_to_command
   since it was redundant

 changes from v2:
 * moved all checks to single sub get_ovmf_files

 PVE/QemuServer.pm | 9 +++++----
 1 file changed, 5 insertions(+), 4 deletions(-)

diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
index f4b15fd..b18c64e 100644
--- a/PVE/QemuServer.pm
+++ b/PVE/QemuServer.pm
@@ -3379,7 +3379,11 @@ sub get_ovmf_files($$$) {
 	$type .= '-ms' if $efidisk->{'pre-enrolled-keys'};
     }
 
-    return $types->{$type}->@*;
+    my ($ovmf_code, $ovmf_vars) = $types->{$type}->@*;
+    die "EFI base image '$ovmf_code' not found\n" if ! -f $ovmf_code;
+    die "EFI vars image '$ovmf_vars' not found\n" if ! -f $ovmf_vars;
+
+    return ($ovmf_code, $ovmf_vars);
 }
 
 my $Arch2Qemu = {
@@ -3528,7 +3532,6 @@ my sub print_ovmf_drive_commandlines {
     my $d = $conf->{efidisk0} ? parse_drive('efidisk0', $conf->{efidisk0}) : undef;
 
     my ($ovmf_code, $ovmf_vars) = get_ovmf_files($arch, $d, $q35);
-    die "uefi base image '$ovmf_code' not found\n" if ! -f $ovmf_code;
 
     my $var_drive_str = "if=pflash,unit=1,id=drive-efidisk0";
     if ($d) {
@@ -8076,7 +8079,6 @@ sub get_efivars_size {
     $efidisk //= $conf->{efidisk0} ? parse_drive('efidisk0', $conf->{efidisk0}) : undef;
     my $smm = PVE::QemuServer::Machine::machine_type_is_q35($conf);
     my (undef, $ovmf_vars) = get_ovmf_files($arch, $efidisk, $smm);
-    die "uefi vars image '$ovmf_vars' not found\n" if ! -f $ovmf_vars;
     return -s $ovmf_vars;
 }
 
@@ -8104,7 +8106,6 @@ sub create_efidisk($$$$$$$) {
     my ($storecfg, $storeid, $vmid, $fmt, $arch, $efidisk, $smm) = @_;
 
     my (undef, $ovmf_vars) = get_ovmf_files($arch, $efidisk, $smm);
-    die "EFI vars default image not found\n" if ! -f $ovmf_vars;
 
     my $vars_size_b = -s $ovmf_vars;
     my $vars_size = PVE::Tools::convert_size($vars_size_b, 'b' => 'kb');
-- 
2.30.2






More information about the pve-devel mailing list