From: Fabian Ebner <f.ebner@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: [pve-devel] [PATCH v3 manager 2/4] api: vzdump: add call to get currently configured vzdump defaults
Date: Thu, 11 Mar 2021 10:22:06 +0100 [thread overview]
Message-ID: <20210311092208.27221-2-f.ebner@proxmox.com> (raw)
In-Reply-To: <20210311092208.27221-1-f.ebner@proxmox.com>
on a given node (and storage).
Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
---
New in v3
PVE/API2/VZDump.pm | 89 ++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 89 insertions(+)
diff --git a/PVE/API2/VZDump.pm b/PVE/API2/VZDump.pm
index 44376106..109e178b 100644
--- a/PVE/API2/VZDump.pm
+++ b/PVE/API2/VZDump.pm
@@ -146,6 +146,95 @@ __PACKAGE__->register_method ({
return $rpcenv->fork_worker('vzdump', $taskid, $user, $worker);
}});
+__PACKAGE__->register_method ({
+ name => 'defaults',
+ path => 'defaults',
+ method => 'GET',
+ description => "Get the currently configured vzdump defaults.",
+ permissions => {
+ description => "The user needs 'Datastore.Audit' or " .
+ "'Datastore.AllocateSpace' permissions for the specified storage " .
+ "(or default storage if none specified). Some properties are only " .
+ "returned when the user has 'Sys.Audit' permissions for the node.",
+ user => 'all',
+ },
+ proxyto => 'node',
+ parameters => {
+ additionalProperties => 0,
+ properties => {
+ node => get_standard_option('pve-node'),
+ storage => get_standard_option('pve-storage-id', { optional => 1 }),
+ },
+ },
+ returns => {
+ type => 'object',
+ additionalProperties => 0,
+ properties => PVE::VZDump::Common::json_config_properties(),
+ },
+ code => sub {
+ my ($param) = @_;
+
+ my $node = extract_param($param, 'node');
+ my $storage = extract_param($param, 'storage');
+
+ my $rpcenv = PVE::RPCEnvironment::get();
+ my $authuser = $rpcenv->get_user();
+
+ my $res = PVE::VZDump::read_vzdump_defaults();
+
+ $res->{storage} = $storage if defined($storage);
+
+ if (!defined($res->{dumpdir}) && !defined($res->{storage})) {
+ $res->{storage} = 'local';
+ }
+
+ if (defined($res->{storage})) {
+ $rpcenv->check_any(
+ $authuser,
+ "/storage/$res->{storage}",
+ ['Datastore.Audit', 'Datastore.AllocateSpace'],
+ );
+
+ my $info = PVE::VZDump::storage_info($res->{storage});
+ foreach my $key (qw(dumpdir prune-backups)) {
+ $res->{$key} = $info->{$key} if defined($info->{$key});
+ }
+ }
+
+ if (defined($res->{'prune-backups'})) {
+ $res->{'prune-backups'} = PVE::JSONSchema::print_property_string(
+ $res->{'prune-backups'},
+ 'prune-backups',
+ );
+ }
+
+ $res->{mailto} = join(",", @{$res->{mailto}})
+ if defined($res->{mailto});
+
+ $res->{'exclude-path'} = join(",", @{$res->{'exclude-path'}})
+ if defined($res->{'exclude-path'});
+
+ # normal backup users don't need to know these
+ if (!$rpcenv->check($authuser, "/nodes/$node", ['Sys.Audit'], 1)) {
+ delete $res->{mailto};
+ delete $res->{tmpdir};
+ delete $res->{dumpdir};
+ delete $res->{script};
+ delete $res->{bwlimit};
+ delete $res->{ionice};
+ }
+
+ my $pool = $res->{pool};
+ if (defined($pool) &&
+ !$rpcenv->check($authuser, "/pool/$pool", ['Pool.Allocate'], 1)) {
+ delete $res->{pool};
+ }
+
+ delete $res->{size}; # deprecated, to be dropped with PVE 7.0
+
+ return $res;
+ }});
+
__PACKAGE__->register_method ({
name => 'extractconfig',
path => 'extractconfig',
--
2.20.1
next prev parent reply other threads:[~2021-03-11 9:22 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-11 9:22 [pve-devel] [PATCH v3 manager 1/4] vzdump: storage info: move out activate storage call Fabian Ebner
2021-03-11 9:22 ` Fabian Ebner [this message]
2021-04-01 13:40 ` [pve-devel] [PATCH v3 manager 2/4] api: vzdump: add call to get currently configured vzdump defaults Thomas Lamprecht
2021-04-02 12:27 ` Fabian Ebner
2021-04-02 12:58 ` Thomas Lamprecht
2021-03-11 9:22 ` [pve-devel] [PATCH v3 manager 3/4] ui: backup: fill in some of the " Fabian Ebner
2021-03-11 9:22 ` [pve-devel] [PATCH v3 manager 4/4] fix #2745: ui: backup: allow specifying remove parameter for manual backup Fabian Ebner
2021-04-01 13:25 ` [pve-devel] applied: [PATCH v3 manager 1/4] vzdump: storage info: move out activate storage call 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=20210311092208.27221-2-f.ebner@proxmox.com \
--to=f.ebner@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox