From: Leo Nunner <l.nunner@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: [pve-devel] [PATCH v2 storage] config: use relative paths for content overrides
Date: Tue, 14 Mar 2023 14:14:54 +0100 [thread overview]
Message-ID: <20230314131456.165418-2-l.nunner@proxmox.com> (raw)
In-Reply-To: <20230314131456.165418-1-l.nunner@proxmox.com>
Remove the requirement for paths to start with a /, as it might be
confusing to users.
Signed-off-by: Leo Nunner <l.nunner@proxmox.com>
---
RFC: I'm not really sure how much input validation we want to do here.
e.g., should we keep the user from appending or prepending slashes (e.g.
setting the override as /dir/)? Or should we just accept everything?
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 ca7a0d4..6295aa2 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]+)=\/.+$/ &&
+ if($value =~ m/^([a-z]+)=[^.]+$/ &&
verify_content($1, $noerr)) {
return $value;
}
@@ -659,9 +659,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.30.2
next prev parent reply other threads:[~2023-03-14 13:16 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-03-14 13:14 [pve-devel] [PATCH v2 storage manager docs] Expose content-dirs through GUI + use relative paths Leo Nunner
2023-03-14 13:14 ` Leo Nunner [this message]
2023-03-20 14:26 ` [pve-devel] applied: [PATCH v2 storage] config: use relative paths for content overrides Thomas Lamprecht
2023-03-14 13:14 ` [pve-devel] [PATCH v2 manager] gui: expose content-dirs property in storage edit/create Leo Nunner
2023-03-20 19:25 ` Thomas Lamprecht
2023-03-14 13:14 ` [pve-devel] [PATCH v2 docs] config: remove reference to preceeding / from content-dirs Leo Nunner
2023-03-20 19:10 ` [pve-devel] applied: " Thomas Lamprecht
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20230314131456.165418-2-l.nunner@proxmox.com \
--to=l.nunner@proxmox.com \
--cc=pve-devel@lists.proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal