From a3c30c6871a349fb85f5e27060f159cbc7744ce1 Mon Sep 17 00:00:00 2001 From: Leo Nunner Date: Tue, 14 Mar 2023 14:14:54 +0100 Subject: [PATCH] config: use relative paths for content overrides Remove the requirement for paths to start with a /, as it might be confusing to users. Signed-off-by: Leo Nunner --- PVE/Storage/Plugin.pm | 6 +++--- test/get_subdir_test.pm | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/PVE/Storage/Plugin.pm b/PVE/Storage/Plugin.pm index 2c5ba53..09f6ad2 100644 --- a/PVE/Storage/Plugin.pm +++ b/PVE/Storage/Plugin.pm @@ -355,7 +355,7 @@ PVE::JSONSchema::register_format('pve-dir-override', \&verify_dir_override); sub verify_dir_override { my ($value, $noerr) = @_; - if ($value =~ m/^([-a-z]+)=\/.+$/ && verify_content($1, $noerr)) { + if ($value =~ m/^([a-z]+)=[^.]+$/ && verify_content($1, $noerr)) { return $value; } @@ -658,9 +658,9 @@ sub get_subdir { die "storage definition has no path\n" if !$path; die "unknown vtype '$vtype'\n" if !exists($vtype_subdirs->{$vtype}); - my $subdir = $scfg->{"content-dirs"}->{$vtype} // "/".$vtype_subdirs->{$vtype}; + my $subdir = $scfg->{"content-dirs"}->{$vtype} // $vtype_subdirs->{$vtype}; - return $path.$subdir; + return "$path/$subdir"; } sub filesystem_path { diff --git a/test/get_subdir_test.pm b/test/get_subdir_test.pm index ff42985..b9d61d5 100644 --- a/test/get_subdir_test.pm +++ b/test/get_subdir_test.pm @@ -29,9 +29,9 @@ foreach my $type (keys %$vtype_subdirs) { # creates additional tests for overrides foreach my $type (keys %$vtype_subdirs) { - my $override = "/${type}_override"; + my $override = "${type}_override"; my $scfg_with_override = { path => '/some/path', 'content-dirs' => { $type => $override } }; - push @$tests, [ $scfg_with_override, $type, "$scfg_with_override->{path}$scfg_with_override->{'content-dirs'}->{$type}" ]; + push @$tests, [ $scfg_with_override, $type, "$scfg_with_override->{path}/$scfg_with_override->{'content-dirs'}->{$type}" ]; } plan tests => scalar @$tests; -- 2.39.2