type => 'boolean',
optional => 1,
},
+ subdir => {
+ description => "Subdir to mount.",
+ type => 'string', format => 'pve-storage-path',
+ optional => 1,
+ },
'format' => {
description => "Default image format.",
type => 'string', format => 'pve-storage-format',
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,
},
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 {
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;
}
#}
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";
} 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;
}
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;
}