From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (2048 bits)) (No client certificate requested) by lists.proxmox.com (Postfix) with ESMTPS id 23E1CD3BE for ; Wed, 30 Nov 2022 16:01:28 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 010F52006C for ; Wed, 30 Nov 2022 16:01:28 +0100 (CET) Received: from lana.proxmox.com (unknown [94.136.29.99]) by firstgate.proxmox.com (Proxmox) with ESMTP for ; Wed, 30 Nov 2022 16:01:26 +0100 (CET) Received: by lana.proxmox.com (Postfix, from userid 10043) id BE8192C2779; Wed, 30 Nov 2022 16:01:26 +0100 (CET) From: Stefan Hanreich To: pbs-devel@lists.proxmox.com Date: Wed, 30 Nov 2022 16:00:55 +0100 Message-Id: <20221130150102.242374-1-s.hanreich@proxmox.com> X-Mailer: git-send-email 2.30.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL -0.336 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment KAM_LAZY_DOMAIN_SECURITY 1 Sending domain does not have any anti-forgery methods NO_DNS_FOR_FROM 0.001 Envelope sender has no MX or A DNS records RDNS_NONE 0.793 Delivered to internal network by a host with no rDNS SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_NONE 0.001 SPF: sender does not publish an SPF Record Subject: [pbs-devel] [PATCH proxmox-backup v2 0/7] Add Prune Options to Sync Jobs X-BeenThere: pbs-devel@lists.proxmox.com X-Mailman-Version: 2.1.29 Precedence: list List-Id: Proxmox Backup Server development discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 30 Nov 2022 15:01:28 -0000 This relies on my small formatting fix in the email [PATCH proxmox-backup 1/1] Fix formatting in proxmox-backup-manager otherwise it will have a merge conflict. This patch adds the possibility of configuring prune options for sync jobs. This runs a prune job after a successful sync job that prunes the backup groups that got synced by the respective sync job (meaning this respects group-filter, max-depth, target namespace and so on). The prune options can also be specified when running a single pull command. I also added the possibility of configuring this via the Web UI in the same way as configuring a regular prune job. The new options are documented in the Sync Job documentation as well. This patch series introduces a new struct, PruneJob, that encapsulates the pruning functionality in its own struct that can be conveniently used. This greatly reduces the code duplication between the sites that used pruning functionality. Changes from v2: - Refactored pull function by extracting remove_vanished and prune into their own methods - Added PruneJob struct that encapsulates PruneJob functionality - Refactored existing call sites to utilize new PruneJob struct - Use KeepOptions::default where applicable - minor formatting and cargo clippy fixes Stefan Hanreich (7): Add KeepOptions parameters to pull & sync-job refactor prune.rs - add PruneJob struct for handling prune jobs Add pruning parameters to the pull command use new PruneJob in prune command use new PruneJob struct in Prune Jobs implementation add KeepOptions to Web UI of Sync Jobs Add documentation for prune options in Sync Jobs docs/managing-remotes.rst | 14 ++ pbs-api-types/src/jobs.rs | 7 +- pbs-datastore/src/prune.rs | 279 ++++++++++++++++++------------ src/api2/admin/datastore.rs | 71 ++++---- src/api2/config/sync.rs | 52 ++++++ src/api2/pull.rs | 17 +- src/bin/proxmox-backup-manager.rs | 17 +- src/server/prune_job.rs | 29 +--- src/server/pull.rs | 173 ++++++++++++------ tests/prune.rs | 4 +- www/window/SyncJobEdit.js | 5 + 11 files changed, 433 insertions(+), 235 deletions(-) -- 2.30.2