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 D2D3F1FF398 for ; Mon, 27 May 2024 16:41:20 +0200 (CEST) Received: from firstgate.proxmox.com (localhost [127.0.0.1]) by firstgate.proxmox.com (Proxmox) with ESMTP id 8007E643D; Mon, 27 May 2024 16:41:42 +0200 (CEST) From: Christian Ebner To: pbs-devel@lists.proxmox.com Date: Mon, 27 May 2024 16:33:09 +0200 Message-Id: <20240527143323.456002-56-c.ebner@proxmox.com> X-Mailer: git-send-email 2.39.2 In-Reply-To: <20240527143323.456002-1-c.ebner@proxmox.com> References: <20240527143323.456002-1-c.ebner@proxmox.com> MIME-Version: 1.0 X-SPAM-LEVEL: Spam detection results: 0 AWL 0.030 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 v7 proxmox-backup 55/69] 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 6: - adapt to field naming change for PxarWriters 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 9a9882fc7..528577520 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