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 EDED820EC95 for ; Mon, 29 Apr 2024 14:20:29 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 9C9441072A; Mon, 29 Apr 2024 14:20:40 +0200 (CEST) From: Christian Ebner To: pbs-devel@lists.proxmox.com Date: Mon, 29 Apr 2024 14:10:55 +0200 Message-Id: <20240429121102.315059-52-c.ebner@proxmox.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240429121102.315059-1-c.ebner@proxmox.com> References: <20240429121102.315059-1-c.ebner@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.029 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 Subject: [pbs-devel] [PATCH v4 proxmox-backup 51/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 behaviour 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 --- pbs-client/src/pxar/create.rs | 29 ++++++++++++++++++----------- 1 file changed, 18 insertions(+), 11 deletions(-) diff --git a/pbs-client/src/pxar/create.rs b/pbs-client/src/pxar/create.rs index cb993c32b..dc473263d 100644 --- a/pbs-client/src/pxar/create.rs +++ b/pbs-client/src/pxar/create.rs @@ -233,16 +233,6 @@ where set.insert(stat.st_dev); } - let metadata_mode = options.previous_ref.is_some() && writers.payload_writer.is_some(); - - let mut encoder = Encoder::new( - &mut writers.writer, - &metadata, - writers.payload_writer.as_mut(), - None, - ) - .await?; - let mut patterns = options.patterns; if options.skip_lost_and_found { @@ -252,6 +242,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.payload_writer.is_some(); let (previous_payload_index, previous_metadata_accessor) = if let Some(refs) = options.previous_ref { ( @@ -262,6 +261,14 @@ where (None, None) }; + let mut encoder = Encoder::new( + &mut writers.writer, + &metadata, + writers.payload_writer.as_mut(), + cli_params, + ) + .await?; + let mut archiver = Archiver { feature_flags, fs_feature_flags, @@ -360,7 +367,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