[pbs-devel] [PATCH proxmox-backup 07/10] proxmox-file-restore: replace print with log macro
Hannes Laimer
h.laimer at proxmox.com
Fri Mar 11 16:07:52 CET 2022
Signed-off-by: Hannes Laimer <h.laimer at proxmox.com>
---
proxmox-file-restore/Cargo.toml | 1 +
proxmox-file-restore/src/block_driver_qemu.rs | 6 +++---
proxmox-file-restore/src/main.rs | 19 +++++--------------
proxmox-file-restore/src/qemu_helper.rs | 18 ++++++++----------
4 files changed, 17 insertions(+), 27 deletions(-)
diff --git a/proxmox-file-restore/Cargo.toml b/proxmox-file-restore/Cargo.toml
index bb1a6e02..f96bea35 100644
--- a/proxmox-file-restore/Cargo.toml
+++ b/proxmox-file-restore/Cargo.toml
@@ -9,6 +9,7 @@ anyhow = "1.0"
base64 = "0.13"
futures = "0.3"
libc = "0.2"
+log = "0.4"
nix = "0.19.1"
serde = { version = "1.0", features = ["derive"] }
serde_json = "1.0"
diff --git a/proxmox-file-restore/src/block_driver_qemu.rs b/proxmox-file-restore/src/block_driver_qemu.rs
index 0176f7f1..658af706 100644
--- a/proxmox-file-restore/src/block_driver_qemu.rs
+++ b/proxmox-file-restore/src/block_driver_qemu.rs
@@ -94,7 +94,7 @@ async fn cleanup_map(map: &mut HashMap<String, VMState>) -> bool {
if res.is_err() {
// VM is not reachable, remove from map and inform user
to_remove.push(name.clone());
- eprintln!(
+ log::warn!(
"VM '{}' (pid: {}, cid: {}) was not reachable, removing from map",
name, state.pid, state.cid
);
@@ -130,7 +130,7 @@ async fn ensure_running(details: &SnapRestoreDetails) -> Result<VsockClient, Err
return Ok(client);
}
Err(err) => {
- eprintln!("stale VM detected, restarting ({})", err);
+ log::warn!("stale VM detected, restarting ({})", err);
// VM is dead, restart
let _ = super::qemu_helper::try_kill_vm(vm.pid);
let vms = start_vm(vm.cid, details).await?;
@@ -229,7 +229,7 @@ impl BlockRestoreDriver for QemuBlockDriver {
)
.await
{
- eprintln!("reading file extraction stream failed - {}", err);
+ log::error!("reading file extraction stream failed - {}", err);
std::process::exit(1);
}
});
diff --git a/proxmox-file-restore/src/main.rs b/proxmox-file-restore/src/main.rs
index 41423c9d..bb810ec9 100644
--- a/proxmox-file-restore/src/main.rs
+++ b/proxmox-file-restore/src/main.rs
@@ -163,7 +163,7 @@ async fn list(
Some(ref key) => {
let (key, _, _) =
decrypt_key(&key.key, &get_encryption_key_password).map_err(|err| {
- eprintln!("{}", format_key_source(&key.source, "encryption"));
+ log::error!("{}", format_key_source(&key.source, "encryption"));
err
})?;
Some(Arc::new(CryptConfig::new(key)?))
@@ -296,12 +296,6 @@ async fn list(
type: CryptMode,
optional: true,
},
- verbose: {
- type: Boolean,
- description: "Print verbose information",
- optional: true,
- default: false,
- },
"driver": {
type: BlockDriverType,
optional: true,
@@ -315,7 +309,6 @@ async fn extract(
path: String,
base64: bool,
target: Option<String>,
- verbose: bool,
param: Value,
) -> Result<(), Error> {
let repo = extract_repository_from_value(¶m)?;
@@ -336,7 +329,7 @@ async fn extract(
Some(ref key) => {
let (key, _, _) =
decrypt_key(&key.key, &get_encryption_key_password).map_err(|err| {
- eprintln!("{}", format_key_source(&key.source, "encryption"));
+ log::error!("{}", format_key_source(&key.source, "encryption"));
err
})?;
Some(Arc::new(CryptConfig::new(key)?))
@@ -374,7 +367,7 @@ async fn extract(
let archive_size = reader.archive_size();
let reader = LocalDynamicReadAt::new(reader);
let decoder = Accessor::new(reader, archive_size).await?;
- extract_to_target(decoder, &path, target, verbose).await?;
+ extract_to_target(decoder, &path, target).await?;
}
ExtractPath::VM(file, path) => {
let details = SnapRestoreDetails {
@@ -391,7 +384,7 @@ async fn extract(
if let Some(mut target) = target {
let reader = data_extract(driver, details, file, path.clone(), true).await?;
let decoder = Decoder::from_tokio(reader).await?;
- extract_sub_dir_seq(&target, decoder, verbose).await?;
+ extract_sub_dir_seq(&target, decoder).await?;
// we extracted a .pxarexclude-cli file auto-generated by the VM when encoding the
// archive, this file is of no use for the user, so try to remove it
@@ -416,7 +409,6 @@ async fn extract_to_target<T>(
decoder: Accessor<T>,
path: &[u8],
target: Option<PathBuf>,
- verbose: bool,
) -> Result<(), Error>
where
T: pxar::accessor::ReadAt + Clone + Send + Sync + Unpin + 'static,
@@ -430,7 +422,7 @@ where
.ok_or_else(|| format_err!("error opening '{:?}'", path))?;
if let Some(target) = target {
- extract_sub_dir(target, decoder, OsStr::from_bytes(path), verbose).await?;
+ extract_sub_dir(target, decoder, OsStr::from_bytes(path)).await?;
} else {
match file.kind() {
pxar::EntryKind::File { .. } => {
@@ -441,7 +433,6 @@ where
tokio::io::stdout(),
decoder,
OsStr::from_bytes(path),
- verbose,
)
.await?;
}
diff --git a/proxmox-file-restore/src/qemu_helper.rs b/proxmox-file-restore/src/qemu_helper.rs
index 99c45859..c6c52cd6 100644
--- a/proxmox-file-restore/src/qemu_helper.rs
+++ b/proxmox-file-restore/src/qemu_helper.rs
@@ -153,7 +153,7 @@ pub async fn start_vm(
let mut logrotate = LogRotate::new(logfile, false, Some(16), None)?;
if let Err(err) = logrotate.do_rotate() {
- eprintln!("warning: logrotate for QEMU log file failed - {}", err);
+ log::warn!("warning: logrotate for QEMU log file failed - {}", err);
}
let mut logfd = OpenOptions::new()
@@ -291,11 +291,11 @@ pub async fn start_vm(
bail!("CID '{}' in use, but max attempts reached, aborting", cid);
}
// CID in use, try next higher one
- eprintln!("CID '{}' in use by other VM, attempting next one", cid);
+ log::info!("CID '{}' in use by other VM, attempting next one", cid);
// skip special-meaning low values
cid = cid.wrapping_add(1).max(10);
} else {
- eprint!("{}", out);
+ log::error!("{}", out);
bail!("Starting VM failed. See output above for more information.");
}
}
@@ -311,12 +311,10 @@ pub async fn start_vm(
if let Ok(Ok(_)) =
time::timeout(Duration::from_secs(2), client.get("api2/json/status", None)).await
{
- if debug {
- eprintln!(
- "Connect to '/run/proxmox-backup/file-restore-serial-{}.sock' for shell access",
- cid
- )
- }
+ log::debug!(
+ "Connect to '/run/proxmox-backup/file-restore-serial-{}.sock' for shell access",
+ cid
+ );
return Ok((pid, cid as i32));
}
if kill(pid_t, None).is_err() { // check if QEMU process exited in between
@@ -331,7 +329,7 @@ pub async fn start_vm(
// start failed
if let Err(err) = try_kill_vm(pid) {
- eprintln!("killing failed VM failed: {}", err);
+ log::error!("killing failed VM failed: {}", err);
}
bail!("starting VM timed out");
}
--
2.30.2
More information about the pbs-devel
mailing list