From: Thomas Ellmenreich <t.ellmenreich@proxmox.com>
To: pbs-devel@lists.proxmox.com
Cc: Thomas Ellmenreich <t.ellmenreich@proxmox.com>
Subject: [PATCH proxmox-backup 1/2] backup writer: add constructor for BackupWriterOptions
Date: Wed, 23 Sep 2026 12:27:58 +0200 [thread overview]
Message-ID: <20260923102759.139819-2-t.ellmenreich@proxmox.com> (raw)
In-Reply-To: <20260923102759.139819-1-t.ellmenreich@proxmox.com>
Instead of creating BackupWriterOptions directly, use a new function for it.
The goal is to be able to remove values from the constructor and provide
default values for them.
Signed-off-by: Thomas Ellmenreich <t.ellmenreich@proxmox.com>
---
examples/upload-speed.rs | 16 ++++++++--------
pbs-client/src/backup_writer.rs | 22 ++++++++++++++++++++++
proxmox-backup-client/src/benchmark.rs | 16 ++++++++--------
proxmox-backup-client/src/main.rs | 16 ++++++++--------
src/server/push.rs | 18 +++++++++---------
5 files changed, 55 insertions(+), 33 deletions(-)
diff --git a/examples/upload-speed.rs b/examples/upload-speed.rs
index 5a63e0f09..a0b742854 100644
--- a/examples/upload-speed.rs
+++ b/examples/upload-speed.rs
@@ -19,15 +19,15 @@ async fn upload_speed() -> Result<f64, Error> {
let client = BackupWriter::start(
&client,
- BackupWriterOptions {
+ BackupWriterOptions::new(
datastore,
- ns: &BackupNamespace::root(),
- backup: &(BackupType::Host, "speedtest".to_string(), backup_time).into(),
- crypt_config: None,
- debug: false,
- benchmark: true,
- no_cache: false,
- },
+ &BackupNamespace::root(),
+ &(BackupType::Host, "speedtest".to_string(), backup_time).into(),
+ None,
+ false,
+ true,
+ false,
+ ),
)
.await?;
diff --git a/pbs-client/src/backup_writer.rs b/pbs-client/src/backup_writer.rs
index 7f7535746..7c3cb21b7 100644
--- a/pbs-client/src/backup_writer.rs
+++ b/pbs-client/src/backup_writer.rs
@@ -100,6 +100,28 @@ pub struct BackupWriterOptions<'a> {
pub no_cache: bool,
}
+impl<'a> BackupWriterOptions<'a> {
+ pub fn new(
+ datastore: &'a str,
+ ns: &'a BackupNamespace,
+ backup: &'a BackupDir,
+ crypt_config: Option<Arc<CryptConfig>>,
+ debug: bool,
+ benchmark: bool,
+ no_cache: bool,
+ ) -> Self {
+ Self {
+ datastore,
+ ns,
+ backup,
+ crypt_config,
+ debug,
+ benchmark,
+ no_cache,
+ }
+ }
+}
+
impl BackupWriter {
fn new(h2: H2Client, abort: AbortHandle, crypt_config: Option<Arc<CryptConfig>>) -> Arc<Self> {
Arc::new(Self {
diff --git a/proxmox-backup-client/src/benchmark.rs b/proxmox-backup-client/src/benchmark.rs
index a937bacb9..af9113ecb 100644
--- a/proxmox-backup-client/src/benchmark.rs
+++ b/proxmox-backup-client/src/benchmark.rs
@@ -238,15 +238,15 @@ async fn test_upload_speed(
log::debug!("Connecting to backup server");
let client = BackupWriter::start(
&client,
- BackupWriterOptions {
- datastore: repo.store(),
- ns: &BackupNamespace::root(),
- backup: &(BackupType::Host, "benchmark".to_string(), backup_time).into(),
- crypt_config: crypt_config.clone(),
- debug: false,
- benchmark: true,
+ BackupWriterOptions::new(
+ repo.store(),
+ &BackupNamespace::root(),
+ &(BackupType::Host, "benchmark".to_string(), backup_time).into(),
+ crypt_config.clone(),
+ false,
+ true,
no_cache,
- },
+ ),
)
.await?;
diff --git a/proxmox-backup-client/src/main.rs b/proxmox-backup-client/src/main.rs
index 5238a75ea..3aaaac39e 100644
--- a/proxmox-backup-client/src/main.rs
+++ b/proxmox-backup-client/src/main.rs
@@ -1046,15 +1046,15 @@ async fn create_backup(
let client = BackupWriter::start(
&http_client,
- BackupWriterOptions {
- datastore: repo.store(),
- ns: &backup_ns,
- backup: &snapshot,
- crypt_config: crypt_config.clone(),
- debug: true,
- benchmark: false,
+ BackupWriterOptions::new(
+ repo.store(),
+ &backup_ns,
+ &snapshot,
+ crypt_config.clone(),
+ true,
+ false,
no_cache,
- },
+ ),
)
.await?;
diff --git a/src/server/push.rs b/src/server/push.rs
index 487fd91e3..665c77a8d 100644
--- a/src/server/push.rs
+++ b/src/server/push.rs
@@ -1132,17 +1132,17 @@ pub(crate) async fn push_snapshot(
// Writer instance locks the snapshot on the remote side
let backup_writer = BackupWriter::start(
¶ms.target.client,
- BackupWriterOptions {
- datastore: params.target.repo.store(),
- ns: &target_ns,
- backup: snapshot,
- crypt_config: encrypt_using_key
+ BackupWriterOptions::new(
+ params.target.repo.store(),
+ &target_ns,
+ snapshot,
+ encrypt_using_key
.as_ref()
.map(|(_id, conf)| Arc::clone(conf)),
- debug: false,
- benchmark: false,
- no_cache: false,
- },
+ false,
+ false,
+ false,
+ ),
)
.await
.with_context(|| prefix.to_string())?;
--
2.47.3
next prev parent reply other threads:[~2026-09-23 10:28 UTC|newest]
Thread overview: 3+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-23 10:27 [RFC proxmox-backup 0/2] backup log: reduce logging during backup Thomas Ellmenreich
2026-09-23 10:27 ` Thomas Ellmenreich [this message]
2026-09-23 10:27 ` [PATCH proxmox-backup 2/2] fix #4646: backup writer: base debug flag on log level Thomas Ellmenreich
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260923102759.139819-2-t.ellmenreich@proxmox.com \
--to=t.ellmenreich@proxmox.com \
--cc=pbs-devel@lists.proxmox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox