From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from firstgate.proxmox.com (firstgate.proxmox.com [212.224.123.68]) by lore.proxmox.com (Postfix) with ESMTPS id 8AAEA1FF3A3 for ; Tue, 14 May 2024 12:35:27 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id A5C6745C6; Tue, 14 May 2024 12:35:08 +0200 (CEST) From: Christian Ebner To: pbs-devel@lists.proxmox.com Date: Tue, 14 May 2024 12:34:08 +0200 Message-Id: <20240514103421.289431-53-c.ebner@proxmox.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240514103421.289431-1-c.ebner@proxmox.com> References: <20240514103421.289431-1-c.ebner@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.025 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 v6 proxmox-backup 52/65] 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 --- 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