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 29864BED26 for ; Tue, 2 Jan 2024 12:07:44 +0100 (CET) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 04C9515C47 for ; Tue, 2 Jan 2024 12:07:14 +0100 (CET) Received: from proxmox-new.maurer-it.com (proxmox-new.maurer-it.com [94.136.29.106]) (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 firstgate.proxmox.com (Proxmox) with ESMTPS for ; Tue, 2 Jan 2024 12:07:13 +0100 (CET) Received: from proxmox-new.maurer-it.com (localhost.localdomain [127.0.0.1]) by proxmox-new.maurer-it.com (Proxmox) with ESMTP id BA916452AA for ; Tue, 2 Jan 2024 12:07:12 +0100 (CET) From: Philipp Hufnagl To: pbs-devel@lists.proxmox.com Date: Tue, 2 Jan 2024 12:06:51 +0100 Message-Id: <20240102110655.155329-1-p.hufnagl@proxmox.com> X-Mailer: git-send-email 2.39.2 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-SPAM-LEVEL: Spam detection results: 0 AWL -0.040 Adjusted score from AWL reputation of From: address BAYES_00 -1.9 Bayes spam probability is 0 to 1% DMARC_MISSING 0.1 Missing DMARC policy KAM_DMARC_STATUS 0.01 Test Rule for DKIM or SPF Failure with Strict Alignment SPF_HELO_NONE 0.001 SPF: HELO does not publish an SPF Record SPF_PASS -0.001 SPF: sender matches SPF record T_SCC_BODY_TEXT_LINE -0.01 - Subject: [pbs-devel] [PATCH proxmox-backup v7 0/4] fix #4315: datastore: Exclude entries from sync 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: Tue, 02 Jan 2024 11:07:44 -0000 This allows to use Group Filter for sync jobs so matches can not just be included but also excluded. For this the "group-filter" configuration syntax has been extended with an optional "behaviour" parameter. this can be "include" or "exclude". First, all include filter will be applied, then all exclude filter. If no include filters exist, all will be considered included. Signed-off-by: Philipp Hufnagl --- Changes since v6: * Optimize apply_filter to use less memory Changes since v5: * add apply_filter to GrpupFilter member * do include/eclude filter seperation in apply_filter * minor code improvements based on feedback Changes since v4: * add testing * refactor apply filter logic to reduce duplicaton * split filter in incude/exclude lists Changes since v3: * increase size of delete icon * include all when no include filter exist Changes since v2: * rebase to new master * change docu as suggested * make list for filter smaller Changes since v1: * rename behaviour in behavior * modify behavior, so that first all include filter will be executed, then all exlude one Philipp Hufnagl (4): fix #4315: jobs: modify GroupFilter so include/exclude is tracked ui: Show if Filter includes or excludes docs: document new include/exclude paramenter tests: check if include/exclude behavior works correctly docs/managing-remotes.rst | 13 ++ pbs-api-types/src/datastore.rs | 36 +++-- pbs-api-types/src/jobs.rs | 51 ++++++-- src/api2/tape/backup.rs | 39 +++--- src/server/pull.rs | 46 +++---- tests/sync_jobs.rs | 76 +++++++++++ www/form/GroupFilter.js | 233 ++++++++++++++++++++++++--------- 7 files changed, 358 insertions(+), 136 deletions(-) create mode 100644 tests/sync_jobs.rs -- 2.39.2