diff --git a/PVE/Storage/CIFSPlugin.pm b/PVE/Storage/CIFSPlugin.pm index 4284c35..d238844 100644 --- a/PVE/Storage/CIFSPlugin.pm +++ b/PVE/Storage/CIFSPlugin.pm @@ -128,7 +128,7 @@ sub properties { sub options { return { path => { fixed => 1 }, - dirs => { optional => 1 }, + 'content-dirs' => { optional => 1 }, server => { fixed => 1 }, share => { fixed => 1 }, nodes => { optional => 1 }, diff --git a/PVE/Storage/DirPlugin.pm b/PVE/Storage/DirPlugin.pm index 3c907ca..9e305f5 100644 --- a/PVE/Storage/DirPlugin.pm +++ b/PVE/Storage/DirPlugin.pm @@ -54,7 +54,7 @@ sub properties { sub options { return { path => { fixed => 1 }, - dirs => { optional => 1 }, + 'content-dirs' => { optional => 1 }, nodes => { optional => 1 }, shared => { optional => 1 }, disable => { optional => 1 }, diff --git a/PVE/Storage/NFSPlugin.pm b/PVE/Storage/NFSPlugin.pm index b7e8318..0bdde84 100644 --- a/PVE/Storage/NFSPlugin.pm +++ b/PVE/Storage/NFSPlugin.pm @@ -79,7 +79,7 @@ sub properties { sub options { return { path => { fixed => 1 }, - dirs => { optional => 1 }, + 'content-dirs' => { optional => 1 }, server => { fixed => 1 }, export => { fixed => 1 }, nodes => { optional => 1 }, diff --git a/PVE/Storage/Plugin.pm b/PVE/Storage/Plugin.pm index 5cb3d90..a3aac61 100644 --- a/PVE/Storage/Plugin.pm +++ b/PVE/Storage/Plugin.pm @@ -181,8 +181,8 @@ my $defaultData = { default => 'metadata', optional => 1, }, - dirs => { - description => "Overrides for default directories", + 'content-dirs' => { + description => "Overrides for default content type directories.", type => "string", format => "pve-dir-override-list", optional => 1, }, @@ -213,7 +213,7 @@ sub valid_content_types { sub dirs_hash_to_string { my $hash = shift; - return join(',', map { "$_:$hash->{$_}" } sort keys %$hash); + return join(',', map { "$_=$hash->{$_}" } sort keys %$hash); } sub default_format { @@ -350,8 +350,8 @@ 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) && verify_path($2, $noerr)) { + if($value =~ m/^([a-z]+)=\/.+$/ && + verify_content($1, $noerr)) { return $value; } @@ -429,12 +429,12 @@ sub decode_value { #} return $res; - } elsif ($key eq 'dirs') { + } elsif ($key eq 'content-dirs') { my $valid_content = $def->{content}->[0]; my $res = {}; foreach my $dir (PVE::Tools::split_list($value)) { - my ($content, $path) = split(/:/, $dir, 2); + my ($content, $path) = split(/=/, $dir, 2); if (!$valid_content->{$content}) { warn "storage does not support content type '$content'\n"; @@ -458,7 +458,7 @@ sub encode_value { } elsif ($key eq 'content') { my $res = content_hash_to_string($value) || 'none'; return $res; - } elsif ($key eq 'dirs') { + } elsif ($key eq 'content-dirs') { my $res = dirs_hash_to_string($value); return $res; } @@ -654,7 +654,7 @@ 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->{dirs}->{$vtype} // "/".$vtype_subdirs->{$vtype}; + my $subdir = $scfg->{"content-dirs"}->{$vtype} // "/".$vtype_subdirs->{$vtype}; return $path.$subdir; } diff --git a/test/get_subdir_test.pm b/test/get_subdir_test.pm index 26c08d5..ff42985 100644 --- a/test/get_subdir_test.pm +++ b/test/get_subdir_test.pm @@ -30,8 +30,8 @@ foreach my $type (keys %$vtype_subdirs) { # creates additional tests for overrides foreach my $type (keys %$vtype_subdirs) { my $override = "/${type}_override"; - my $scfg_with_override = { path => '/some/path', dirs => { $type => $override } }; - push @$tests, [ $scfg_with_override, $type, "$scfg_with_override->{path}$scfg_with_override->{dirs}->{$type}" ]; + 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}" ]; } plan tests => scalar @$tests;