add namespace support

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
This commit is contained in:
Fabian Grünbichler 2024-04-23 09:54:47 +02:00
parent b08ef85646
commit e3ae976fd6
2 changed files with 10 additions and 1 deletions

View File

@ -16,6 +16,8 @@ Arguments:
Options:
--repository <auth_id@host:port:datastore>
Repository URL
[--ns <NAMESPACE>]
Namespace
--vmid <VMID>
Backup ID
--fingerprint <FINGERPRINT>
@ -77,6 +79,7 @@ fn parse_args() -> Result<BackupVmaToPbsArgs, Error> {
}
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<BackupVmaToPbsArgs, Error> {
let options = BackupVmaToPbsArgs {
vma_file_path: vma_file_path.cloned(),
pbs_repository,
namespace,
backup_id: vmid,
pbs_password,
keyfile,

View File

@ -24,6 +24,7 @@ const VMA_CLUSTER_SIZE: usize = 65536;
pub struct BackupVmaToPbsArgs {
pub vma_file_path: Option<OsString>,
pub pbs_repository: String,
pub namespace: Option<String>,
pub backup_id: String,
pub pbs_password: String,
pub keyfile: Option<String>,
@ -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,