From: LightDiscord via pve-devel <pve-devel@lists.proxmox.com>
To: pve-devel@lists.proxmox.com
Cc: LightDiscord <root@arnaud.sh>
Subject: [pve-devel] [PATCH pve-storage 1/2] storage: enable upload for snippets
Date: Wed, 17 Jul 2024 18:23:42 +0000 [thread overview]
Message-ID: <mailman.3.1722093010.302.pve-devel@lists.proxmox.com> (raw)
In-Reply-To: <20240717182228.27812-2-root@arnaud.sh>
[-- Attachment #1: Type: message/rfc822, Size: 6464 bytes --]
From: LightDiscord <root@arnaud.sh>
To: pve-devel@lists.proxmox.com
Cc: Arnaud Pascal <root@arnaud.sh>
Subject: [PATCH pve-storage 1/2] storage: enable upload for snippets
Date: Wed, 17 Jul 2024 18:23:42 +0000
Message-ID: <20240717182228.27812-5-root@arnaud.sh>
From: Arnaud Pascal <root@arnaud.sh>
Currently allowing only `.yml` and `.yaml` files.
Signed-off-by: Arnaud Pascal <root@arnaud.sh>
---
src/PVE/API2/Storage/Status.pm | 14 ++++++++++++--
src/PVE/Storage.pm | 11 +++++++++++
2 files changed, 23 insertions(+), 2 deletions(-)
diff --git a/src/PVE/API2/Storage/Status.pm b/src/PVE/API2/Storage/Status.pm
index dc6cc69..d3310e8 100644
--- a/src/PVE/API2/Storage/Status.pm
+++ b/src/PVE/API2/Storage/Status.pm
@@ -382,7 +382,7 @@ __PACKAGE__->register_method ({
content => {
description => "Content type.",
type => 'string', format => 'pve-storage-content',
- enum => ['iso', 'vztmpl'],
+ enum => ['iso', 'vztmpl', 'snippets'],
},
filename => {
description => "The name of the file to create. Caution: This will be normalized!",
@@ -448,6 +448,11 @@ __PACKAGE__->register_method ({
raise_param_exc({ filename => "wrong file extension" });
}
$path = PVE::Storage::get_vztmpl_dir($cfg, $param->{storage});
+ } elsif ($content eq 'snippets') {
+ if ($filename !~ m![^/]+$PVE::Storage::SNIPPETS_EXT_RE_0$!) {
+ raise_param_exc({ filename => "wrong file extension" });
+ }
+ $path = PVE::Storage::get_snippets_dir($cfg, $param->{storage});
} else {
raise_param_exc({ content => "upload content type '$content' not allowed" });
}
@@ -572,7 +577,7 @@ __PACKAGE__->register_method({
content => {
description => "Content type.", # TODO: could be optional & detected in most cases
type => 'string', format => 'pve-storage-content',
- enum => ['iso', 'vztmpl'],
+ enum => ['iso', 'vztmpl', 'snippets'],
},
filename => {
description => "The name of the file to create. Caution: This will be normalized!",
@@ -642,6 +647,11 @@ __PACKAGE__->register_method({
raise_param_exc({ filename => "wrong file extension" });
}
$path = PVE::Storage::get_vztmpl_dir($cfg, $storage);
+ } elsif ($content eq 'snippets') {
+ if ($filename !~ m![^/]+$PVE::Storage::SNIPPETS_EXT_RE_0$!) {
+ raise_param_exc({ filename => "wrong file extension" });
+ }
+ $path = PVE::Storage::get_snippets_dir($cfg, $storage);
} else {
raise_param_exc({ content => "upload content-type '$content' is not allowed" });
}
diff --git a/src/PVE/Storage.pm b/src/PVE/Storage.pm
index 57b2038..73cf991 100755
--- a/src/PVE/Storage.pm
+++ b/src/PVE/Storage.pm
@@ -112,6 +112,8 @@ our $ISO_EXT_RE_0 = qr/\.(?:iso|img)/i;
our $VZTMPL_EXT_RE_1 = qr/\.tar\.(gz|xz|zst)/i;
+our $SNIPPETS_EXT_RE_0 = qr/\.(?:yml|yaml)/i;
+
our $BACKUP_EXT_RE_2 = qr/\.(tgz|(?:tar|vma)(?:\.(${\PVE::Storage::Plugin::COMPRESSOR_RE}))?)/;
# FIXME remove with PVE 9.0, add versioned breaks for pve-manager
@@ -469,6 +471,15 @@ sub get_vztmpl_dir {
return $plugin->get_subdir($scfg, 'vztmpl');
}
+sub get_snippets_dir {
+ my ($cfg, $storeid) = @_;
+
+ my $scfg = storage_config($cfg, $storeid);
+ my $plugin = PVE::Storage::Plugin->lookup($scfg->{type});
+
+ return $plugin->get_subdir($scfg, 'snippets');
+}
+
sub get_backup_dir {
my ($cfg, $storeid) = @_;
--
2.39.2
[-- Attachment #2: Type: text/plain, Size: 160 bytes --]
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
next parent reply other threads:[~2024-07-27 15:10 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20240717182228.27812-2-root@arnaud.sh>
2024-07-17 18:23 ` LightDiscord via pve-devel [this message]
2024-07-17 18:23 ` [pve-devel] [PATCH pve-manager 2/2] www: " LightDiscord via pve-devel
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=mailman.3.1722093010.302.pve-devel@lists.proxmox.com \
--to=pve-devel@lists.proxmox.com \
--cc=root@arnaud.sh \
/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