[pve-devel] [PATCH qemu-server 1/3] migrate: improve early error messages

Fabian Ebner f.ebner at proxmox.com
Fri Mar 19 14:49:06 CET 2021


by re-using the log_error-closure and not dying too early. In the case of
unreferenced volumes, it was not clear why a certain storage would be required
for migration. Now, the list of all volumes is always printed, and in
the error case, all problems will be printed before we abort.

Reported-by: Thomas Lamprecht <t.lamprecht at proxmox.com>
Signed-off-by: Fabian Ebner <f.ebner at proxmox.com>
---
 PVE/QemuMigrate.pm | 15 +++++++++++----
 1 file changed, 11 insertions(+), 4 deletions(-)

diff --git a/PVE/QemuMigrate.pm b/PVE/QemuMigrate.pm
index 5c019fc..3597cc9 100644
--- a/PVE/QemuMigrate.pm
+++ b/PVE/QemuMigrate.pm
@@ -400,12 +400,19 @@ sub sync_disks {
 
 	    my $targetsid = PVE::QemuServer::map_storage($self->{opts}->{storagemap}, $storeid);
 	    # check if storage is available on target node
-	    PVE::Storage::storage_check_node($storecfg, $targetsid, $self->{node});
+	    my $target_scfg = PVE::Storage::storage_check_node(
+		$storecfg,
+		$targetsid,
+		$self->{node},
+		1,
+	    );
+
+	    $log_error->("storage '$targetsid' is not available on node '$self->{node}'")
+		if !$target_scfg;
 
 	    # grandfather in existing mismatches
-	    if ($targetsid ne $storeid) {
-		my $target_scfg = PVE::Storage::storage_config($storecfg, $targetsid);
-		die "content type 'images' is not available on storage '$targetsid'\n"
+	    if ($targetsid ne $storeid && $target_scfg) {
+		$log_error->("content type 'images' is not available on storage '$targetsid'")
 		    if !$target_scfg->{content}->{images};
 	    }
 
-- 
2.20.1






More information about the pve-devel mailing list