[pve-devel] [PATCH manager stable-7] pve7to8: content-dirs check: skip paths that cannot be resolved

Friedrich Weber f.weber at proxmox.com
Thu Jun 15 15:22:31 CEST 2023

The current inequality check for content-dirs does not correctly
handle the case in which `abs_path` returns undef. This can result in
confusing warnings:

  storage [...] uses directory  for multiple content types [...]

Fix this by skipping paths for which `abs_path` returns undef. This
matches the behavior of the actual content-dirs check in PVE 8 [0].

[0]: https://git.proxmox.com/?p=pve-storage.git;a=commit;h=09f1f847a

Fixes: ea0a4f1943ffafe94282afc800d5720db45df198
Signed-off-by: Friedrich Weber <f.weber at proxmox.com>
 PVE/CLI/pve7to8.pm | 1 +
 1 file changed, 1 insertion(+)

diff --git a/PVE/CLI/pve7to8.pm b/PVE/CLI/pve7to8.pm
index d8624ca7..22a477a5 100644
--- a/PVE/CLI/pve7to8.pm
+++ b/PVE/CLI/pve7to8.pm
@@ -986,6 +986,7 @@ sub check_storage_content_dirs {
 	my $plugin = PVE::Storage::Plugin->lookup($scfg->{type});
 	for my $vtype (keys $scfg->{content}->%*) {
 	    my $abs_subdir = Cwd::abs_path($plugin->get_subdir($scfg, $vtype));
+	    next if !defined($abs_subdir);
 	    push $resolved_subdirs->{$abs_subdir}->@*, $vtype;
 	for my $subdir (keys $resolved_subdirs->%*) {

More information about the pve-devel mailing list