add --backup-time to allow import of archival data

Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
This commit is contained in:
Fabian Grünbichler 2024-04-23 10:03:42 +02:00
parent e3ae976fd6
commit 9602df9091
2 changed files with 10 additions and 4 deletions

View File

@ -2,6 +2,7 @@ use std::ffi::OsString;
use anyhow::{bail, Context, Error};
use proxmox_sys::linux::tty;
use proxmox_time::epoch_i64;
mod vma;
mod vma2pbs;
@ -20,6 +21,8 @@ Options:
Namespace
--vmid <VMID>
Backup ID
[--backup-time <EPOCH>]
Backup timestamp
--fingerprint <FINGERPRINT>
Proxmox Backup Server Fingerprint [env: PBS_FINGERPRINT=]
--keyfile <KEYFILE>
@ -81,6 +84,8 @@ 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 backup_time: Option<i64> = args.opt_value_from_str("--backup-time")?;
let backup_time = backup_time.unwrap_or_else(|| epoch_i64());
let fingerprint = args.opt_value_from_str("--fingerprint")?;
let keyfile = args.opt_value_from_str("--keyfile")?;
let master_keyfile = args.opt_value_from_str("--master-keyfile")?;
@ -165,6 +170,7 @@ fn parse_args() -> Result<BackupVmaToPbsArgs, Error> {
pbs_repository,
namespace,
backup_id: vmid,
backup_time,
pbs_password,
keyfile,
key_password,

View File

@ -14,7 +14,7 @@ use proxmox_backup_qemu::{
proxmox_backup_new_ns, proxmox_backup_register_image, proxmox_backup_write_data,
PROXMOX_BACKUP_DEFAULT_CHUNK_SIZE,
};
use proxmox_time::{epoch_i64, epoch_to_rfc3339};
use proxmox_time::epoch_to_rfc3339;
use scopeguard::defer;
use crate::vma::VmaReader;
@ -26,6 +26,7 @@ pub struct BackupVmaToPbsArgs {
pub pbs_repository: String,
pub namespace: Option<String>,
pub backup_id: String,
pub backup_time: i64,
pub pbs_password: String,
pub keyfile: Option<String>,
pub key_password: Option<String>,
@ -60,8 +61,7 @@ fn create_pbs_backup_task(args: BackupVmaToPbsArgs) -> Result<*mut ProxmoxBackup
println!("compress: {}", args.compress);
println!("encrypt: {}", args.encrypt);
let backup_time = epoch_i64();
println!("backup time: {}", epoch_to_rfc3339(backup_time)?);
println!("backup time: {}", epoch_to_rfc3339(args.backup_time)?);
let mut pbs_err: *mut c_char = ptr::null_mut();
@ -83,7 +83,7 @@ fn create_pbs_backup_task(args: BackupVmaToPbsArgs) -> Result<*mut ProxmoxBackup
pbs_repository_cstr.as_ptr(),
ns_cstr.as_ptr(),
backup_id_cstr.as_ptr(),
backup_time as u64,
args.backup_time as u64,
PROXMOX_BACKUP_DEFAULT_CHUNK_SIZE,
pbs_password_cstr.as_ptr(),
keyfile_ptr,