From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [IPv6:2a01:7e0:0:424::9]) by lore.proxmox.com (Postfix) with ESMTPS id CCF591FF3AF for ; Wed, 5 Jun 2024 12:55:05 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id D3DE931FB1; Wed, 5 Jun 2024 12:55:29 +0200 (CEST) From: Christian Ebner To: pbs-devel@lists.proxmox.com Date: Wed, 5 Jun 2024 12:53:55 +0200 Message-Id: <20240605105416.278748-38-c.ebner@proxmox.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240605105416.278748-1-c.ebner@proxmox.com> References: <20240605105416.278748-1-c.ebner@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.027 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 v9 proxmox-backup 37/58] client: pxar: opt encode cli exclude patterns as Prelude 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: , Reply-To: Proxmox Backup Server development discussion Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Errors-To: pbs-devel-bounces@lists.proxmox.com Sender: "pbs-devel" Instead of encoding the pxar cli exclude patterns as regular file within the root directory of an archive, store this information directly after the pxar format version entry in the entry of kind Prelude. This behavior is however currently exclusive to the archives written with format version 2 in a split metadata and payload case. This is a breaking change for the encoding of new cli exclude parameters. Any new exclude parameter will not be added to an already present .pxar-cliexclude file, and it will not be created if not present. Signed-off-by: Christian Ebner --- changes since version 8: - no changes pbs-client/src/pxar/create.rs | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/pbs-client/src/pxar/create.rs b/pbs-client/src/pxar/create.rs index 56931dad7..eadd670df 100644 --- a/pbs-client/src/pxar/create.rs +++ b/pbs-client/src/pxar/create.rs @@ -225,9 +225,6 @@ where set.insert(stat.st_dev); } - let metadata_mode = options.previous_ref.is_some() && writers.archive.payload().is_some(); - let mut encoder = Encoder::new(writers.archive, &metadata, None).await?; - let mut patterns = options.patterns; if options.skip_lost_and_found { @@ -237,6 +234,15 @@ where MatchType::Exclude, )?); } + + let cli_params_content = generate_pxar_excludes_cli(&patterns[..]); + let cli_params = if options.previous_ref.is_some() { + Some(cli_params_content.as_slice()) + } else { + None + }; + + let metadata_mode = options.previous_ref.is_some() && writers.archive.payload().is_some(); let (previous_payload_index, previous_metadata_accessor) = if let Some(refs) = options.previous_ref { ( @@ -247,6 +253,8 @@ where (None, None) }; + let mut encoder = Encoder::new(writers.archive, &metadata, cli_params).await?; + let mut archiver = Archiver { feature_flags, fs_feature_flags, @@ -348,7 +356,7 @@ impl Archiver { let mut file_list = self.generate_directory_file_list(&mut dir, is_root)?; - if is_root && old_patterns_count > 0 { + if is_root && old_patterns_count > 0 && previous_metadata_accessor.is_none() { file_list.push(FileListEntry { name: CString::new(".pxarexclude-cli").unwrap(), path: PathBuf::new(), -- 2.39.2 _______________________________________________ pbs-devel mailing list pbs-devel@lists.proxmox.com https://lists.proxmox.com/cgi-bin/mailman/listinfo/pbs-devel