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 F27CF1FF389 for ; Tue, 7 May 2024 18:01:25 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id F2A0C131A5; Tue, 7 May 2024 18:01:29 +0200 (CEST) From: Christian Ebner To: pbs-devel@lists.proxmox.com Date: Tue, 7 May 2024 17:52:33 +0200 Message-Id: <20240507155244.793819-52-c.ebner@proxmox.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240507155244.793819-1-c.ebner@proxmox.com> References: <20240507155244.793819-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 Subject: [pbs-devel] [PATCH v5 proxmox-backup 51/62] 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 --- changes since version 4: - no changes 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 153c71349..19f2349fa 100644 --- a/pbs-client/src/pxar/create.rs +++ b/pbs-client/src/pxar/create.rs @@ -235,16 +235,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 { @@ -254,6 +244,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 { ( @@ -264,6 +263,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, @@ -362,7 +369,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