all lists on lists.proxmox.com
 help / color / mirror / Atom feed
* [pve-devel] [PATCH pve-storage 1/2] storage: enable upload for snippets
       [not found] <20240717182228.27812-2-root@arnaud.sh>
@ 2024-07-17 18:23 ` LightDiscord via pve-devel
  2024-07-17 18:23 ` [pve-devel] [PATCH pve-manager 2/2] www: " LightDiscord via pve-devel
  1 sibling, 0 replies; 2+ messages in thread
From: LightDiscord via pve-devel @ 2024-07-17 18:23 UTC (permalink / raw)
  To: pve-devel; +Cc: LightDiscord

[-- 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

^ permalink raw reply	[flat|nested] 2+ messages in thread

* [pve-devel] [PATCH pve-manager 2/2] www: storage: enable upload for snippets
       [not found] <20240717182228.27812-2-root@arnaud.sh>
  2024-07-17 18:23 ` [pve-devel] [PATCH pve-storage 1/2] storage: enable upload for snippets LightDiscord via pve-devel
@ 2024-07-17 18:23 ` LightDiscord via pve-devel
  1 sibling, 0 replies; 2+ messages in thread
From: LightDiscord via pve-devel @ 2024-07-17 18:23 UTC (permalink / raw)
  To: pve-devel; +Cc: LightDiscord

[-- Attachment #1: Type: message/rfc822, Size: 4434 bytes --]

From: LightDiscord <root@arnaud.sh>
To: pve-devel@lists.proxmox.com
Cc: Arnaud Pascal <root@arnaud.sh>
Subject: [PATCH pve-manager 2/2] www: storage: enable upload for snippets
Date: Wed, 17 Jul 2024 18:23:59 +0000
Message-ID: <20240717182228.27812-7-root@arnaud.sh>

From: Arnaud Pascal <root@arnaud.sh>

Signed-off-by: Arnaud Pascal <root@arnaud.sh>
---
 www/manager6/storage/Browser.js        | 3 +++
 www/manager6/window/UploadToStorage.js | 1 +
 2 files changed, 4 insertions(+)

diff --git a/www/manager6/storage/Browser.js b/www/manager6/storage/Browser.js
index 2123141d..2b46d730 100644
--- a/www/manager6/storage/Browser.js
+++ b/www/manager6/storage/Browser.js
@@ -119,6 +119,9 @@ Ext.define('PVE.storage.Browser', {
 		    itemId: 'contentSnippets',
 		    content: 'snippets',
 		    pluginType: plugin,
+		    enableUploadButton: enableUpload,
+		    enableDownloadUrlButton: enableDownloadUrl,
+		    useUploadButton: true,
 		});
 	    }
 	    if (contents.includes('import')) {
diff --git a/www/manager6/window/UploadToStorage.js b/www/manager6/window/UploadToStorage.js
index 3c5bba88..c5229d9e 100644
--- a/www/manager6/window/UploadToStorage.js
+++ b/www/manager6/window/UploadToStorage.js
@@ -11,6 +11,7 @@ Ext.define('PVE.window.UploadToStorage', {
     acceptedExtensions: {
 	iso: ['.img', '.iso'],
 	vztmpl: ['.tar.gz', '.tar.xz', '.tar.zst'],
+	snippets: ['.yml', '.yaml'],
     },
 
     cbindData: function(initialConfig) {
-- 
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

^ permalink raw reply	[flat|nested] 2+ messages in thread

end of thread, other threads:[~2024-07-27 15:10 UTC | newest]

Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <20240717182228.27812-2-root@arnaud.sh>
2024-07-17 18:23 ` [pve-devel] [PATCH pve-storage 1/2] storage: enable upload for snippets LightDiscord via pve-devel
2024-07-17 18:23 ` [pve-devel] [PATCH pve-manager 2/2] www: " LightDiscord via pve-devel

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