From: Fabian Ebner <f.ebner@proxmox.com>
To: pve-devel@lists.proxmox.com
Subject: [pve-devel] [RFC manager 4/6] ui: storage creation: retention: dynamically adapt max-protected-backups
Date: Thu, 16 Dec 2021 13:12:28 +0100 [thread overview]
Message-ID: <20211216121233.162288-7-f.ebner@proxmox.com> (raw)
In-Reply-To: <20211216121233.162288-1-f.ebner@proxmox.com>
depending on the other retention settings and as long as it isn't
dirty (other than from the updating itself). Allow an unlimited number
when keep-all=1 and use the default fall-back to 5 when pruning or
fall-back for retention is configured.
Signed-off-by: Fabian Ebner <f.ebner@proxmox.com>
---
Might be too much automagic, maybe just setting -1 in afterrender and
the never-rendered scenario is also enough? That is, if we even want
the GUI default for creation to be unlimited. Just thought that it
would better fit the keep-all default.
www/manager6/panel/BackupJobPrune.js | 24 +++++++++++++++++++++++-
1 file changed, 23 insertions(+), 1 deletion(-)
diff --git a/www/manager6/panel/BackupJobPrune.js b/www/manager6/panel/BackupJobPrune.js
index 555bccf2..880f0234 100644
--- a/www/manager6/panel/BackupJobPrune.js
+++ b/www/manager6/panel/BackupJobPrune.js
@@ -13,7 +13,14 @@ Ext.define('PVE.panel.BackupJobPrune', {
if (this.needMask) { // isMasked() may not yet be true if not rendered once
return {};
} else if (this.isCreate && !this.rendered) {
- return this.keepAllDefaultForCreate ? { 'prune-backups': 'keep-all=1' } : {};
+ let options = {};
+ if (this.keepAllDefaultForCreate) {
+ options['prune-backups'] = 'keep-all=1';
+ if (this.hasMaxProtected) {
+ options['max-protected-backups'] = -1;
+ }
+ }
+ return options;
}
let options = { 'delete': [] };
@@ -54,6 +61,17 @@ Ext.define('PVE.panel.BackupJobPrune', {
field.setDisabled(keepAll);
});
me.down('component[name=no-keeps-hint]').setHidden(anyValue || keepAll);
+
+ let maxProtected = me.down('proxmoxintegerfield[name=max-protected-backups]');
+ if (me.isCreate && me.hasMaxProtected && !maxProtected.isDirty()) {
+ if (keepAll) {
+ maxProtected.setValue(-1);
+ maxProtected.resetOriginalValue();
+ } else {
+ maxProtected.setValue('');
+ maxProtected.resetOriginalValue();
+ }
+ }
},
listeners: {
@@ -71,6 +89,10 @@ Ext.define('PVE.panel.BackupJobPrune', {
let maxProtected = panel.down('proxmoxintegerfield[name=max-protected-backups]');
maxProtected.setDisabled(!panel.hasMaxProtected);
maxProtected.setHidden(!panel.hasMaxProtected);
+ if (panel.isCreate && panel.hasMaxProtected) {
+ maxProtected.setValue(-1);
+ maxProtected.resetOriginalValue();
+ }
panel.query('pmxPruneKeepField').forEach(field => {
field.on('change', panel.updateComponents, panel);
--
2.30.2
next prev parent reply other threads:[~2021-12-16 12:12 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-12-16 12:12 [pve-devel] [PATCH-SERIES storage/manager/guest-common/docs] improvements for protected backups Fabian Ebner
2021-12-16 12:12 ` [pve-devel] [PATCH storage 1/2] list volumes: also return backup type for backups Fabian Ebner
2022-03-16 16:42 ` [pve-devel] applied: " Thomas Lamprecht
2021-12-16 12:12 ` [pve-devel] [PATCH storage 2/2] plugins: allow limiting the number of protected backups per guest Fabian Ebner
2022-03-16 16:42 ` Thomas Lamprecht
2022-03-17 8:03 ` Fabian Ebner
2022-03-17 8:11 ` Thomas Lamprecht
2021-12-16 12:12 ` [pve-devel] [PATCH manager 1/6] vzdump: backup file list: drop unused parameter Fabian Ebner
2021-12-16 12:12 ` [pve-devel] [PATCH manager 2/6] vzdump: backup limit: only count unprotected backups Fabian Ebner
2021-12-16 12:12 ` [pve-devel] [RFC manager 3/6] ui: storage edit: retention: add max-protected-backups setting Fabian Ebner
2021-12-16 12:12 ` Fabian Ebner [this message]
2021-12-16 12:12 ` [pve-devel] [PATCH docs 1/2] storage: switch to prune-backups in examples Fabian Ebner
2021-12-16 12:12 ` [pve-devel] [PATCH docs 2/2] vzdump/storage: mention protected backups limit and give an example Fabian Ebner
2021-12-16 12:12 ` [pve-devel] [PATCH guest-common 1/1] vzdump: schema: add 'notes' and 'protected' properties Fabian Ebner
2022-03-16 11:04 ` Fabian Ebner
2022-03-16 18:25 ` Thomas Lamprecht
2022-03-17 7:57 ` Fabian Ebner
2022-03-17 8:07 ` Thomas Lamprecht
2022-03-17 8:18 ` Fabian Ebner
2022-03-17 8:20 ` Thomas Lamprecht
2021-12-16 12:12 ` [pve-devel] [PATCH manager 5/6] vzdump: support setting protected status and notes Fabian Ebner
2021-12-16 12:12 ` [pve-devel] [PATCH manager 6/6] ui: backup: allow setting protected and notes for manual backup Fabian Ebner
2021-12-20 10:31 ` [pve-devel] [PATCH-SERIES storage/manager/guest-common/docs] improvements for protected backups Dominik Csapak
2021-12-21 15:11 ` Thomas Lamprecht
2021-12-22 7:02 ` Dominik Csapak
2022-01-03 9:12 ` Fabian Ebner
2022-03-10 7:46 ` Fabian Ebner
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=20211216121233.162288-7-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 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.