From e3ae976fd665ce031d4dc7cc069f4e3042dd4337 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fabian=20Gr=C3=BCnbichler?= Date: Tue, 23 Apr 2024 09:54:47 +0200 Subject: [PATCH] add namespace support MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Fabian Grünbichler --- src/main.rs | 4 ++++ src/vma2pbs.rs | 7 ++++++- 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/src/main.rs b/src/main.rs index 0b975e8..9117407 100644 --- a/src/main.rs +++ b/src/main.rs @@ -16,6 +16,8 @@ Arguments: Options: --repository Repository URL + [--ns ] + Namespace --vmid Backup ID --fingerprint @@ -77,6 +79,7 @@ fn parse_args() -> Result { } let pbs_repository = args.value_from_str("--repository")?; + let namespace = args.opt_value_from_str("--ns")?; let vmid = args.value_from_str("--vmid")?; let fingerprint = args.opt_value_from_str("--fingerprint")?; let keyfile = args.opt_value_from_str("--keyfile")?; @@ -160,6 +163,7 @@ fn parse_args() -> Result { let options = BackupVmaToPbsArgs { vma_file_path: vma_file_path.cloned(), pbs_repository, + namespace, backup_id: vmid, pbs_password, keyfile, diff --git a/src/vma2pbs.rs b/src/vma2pbs.rs index ed573d8..2583def 100644 --- a/src/vma2pbs.rs +++ b/src/vma2pbs.rs @@ -24,6 +24,7 @@ const VMA_CLUSTER_SIZE: usize = 65536; pub struct BackupVmaToPbsArgs { pub vma_file_path: Option, pub pbs_repository: String, + pub namespace: Option, pub backup_id: String, pub pbs_password: String, pub keyfile: Option, @@ -52,6 +53,9 @@ fn handle_pbs_error(pbs_err: *mut c_char, function_name: &str) -> Result<(), Err fn create_pbs_backup_task(args: BackupVmaToPbsArgs) -> Result<*mut ProxmoxBackupHandle, Error> { println!("PBS repository: {}", args.pbs_repository); + if let Some(ns) = &args.namespace { + println!("PBS namespace: {}", ns); + } println!("PBS fingerprint: {}", args.fingerprint); println!("compress: {}", args.compress); println!("encrypt: {}", args.encrypt); @@ -62,6 +66,7 @@ fn create_pbs_backup_task(args: BackupVmaToPbsArgs) -> Result<*mut ProxmoxBackup let mut pbs_err: *mut c_char = ptr::null_mut(); let pbs_repository_cstr = CString::new(args.pbs_repository)?; + let ns_cstr = CString::new(args.namespace.unwrap_or("".to_string()))?; let backup_id_cstr = CString::new(args.backup_id)?; let pbs_password_cstr = CString::new(args.pbs_password)?; let fingerprint_cstr = CString::new(args.fingerprint)?; @@ -76,7 +81,7 @@ fn create_pbs_backup_task(args: BackupVmaToPbsArgs) -> Result<*mut ProxmoxBackup let pbs = proxmox_backup_new_ns( pbs_repository_cstr.as_ptr(), - ptr::null(), + ns_cstr.as_ptr(), backup_id_cstr.as_ptr(), backup_time as u64, PROXMOX_BACKUP_DEFAULT_CHUNK_SIZE,