* [pve-devel] [PATCH-SERIES storage/guest-common/manager/docs 0/6] backup/storage: drop 'maxfiles' setting
@ 2025-07-18 12:51 Fiona Ebner
2025-07-18 12:51 ` [pve-devel] [PATCH storage 1/6] config: drop 'maxfiles' parameter Fiona Ebner
` (5 more replies)
0 siblings, 6 replies; 12+ messages in thread
From: Fiona Ebner @ 2025-07-18 12:51 UTC (permalink / raw)
To: pve-devel
The 'maxfiles' parameter has been deprecated since the addition of
'prune-backups' in the Proxmox VE 7 beta and is removed with Proxmox
VE 9 now.
For storages, it was auto-converted when reading the configuration.
For backups, editing would also auto-convert to the current
'prune-backups' setting and new jobs in jobs.cfg would always get
written with 'prune-backups'. The upgrade checker script already
contained checks warning about the deprecation, which are now changed
from warnings to proper errors.
The pve8to9 change should also be applied for stable-8.
storage:
Fiona Ebner (1):
config: drop 'maxfiles' parameter
src/PVE/Storage.pm | 23 -----------------------
src/PVE/Storage/BTRFSPlugin.pm | 1 -
src/PVE/Storage/CIFSPlugin.pm | 1 -
src/PVE/Storage/CephFSPlugin.pm | 1 -
src/PVE/Storage/DirPlugin.pm | 1 -
src/PVE/Storage/NFSPlugin.pm | 1 -
src/PVE/Storage/PBSPlugin.pm | 1 -
src/PVE/Storage/Plugin.pm | 7 -------
src/test/list_volumes_test.pm | 1 -
src/test/path_to_volume_id_test.pm | 1 -
10 files changed, 38 deletions(-)
guest-common:
Fiona Ebner (1):
schema: backup: drop 'maxfiles' parameter
src/PVE/VZDump/Common.pm | 8 --------
1 file changed, 8 deletions(-)
manager:
Fiona Ebner (3):
pve8to9: backup retention: increase severity of having 'maxfiles'
setting configured
backup: drop 'maxfiles' parameter
ui: drop handling of removed 'maxfiles' setting
PVE/API2/VZDump.pm | 14 +--
PVE/CLI/pve8to9.pm | 14 +--
PVE/VZDump.pm | 23 +----
test/vzdump_new_test.pl | 120 ++-----------------------
www/manager6/controller/StorageEdit.js | 12 ---
www/manager6/dc/Backup.js | 7 --
www/manager6/dc/BackupJobDetail.js | 4 +-
www/manager6/panel/BackupJobPrune.js | 5 +-
www/manager6/storage/Base.js | 5 --
9 files changed, 25 insertions(+), 179 deletions(-)
docs:
Fiona Ebner (1):
backup/storage: remove references to 'maxfiles' parameter
pvesm.adoc | 5 -----
vzdump.adoc | 4 ----
2 files changed, 9 deletions(-)
Summary over all repositories:
22 files changed, 25 insertions(+), 234 deletions(-)
--
Generated by git-murpp 0.5.0
_______________________________________________
pve-devel mailing list
pve-devel@lists.proxmox.com
https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel
^ permalink raw reply [flat|nested] 12+ messages in thread* [pve-devel] [PATCH storage 1/6] config: drop 'maxfiles' parameter 2025-07-18 12:51 [pve-devel] [PATCH-SERIES storage/guest-common/manager/docs 0/6] backup/storage: drop 'maxfiles' setting Fiona Ebner @ 2025-07-18 12:51 ` Fiona Ebner 2025-07-30 17:36 ` [pve-devel] applied: " Thomas Lamprecht 2025-07-18 12:51 ` [pve-devel] [PATCH guest-common 2/6] schema: backup: " Fiona Ebner ` (4 subsequent siblings) 5 siblings, 1 reply; 12+ messages in thread From: Fiona Ebner @ 2025-07-18 12:51 UTC (permalink / raw) To: pve-devel The 'maxfiles' parameter has been deprecated since the addition of 'prune-backups' in the Proxmox VE 7 beta. The setting was auto-converted when reading the storage configuration. Signed-off-by: Fiona Ebner <f.ebner@proxmox.com> --- src/PVE/Storage.pm | 23 ----------------------- src/PVE/Storage/BTRFSPlugin.pm | 1 - src/PVE/Storage/CIFSPlugin.pm | 1 - src/PVE/Storage/CephFSPlugin.pm | 1 - src/PVE/Storage/DirPlugin.pm | 1 - src/PVE/Storage/NFSPlugin.pm | 1 - src/PVE/Storage/PBSPlugin.pm | 1 - src/PVE/Storage/Plugin.pm | 7 ------- src/test/list_volumes_test.pm | 1 - src/test/path_to_volume_id_test.pm | 1 - 10 files changed, 38 deletions(-) diff --git a/src/PVE/Storage.pm b/src/PVE/Storage.pm index 6ca9f88..947e604 100755 --- a/src/PVE/Storage.pm +++ b/src/PVE/Storage.pm @@ -249,27 +249,6 @@ sub lock_storage_config { } } -# FIXME remove maxfiles for PVE 8.0 or PVE 9.0 -my $convert_maxfiles_to_prune_backups = sub { - my ($scfg) = @_; - - return if !$scfg; - - my $maxfiles = delete $scfg->{maxfiles}; - - if (!defined($scfg->{'prune-backups'}) && defined($maxfiles)) { - my $prune_backups; - if ($maxfiles) { - $prune_backups = { 'keep-last' => $maxfiles }; - } else { # maxfiles 0 means no limit - $prune_backups = { 'keep-all' => 1 }; - } - $scfg->{'prune-backups'} = PVE::JSONSchema::print_property_string( - $prune_backups, 'prune-backups', - ); - } -}; - sub storage_config { my ($cfg, $storeid, $noerr) = @_; @@ -279,8 +258,6 @@ sub storage_config { die "storage '$storeid' does not exist\n" if (!$noerr && !$scfg); - $convert_maxfiles_to_prune_backups->($scfg); - return $scfg; } diff --git a/src/PVE/Storage/BTRFSPlugin.pm b/src/PVE/Storage/BTRFSPlugin.pm index 26eef2b..7d6ed62 100644 --- a/src/PVE/Storage/BTRFSPlugin.pm +++ b/src/PVE/Storage/BTRFSPlugin.pm @@ -68,7 +68,6 @@ sub options { nodes => { optional => 1 }, shared => { optional => 1 }, disable => { optional => 1 }, - maxfiles => { optional => 1 }, 'prune-backups' => { optional => 1 }, 'max-protected-backups' => { optional => 1 }, content => { optional => 1 }, diff --git a/src/PVE/Storage/CIFSPlugin.pm b/src/PVE/Storage/CIFSPlugin.pm index 75d89c1..35a1a3b 100644 --- a/src/PVE/Storage/CIFSPlugin.pm +++ b/src/PVE/Storage/CIFSPlugin.pm @@ -153,7 +153,6 @@ sub options { subdir => { optional => 1 }, nodes => { optional => 1 }, disable => { optional => 1 }, - maxfiles => { optional => 1 }, 'prune-backups' => { optional => 1 }, 'max-protected-backups' => { optional => 1 }, content => { optional => 1 }, diff --git a/src/PVE/Storage/CephFSPlugin.pm b/src/PVE/Storage/CephFSPlugin.pm index 67c79aa..fbc9711 100644 --- a/src/PVE/Storage/CephFSPlugin.pm +++ b/src/PVE/Storage/CephFSPlugin.pm @@ -153,7 +153,6 @@ sub options { 'create-subdirs' => { optional => 1 }, fuse => { optional => 1 }, bwlimit => { optional => 1 }, - maxfiles => { optional => 1 }, keyring => { optional => 1 }, 'prune-backups' => { optional => 1 }, 'max-protected-backups' => { optional => 1 }, diff --git a/src/PVE/Storage/DirPlugin.pm b/src/PVE/Storage/DirPlugin.pm index 9d15f33..80c4a03 100644 --- a/src/PVE/Storage/DirPlugin.pm +++ b/src/PVE/Storage/DirPlugin.pm @@ -84,7 +84,6 @@ sub options { nodes => { optional => 1 }, shared => { optional => 1 }, disable => { optional => 1 }, - maxfiles => { optional => 1 }, 'prune-backups' => { optional => 1 }, 'max-protected-backups' => { optional => 1 }, content => { optional => 1 }, diff --git a/src/PVE/Storage/NFSPlugin.pm b/src/PVE/Storage/NFSPlugin.pm index a8339ef..b416703 100644 --- a/src/PVE/Storage/NFSPlugin.pm +++ b/src/PVE/Storage/NFSPlugin.pm @@ -93,7 +93,6 @@ sub options { export => { fixed => 1 }, nodes => { optional => 1 }, disable => { optional => 1 }, - maxfiles => { optional => 1 }, 'prune-backups' => { optional => 1 }, 'max-protected-backups' => { optional => 1 }, options => { optional => 1 }, diff --git a/src/PVE/Storage/PBSPlugin.pm b/src/PVE/Storage/PBSPlugin.pm index 00170f5..22e7a8b 100644 --- a/src/PVE/Storage/PBSPlugin.pm +++ b/src/PVE/Storage/PBSPlugin.pm @@ -72,7 +72,6 @@ sub options { password => { optional => 1 }, 'encryption-key' => { optional => 1 }, 'master-pubkey' => { optional => 1 }, - maxfiles => { optional => 1 }, 'prune-backups' => { optional => 1 }, 'max-protected-backups' => { optional => 1 }, fingerprint => { optional => 1 }, diff --git a/src/PVE/Storage/Plugin.pm b/src/PVE/Storage/Plugin.pm index ef04cb1..1b272cf 100644 --- a/src/PVE/Storage/Plugin.pm +++ b/src/PVE/Storage/Plugin.pm @@ -159,13 +159,6 @@ my $defaultData = { type => 'boolean', optional => 1, }, - maxfiles => { - description => "Deprecated: use 'prune-backups' instead. " - . "Maximal number of backup files per VM. Use '0' for unlimited.", - type => 'integer', - minimum => 0, - optional => 1, - }, 'prune-backups' => get_standard_option('prune-backups'), 'max-protected-backups' => { description => diff --git a/src/test/list_volumes_test.pm b/src/test/list_volumes_test.pm index e528fc3..0876902 100644 --- a/src/test/list_volumes_test.pm +++ b/src/test/list_volumes_test.pm @@ -63,7 +63,6 @@ my $mocked_vmlist = { my $storage_dir = File::Temp->newdir(); my $scfg = { 'type' => 'dir', - 'maxfiles' => 0, 'path' => $storage_dir, 'shared' => 0, 'content' => { diff --git a/src/test/path_to_volume_id_test.pm b/src/test/path_to_volume_id_test.pm index 9a5ecbb..e69b085 100644 --- a/src/test/path_to_volume_id_test.pm +++ b/src/test/path_to_volume_id_test.pm @@ -22,7 +22,6 @@ my $scfg = { 'shared' => 0, 'path' => "$storage_dir", 'type' => 'dir', - 'maxfiles' => 0, 'content' => { 'snippets' => 1, 'rootdir' => 1, -- 2.47.2 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel ^ permalink raw reply [flat|nested] 12+ messages in thread
* [pve-devel] applied: [PATCH storage 1/6] config: drop 'maxfiles' parameter 2025-07-18 12:51 ` [pve-devel] [PATCH storage 1/6] config: drop 'maxfiles' parameter Fiona Ebner @ 2025-07-30 17:36 ` Thomas Lamprecht 0 siblings, 0 replies; 12+ messages in thread From: Thomas Lamprecht @ 2025-07-30 17:36 UTC (permalink / raw) To: pve-devel, Fiona Ebner On Fri, 18 Jul 2025 14:51:12 +0200, Fiona Ebner wrote: > The 'maxfiles' parameter has been deprecated since the addition of > 'prune-backups' in the Proxmox VE 7 beta. > > The setting was auto-converted when reading the storage > configuration. > > > [...] Applied, thanks! [1/6] config: drop 'maxfiles' parameter commit: e502404fa2174b00b801fa408d1242a9541af02c _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel ^ permalink raw reply [flat|nested] 12+ messages in thread
* [pve-devel] [PATCH guest-common 2/6] schema: backup: drop 'maxfiles' parameter 2025-07-18 12:51 [pve-devel] [PATCH-SERIES storage/guest-common/manager/docs 0/6] backup/storage: drop 'maxfiles' setting Fiona Ebner 2025-07-18 12:51 ` [pve-devel] [PATCH storage 1/6] config: drop 'maxfiles' parameter Fiona Ebner @ 2025-07-18 12:51 ` Fiona Ebner 2025-07-18 12:51 ` [pve-devel] [PATCH manager 3/6] pve8to9: backup retention: increase severity of having 'maxfiles' setting configured Fiona Ebner ` (3 subsequent siblings) 5 siblings, 0 replies; 12+ messages in thread From: Fiona Ebner @ 2025-07-18 12:51 UTC (permalink / raw) To: pve-devel The 'maxfiles' parameter has been deprecated since the addition of 'prune-backups' in the Proxmox VE 7 beta. Signed-off-by: Fiona Ebner <f.ebner@proxmox.com> --- src/PVE/VZDump/Common.pm | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/PVE/VZDump/Common.pm b/src/PVE/VZDump/Common.pm index 902829f..67a4cf4 100644 --- a/src/PVE/VZDump/Common.pm +++ b/src/PVE/VZDump/Common.pm @@ -339,14 +339,6 @@ my $confdesc = { minimum => 0, default => 10, # 10 minutes }, - # FIXME remove with PVE 8.0 or PVE 9.0 - maxfiles => { - type => 'integer', - description => "Deprecated: use 'prune-backups' instead. " - . "Maximal number of backup files per guest system.", - optional => 1, - minimum => 1, - }, 'prune-backups' => get_standard_option( 'prune-backups', { -- 2.47.2 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel ^ permalink raw reply [flat|nested] 12+ messages in thread
* [pve-devel] [PATCH manager 3/6] pve8to9: backup retention: increase severity of having 'maxfiles' setting configured 2025-07-18 12:51 [pve-devel] [PATCH-SERIES storage/guest-common/manager/docs 0/6] backup/storage: drop 'maxfiles' setting Fiona Ebner 2025-07-18 12:51 ` [pve-devel] [PATCH storage 1/6] config: drop 'maxfiles' parameter Fiona Ebner 2025-07-18 12:51 ` [pve-devel] [PATCH guest-common 2/6] schema: backup: " Fiona Ebner @ 2025-07-18 12:51 ` Fiona Ebner 2025-07-29 15:54 ` [pve-devel] applied: " Thomas Lamprecht 2025-07-18 12:51 ` [pve-devel] [PATCH manager 4/6] backup: drop 'maxfiles' parameter Fiona Ebner ` (2 subsequent siblings) 5 siblings, 1 reply; 12+ messages in thread From: Fiona Ebner @ 2025-07-18 12:51 UTC (permalink / raw) To: pve-devel The 'maxfiles' setting is dropped with Proxmox VE 9, so make having the setting configured a proper error rather than just a warning. Signed-off-by: Fiona Ebner <f.ebner@proxmox.com> --- NOTE: for both stable-8 and master PVE/CLI/pve8to9.pm | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/PVE/CLI/pve8to9.pm b/PVE/CLI/pve8to9.pm index cd8ea038..d0f8cff0 100644 --- a/PVE/CLI/pve8to9.pm +++ b/PVE/CLI/pve8to9.pm @@ -649,8 +649,8 @@ sub check_backup_retention_settings { my $pass = 1; - my $maxfiles_msg = "parameter 'maxfiles' is deprecated with PVE 7.x and will be removed in a " - . "future version, use 'prune-backups' instead."; + my $maxfiles_msg = "parameter 'maxfiles' was deprecated with PVE 7.x and is getting dropped" + . " with PVE 9."; eval { my $confdesc = PVE::VZDump::Common::get_confdesc(); @@ -665,12 +665,12 @@ sub check_backup_retention_settings { if (defined($param->{maxfiles})) { $pass = 0; - log_warn("$fn - $maxfiles_msg"); + log_fail("$fn - $maxfiles_msg"); } }; if (my $err = $@) { $pass = 0; - log_warn("unable to parse node's VZDump configuration - $err"); + log_fail("unable to parse node's VZDump configuration - $err"); } my $storage_cfg = PVE::Storage::config(); @@ -680,7 +680,7 @@ sub check_backup_retention_settings { if (defined($scfg->{maxfiles})) { $pass = 0; - log_warn("storage '$storeid' - $maxfiles_msg"); + log_fail("storage '$storeid' - $maxfiles_msg"); } } @@ -690,12 +690,12 @@ sub check_backup_retention_settings { # only warn once, there might be many jobs... if (scalar(grep { defined($_->{maxfiles}) } $vzdump_cron->{jobs}->@*)) { $pass = 0; - log_warn("/etc/pve/vzdump.cron - $maxfiles_msg"); + log_fail("/etc/pve/vzdump.cron - $maxfiles_msg"); } }; if (my $err = $@) { $pass = 0; - log_warn("unable to parse node's VZDump configuration - $err"); + log_fail("unable to parse node's VZDump configuration - $err"); } log_pass("no backup retention problems found.") if $pass; -- 2.47.2 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel ^ permalink raw reply [flat|nested] 12+ messages in thread
* [pve-devel] applied: [PATCH manager 3/6] pve8to9: backup retention: increase severity of having 'maxfiles' setting configured 2025-07-18 12:51 ` [pve-devel] [PATCH manager 3/6] pve8to9: backup retention: increase severity of having 'maxfiles' setting configured Fiona Ebner @ 2025-07-29 15:54 ` Thomas Lamprecht 0 siblings, 0 replies; 12+ messages in thread From: Thomas Lamprecht @ 2025-07-29 15:54 UTC (permalink / raw) To: pve-devel, Fiona Ebner On Fri, 18 Jul 2025 14:51:14 +0200, Fiona Ebner wrote: > The 'maxfiles' setting is dropped with Proxmox VE 9, so make having > the setting configured a proper error rather than just a warning. > > Applied to stable-8 branch, thanks! This does not really hurt to have even if we do not follow through with the removal in PVE 9 in any case, especially as warning is already a pretty "scary" severity anyway, so I'd think that most user should have update their definitions already. FWIW, it could be nice to have a migration script though, mapping any left-over maxfiles entry to keep-last, but OTOH, it's basically a sed, so if more users surface that are unsure about what to do, we can provide them with a `sed` example, at least as stop-gap. [3/6] pve8to9: backup retention: increase severity of having 'maxfiles' setting configured commit: e44a90c25b0ada3d4ab49a7d5d71e8f6357a4240 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel ^ permalink raw reply [flat|nested] 12+ messages in thread
* [pve-devel] [PATCH manager 4/6] backup: drop 'maxfiles' parameter 2025-07-18 12:51 [pve-devel] [PATCH-SERIES storage/guest-common/manager/docs 0/6] backup/storage: drop 'maxfiles' setting Fiona Ebner ` (2 preceding siblings ...) 2025-07-18 12:51 ` [pve-devel] [PATCH manager 3/6] pve8to9: backup retention: increase severity of having 'maxfiles' setting configured Fiona Ebner @ 2025-07-18 12:51 ` Fiona Ebner 2025-07-30 23:21 ` [pve-devel] applied: " Thomas Lamprecht 2025-07-18 12:51 ` [pve-devel] [PATCH manager 5/6] ui: drop handling of removed 'maxfiles' setting Fiona Ebner 2025-07-18 12:51 ` [pve-devel] [PATCH docs 6/6] backup/storage: remove references to 'maxfiles' parameter Fiona Ebner 5 siblings, 1 reply; 12+ messages in thread From: Fiona Ebner @ 2025-07-18 12:51 UTC (permalink / raw) To: pve-devel The 'maxfiles' parameter has been deprecated since the addition of 'prune-backups' in the Proxmox VE 7 beta. Drop the tests that only had maxfiles or both, but adapt the mixed tests for CLI/backup/storage precedence. Signed-off-by: Fiona Ebner <f.ebner@proxmox.com> --- PVE/API2/VZDump.pm | 14 ++--- PVE/VZDump.pm | 23 ++------ test/vzdump_new_test.pl | 120 ++-------------------------------------- 3 files changed, 16 insertions(+), 141 deletions(-) diff --git a/PVE/API2/VZDump.pm b/PVE/API2/VZDump.pm index de48e108..a8f21eba 100644 --- a/PVE/API2/VZDump.pm +++ b/PVE/API2/VZDump.pm @@ -27,7 +27,7 @@ my sub assert_param_permission_vzdump { PVE::API2::Backup::assert_param_permission_common($rpcenv, $user, $param); - if (defined($param->{maxfiles}) || defined($param->{'prune-backups'})) { + if (defined($param->{'prune-backups'})) { if (my $storeid = PVE::VZDump::get_storage_param($param)) { $rpcenv->check($user, "/storage/$storeid", ['Datastore.Allocate']); } @@ -40,12 +40,12 @@ __PACKAGE__->register_method({ method => 'POST', description => "Create backup.", permissions => { - description => "The user needs 'VM.Backup' permissions on any VM, and " - . "'Datastore.AllocateSpace' on the backup storage (and fleecing storage when fleecing " - . "is used). The 'tmpdir', 'dumpdir', 'script' and 'job-id' parameters are restricted " - . "to the 'root\@pam' user. The 'maxfiles' and 'prune-backups' settings require " - . "'Datastore.Allocate' on the backup storage. The 'bwlimit', 'performance' and " - . "'ionice' parameters require 'Sys.Modify' on '/'.", + description => "The user needs 'VM.Backup' permissions on any VM, and" + . " 'Datastore.AllocateSpace' on the backup storage (and fleecing storage when fleecing" + . " is used). The 'tmpdir', 'dumpdir', 'script' and 'job-id' parameters are restricted" + . " to the 'root\@pam' user. The 'prune-backups' setting requires 'Datastore.Allocate'" + . " on the backup storage. The 'bwlimit', 'performance' and 'ionice' parameters require" + . " 'Sys.Modify' on '/'.", user => 'all', }, protected => 1, diff --git a/PVE/VZDump.pm b/PVE/VZDump.pm index cf71a9fa..defe9e0a 100644 --- a/PVE/VZDump.pm +++ b/PVE/VZDump.pm @@ -177,28 +177,16 @@ my sub merge_performance { return $res; } -my $parse_prune_backups_maxfiles = sub { +my $parse_prune_backups = sub { my ($param, $kind) = @_; - my $maxfiles = delete $param->{maxfiles}; my $prune_backups = $param->{'prune-backups'}; - debugmsg( - 'warn', - "both 'maxfiles' and 'prune-backups' defined as ${kind} - ignoring 'maxfiles'", - ) if defined($maxfiles) && defined($prune_backups); - if (defined($prune_backups)) { return $prune_backups if ref($prune_backups) eq 'HASH'; # already parsed $param->{'prune-backups'} = PVE::JSONSchema::parse_property_string( 'prune-backups', $prune_backups, ); - } elsif (defined($maxfiles)) { - if ($maxfiles) { - $param->{'prune-backups'} = { 'keep-last' => $maxfiles }; - } else { - $param->{'prune-backups'} = { 'keep-all' => 1 }; - } } return $param->{'prune-backups'}; @@ -335,7 +323,7 @@ sub read_vzdump_defaults { defined($default) ? ($_ => $default) : () } keys $fleecing_fmt->%* }; - $parse_prune_backups_maxfiles->($defaults, "defaults in VZDump schema"); + $parse_prune_backups->($defaults, "defaults in VZDump schema"); my $raw; eval { $raw = PVE::Tools::file_get_contents($fn); }; @@ -360,7 +348,7 @@ sub read_vzdump_defaults { my @mailto = split_list($res->{mailto}); $res->{mailto} = [@mailto]; } - $parse_prune_backups_maxfiles->($res, "options in '$fn'"); + $parse_prune_backups->($res, "options in '$fn'"); parse_fleecing($res); parse_performance($res); @@ -1548,10 +1536,7 @@ sub verify_vzdump_parameters { raise_param_exc({ pool => "option conflicts with option 'vmid'" }) if $param->{pool} && $param->{vmid}; - raise_param_exc({ 'prune-backups' => "option conflicts with option 'maxfiles'" }) - if defined($param->{'prune-backups'}) && defined($param->{maxfiles}); - - $parse_prune_backups_maxfiles->($param, 'CLI parameters'); + $parse_prune_backups->($param, 'CLI parameters'); parse_fleecing($param); parse_performance($param); diff --git a/test/vzdump_new_test.pl b/test/vzdump_new_test.pl index 36225ebb..db829e70 100755 --- a/test/vzdump_new_test.pl +++ b/test/vzdump_new_test.pl @@ -105,78 +105,6 @@ my @tests = ( }, }, # TODO make parse error critical? - { - description => 'maxfiles vzdump 1', - vzdump_param => { - maxfiles => 0, - }, - expected => { - 'prune-backups' => { - 'keep-all' => 1, - }, - remove => 0, - }, - }, - { - description => 'maxfiles vzdump 2', - vzdump_param => { - maxfiles => 7, - }, - expected => { - 'prune-backups' => { - 'keep-last' => 7, - }, - remove => 1, - }, - }, - { - description => 'maxfiles storage 1', - storage_param => { - maxfiles => 0, - }, - expected => { - 'prune-backups' => { - 'keep-all' => 1, - }, - remove => 0, - }, - }, - { - description => 'maxfiles storage 2', - storage_param => { - maxfiles => 7, - }, - expected => { - 'prune-backups' => { - 'keep-last' => 7, - }, - remove => 1, - }, - }, - { - description => 'maxfiles CLI 1', - cli_param => { - maxfiles => 0, - }, - expected => { - 'prune-backups' => { - 'keep-all' => 1, - }, - remove => 0, - }, - }, - { - description => 'maxfiles CLI 2', - cli_param => { - maxfiles => 7, - }, - expected => { - 'prune-backups' => { - 'keep-last' => 7, - }, - remove => 1, - }, - }, { description => 'prune-backups vzdump 1', vzdump_param => { @@ -219,19 +147,6 @@ my @tests = ( remove => 0, }, }, - { - description => 'both vzdump 1', - vzdump_param => { - 'prune-backups' => 'keep-all=1', - maxfiles => 7, - }, - expected => { - 'prune-backups' => { - 'keep-all' => 1, - }, - remove => 0, - }, - }, { description => 'prune-backups storage 1', storage_param => { @@ -275,21 +190,6 @@ my @tests = ( remove => 0, }, }, - { - description => 'both storage 1', - storage_param => { - 'prune-backups' => 'keep-hourly=1,keep-monthly=2,keep-yearly=3', - maxfiles => 0, - }, - expected => { - 'prune-backups' => { - 'keep-hourly' => 1, - 'keep-monthly' => 2, - 'keep-yearly' => 3, - }, - remove => 1, - }, - }, { description => 'prune-backups CLI 1', cli_param => { @@ -329,19 +229,10 @@ my @tests = ( expected => "format error\n" . "foo: property is not defined in schema and the schema does not allow additional properties\n", }, - { - description => 'both CLI 1', - cli_param => { - 'prune-backups' => 'keep-hourly=1,keep-monthly=2,keep-yearly=3', - maxfiles => 4, - }, - expected => "400 Parameter verification failed.\n" - . "prune-backups: option conflicts with option 'maxfiles'\n", - }, { description => 'mixed 1', vzdump_param => { - maxfiles => 7, + 'prune-backups' => 'keep-last=7', }, storage_param => { 'prune-backups' => 'keep-hourly=24', @@ -357,7 +248,7 @@ my @tests = ( { description => 'mixed 2', vzdump_param => { - maxfiles => 7, + 'prune-backups' => 'keep-last=7', }, storage_param => { 'prune-backups' => 'keephourly=24', @@ -372,7 +263,7 @@ my @tests = ( { description => 'mixed 3', vzdump_param => { - maxfiles => 7, + 'prune-backups' => 'keep-last=7', }, cli_param => { 'prune-backups' => 'keep-all=1', @@ -387,7 +278,7 @@ my @tests = ( { description => 'mixed 4', vzdump_param => { - maxfiles => 7, + 'prune-backups' => 'keep-last=7', }, storage_param => { 'prune-backups' => 'keep-all=0,keep-last=10', @@ -405,7 +296,7 @@ my @tests = ( { description => 'mixed 5', vzdump_param => { - maxfiles => 7, + 'prune-backups' => 'keep-last=7', }, storage_param => { 'prune-backups' => 'keep-all=0,keep-last=10', @@ -650,7 +541,6 @@ foreach my $test (@tests) { my $vzdump = PVE::VZDump->new('fake cmdline', $test->{cli_param}, undef); my $opts = $vzdump->{opts} or die "did not get options\n"; - die "maxfiles is defined" if defined($opts->{maxfiles}); my $res = {}; foreach my $opt (@{$tested_options}) { -- 2.47.2 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel ^ permalink raw reply [flat|nested] 12+ messages in thread
* [pve-devel] applied: [PATCH manager 4/6] backup: drop 'maxfiles' parameter 2025-07-18 12:51 ` [pve-devel] [PATCH manager 4/6] backup: drop 'maxfiles' parameter Fiona Ebner @ 2025-07-30 23:21 ` Thomas Lamprecht 0 siblings, 0 replies; 12+ messages in thread From: Thomas Lamprecht @ 2025-07-30 23:21 UTC (permalink / raw) To: pve-devel, Fiona Ebner On Fri, 18 Jul 2025 14:51:15 +0200, Fiona Ebner wrote: > The 'maxfiles' parameter has been deprecated since the addition of > 'prune-backups' in the Proxmox VE 7 beta. > > Drop the tests that only had maxfiles or both, but adapt the mixed > tests for CLI/backup/storage precedence. > > > [...] Applied, thanks! [4/6] backup: drop 'maxfiles' parameter commit: 9b193c4aac2b4e38945297e84f2f266c43cc12f9 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel ^ permalink raw reply [flat|nested] 12+ messages in thread
* [pve-devel] [PATCH manager 5/6] ui: drop handling of removed 'maxfiles' setting 2025-07-18 12:51 [pve-devel] [PATCH-SERIES storage/guest-common/manager/docs 0/6] backup/storage: drop 'maxfiles' setting Fiona Ebner ` (3 preceding siblings ...) 2025-07-18 12:51 ` [pve-devel] [PATCH manager 4/6] backup: drop 'maxfiles' parameter Fiona Ebner @ 2025-07-18 12:51 ` Fiona Ebner 2025-07-30 23:21 ` [pve-devel] applied: " Thomas Lamprecht 2025-07-18 12:51 ` [pve-devel] [PATCH docs 6/6] backup/storage: remove references to 'maxfiles' parameter Fiona Ebner 5 siblings, 1 reply; 12+ messages in thread From: Fiona Ebner @ 2025-07-18 12:51 UTC (permalink / raw) To: pve-devel Signed-off-by: Fiona Ebner <f.ebner@proxmox.com> --- www/manager6/controller/StorageEdit.js | 12 ------------ www/manager6/dc/Backup.js | 7 ------- www/manager6/dc/BackupJobDetail.js | 4 +--- www/manager6/panel/BackupJobPrune.js | 5 +---- www/manager6/storage/Base.js | 5 ----- 5 files changed, 2 insertions(+), 31 deletions(-) diff --git a/www/manager6/controller/StorageEdit.js b/www/manager6/controller/StorageEdit.js index 384f9ab4..1acadbe3 100644 --- a/www/manager6/controller/StorageEdit.js +++ b/www/manager6/controller/StorageEdit.js @@ -9,18 +9,6 @@ Ext.define('PVE.controller.StorageEdit', { if (prealloc) { prealloc.setDisabled(!hasImages); } - - var hasBackups = Ext.Array.contains(value, 'backup'); - var maxfiles = this.lookupReference('maxfiles'); - if (!maxfiles) { - return; - } - - if (!hasBackups) { - // clear values which will never be submitted - maxfiles.reset(); - } - maxfiles.setDisabled(!hasBackups); }, }, }, diff --git a/www/manager6/dc/Backup.js b/www/manager6/dc/Backup.js index 0ad49568..dff588b2 100644 --- a/www/manager6/dc/Backup.js +++ b/www/manager6/dc/Backup.js @@ -167,13 +167,6 @@ Ext.define('PVE.dc.BackupEdit', { if (data['prune-backups']) { Object.assign(data, data['prune-backups']); delete data['prune-backups']; - } else if (data.maxfiles !== undefined) { - if (data.maxfiles > 0) { - data['keep-last'] = data.maxfiles; - } else { - data['keep-all'] = 1; - } - delete data.maxfiles; } if (data['notes-template']) { diff --git a/www/manager6/dc/BackupJobDetail.js b/www/manager6/dc/BackupJobDetail.js index 67ec5273..86a593b3 100644 --- a/www/manager6/dc/BackupJobDetail.js +++ b/www/manager6/dc/BackupJobDetail.js @@ -371,12 +371,10 @@ Ext.define('PVE.dc.BackupInfo', { } }); - if (values['prune-backups'] || values.maxfiles !== undefined) { + if (values['prune-backups']) { let keepValues; if (values['prune-backups']) { keepValues = values['prune-backups']; - } else if (values.maxfiles > 0) { - keepValues = { 'keep-last': values.maxfiles }; } else { keepValues = { 'keep-all': 1 }; } diff --git a/www/manager6/panel/BackupJobPrune.js b/www/manager6/panel/BackupJobPrune.js index 960142b5..cf34ea83 100644 --- a/www/manager6/panel/BackupJobPrune.js +++ b/www/manager6/panel/BackupJobPrune.js @@ -35,10 +35,7 @@ Ext.define('PVE.panel.BackupJobPrune', { options['prune-backups'] = retention; } - if (!this.isCreate) { - // always delete old 'maxfiles' on edit, we map it to keep-last on window load - options.delete.push('maxfiles'); - } else { + if (this.isCreate) { delete options.delete; } diff --git a/www/manager6/storage/Base.js b/www/manager6/storage/Base.js index d945cf79..a3177faa 100644 --- a/www/manager6/storage/Base.js +++ b/www/manager6/storage/Base.js @@ -186,11 +186,6 @@ Ext.define('PVE.storage.BaseEdit', { let retention = PVE.Parser.parsePropertyString(values['prune-backups']); delete values['prune-backups']; Object.assign(values, retention); - } else if (values.maxfiles !== undefined) { - if (values.maxfiles > 0) { - values['keep-last'] = values.maxfiles; - } - delete values.maxfiles; } me.query('inputpanel').forEach((panel) => { -- 2.47.2 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel ^ permalink raw reply [flat|nested] 12+ messages in thread
* [pve-devel] applied: [PATCH manager 5/6] ui: drop handling of removed 'maxfiles' setting 2025-07-18 12:51 ` [pve-devel] [PATCH manager 5/6] ui: drop handling of removed 'maxfiles' setting Fiona Ebner @ 2025-07-30 23:21 ` Thomas Lamprecht 0 siblings, 0 replies; 12+ messages in thread From: Thomas Lamprecht @ 2025-07-30 23:21 UTC (permalink / raw) To: pve-devel, Fiona Ebner On Fri, 18 Jul 2025 14:51:16 +0200, Fiona Ebner wrote: > Applied, thanks! [5/6] ui: drop handling of removed 'maxfiles' setting commit: 7f4c298e1587f71e52ca5bdc91bcf2ff41d3a3c2 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel ^ permalink raw reply [flat|nested] 12+ messages in thread
* [pve-devel] [PATCH docs 6/6] backup/storage: remove references to 'maxfiles' parameter 2025-07-18 12:51 [pve-devel] [PATCH-SERIES storage/guest-common/manager/docs 0/6] backup/storage: drop 'maxfiles' setting Fiona Ebner ` (4 preceding siblings ...) 2025-07-18 12:51 ` [pve-devel] [PATCH manager 5/6] ui: drop handling of removed 'maxfiles' setting Fiona Ebner @ 2025-07-18 12:51 ` Fiona Ebner 2025-07-30 23:47 ` [pve-devel] applied: " Thomas Lamprecht 5 siblings, 1 reply; 12+ messages in thread From: Fiona Ebner @ 2025-07-18 12:51 UTC (permalink / raw) To: pve-devel The deprecated 'maxfiles' setting is being removed with Proxmox VE 9 now. There are some generated docs where 'make update' is necessary to phase it out. Signed-off-by: Fiona Ebner <f.ebner@proxmox.com> --- pvesm.adoc | 5 ----- vzdump.adoc | 4 ---- 2 files changed, 9 deletions(-) diff --git a/pvesm.adoc b/pvesm.adoc index 7e43910..e075fe0 100644 --- a/pvesm.adoc +++ b/pvesm.adoc @@ -241,11 +241,6 @@ disable:: You can use this flag to disable the storage completely. -maxfiles:: - -Deprecated, please use `prune-backups` instead. Maximum number of backup files -per VM. Use `0` for unlimited. - prune-backups:: Retention options for backups. For details, see diff --git a/vzdump.adoc b/vzdump.adoc index a404881..8458210 100644 --- a/vzdump.adoc +++ b/vzdump.adoc @@ -361,10 +361,6 @@ While you can pass `prune-backups` directly to `vzdump`, it is often more sensible to configure the setting on the storage level, which can be done via the web interface. -NOTE: The old `maxfiles` option is deprecated and should be replaced either by -`keep-last` or, in case `maxfiles` was `0` for unlimited retention, by -`keep-all`. - Prune Simulator ~~~~~~~~~~~~~~~ -- 2.47.2 _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel ^ permalink raw reply [flat|nested] 12+ messages in thread
* [pve-devel] applied: [PATCH docs 6/6] backup/storage: remove references to 'maxfiles' parameter 2025-07-18 12:51 ` [pve-devel] [PATCH docs 6/6] backup/storage: remove references to 'maxfiles' parameter Fiona Ebner @ 2025-07-30 23:47 ` Thomas Lamprecht 0 siblings, 0 replies; 12+ messages in thread From: Thomas Lamprecht @ 2025-07-30 23:47 UTC (permalink / raw) To: pve-devel, Fiona Ebner On Fri, 18 Jul 2025 14:51:17 +0200, Fiona Ebner wrote: > The deprecated 'maxfiles' setting is being removed with Proxmox VE 9 > now. > > There are some generated docs where 'make update' is necessary to > phase it out. > > > [...] Applied, thanks! [6/6] backup/storage: remove references to 'maxfiles' parameter commit: f7540b8ad921a298efb90d058903050e3207a78e _______________________________________________ pve-devel mailing list pve-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pve-devel ^ permalink raw reply [flat|nested] 12+ messages in thread
end of thread, other threads:[~2025-07-30 23:46 UTC | newest] Thread overview: 12+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2025-07-18 12:51 [pve-devel] [PATCH-SERIES storage/guest-common/manager/docs 0/6] backup/storage: drop 'maxfiles' setting Fiona Ebner 2025-07-18 12:51 ` [pve-devel] [PATCH storage 1/6] config: drop 'maxfiles' parameter Fiona Ebner 2025-07-30 17:36 ` [pve-devel] applied: " Thomas Lamprecht 2025-07-18 12:51 ` [pve-devel] [PATCH guest-common 2/6] schema: backup: " Fiona Ebner 2025-07-18 12:51 ` [pve-devel] [PATCH manager 3/6] pve8to9: backup retention: increase severity of having 'maxfiles' setting configured Fiona Ebner 2025-07-29 15:54 ` [pve-devel] applied: " Thomas Lamprecht 2025-07-18 12:51 ` [pve-devel] [PATCH manager 4/6] backup: drop 'maxfiles' parameter Fiona Ebner 2025-07-30 23:21 ` [pve-devel] applied: " Thomas Lamprecht 2025-07-18 12:51 ` [pve-devel] [PATCH manager 5/6] ui: drop handling of removed 'maxfiles' setting Fiona Ebner 2025-07-30 23:21 ` [pve-devel] applied: " Thomas Lamprecht 2025-07-18 12:51 ` [pve-devel] [PATCH docs 6/6] backup/storage: remove references to 'maxfiles' parameter Fiona Ebner 2025-07-30 23:47 ` [pve-devel] applied: " Thomas Lamprecht
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.