all lists on lists.proxmox.com
 help / color / mirror / Atom feed
From: Hannes Laimer <h.laimer@proxmox.com>
To: pbs-devel@lists.proxmox.com
Subject: [pbs-devel] [PATCH proxmox-backup v3 06/10] proxmox-file-restore: replace print with log macro
Date: Wed, 15 Jun 2022 08:19:53 +0000	[thread overview]
Message-ID: <20220615081957.33511-8-h.laimer@proxmox.com> (raw)
In-Reply-To: <20220615081957.33511-1-h.laimer@proxmox.com>

Signed-off-by: Hannes Laimer <h.laimer@proxmox.com>
---
 proxmox-file-restore/Cargo.toml               |  1 +
 proxmox-file-restore/src/block_driver_qemu.rs |  6 +++---
 proxmox-file-restore/src/main.rs              | 20 ++++++-------------
 proxmox-file-restore/src/qemu_helper.rs       | 18 ++++++++---------
 4 files changed, 18 insertions(+), 27 deletions(-)

diff --git a/proxmox-file-restore/Cargo.toml b/proxmox-file-restore/Cargo.toml
index de719b46..37428c8d 100644
--- a/proxmox-file-restore/Cargo.toml
+++ b/proxmox-file-restore/Cargo.toml
@@ -10,6 +10,7 @@ base64 = "0.13"
 futures = "0.3"
 libc = "0.2"
 nix = "0.24"
+log = "0.4"
 serde = { version = "1.0", features = ["derive"] }
 serde_json = "1.0"
 tokio = { version = "1.6", features = [ "io-std", "rt", "rt-multi-thread", "time" ] }
diff --git a/proxmox-file-restore/src/block_driver_qemu.rs b/proxmox-file-restore/src/block_driver_qemu.rs
index d203d72a..6e00c88d 100644
--- a/proxmox-file-restore/src/block_driver_qemu.rs
+++ b/proxmox-file-restore/src/block_driver_qemu.rs
@@ -98,7 +98,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
             );
@@ -134,7 +134,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?;
@@ -233,7 +233,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 5795b994..562c8ca7 100644
--- a/proxmox-file-restore/src/main.rs
+++ b/proxmox-file-restore/src/main.rs
@@ -261,7 +261,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)?))
@@ -392,7 +392,6 @@ async fn extract(
     path: String,
     base64: bool,
     target: Option<String>,
-    verbose: bool,
     param: Value,
 ) -> Result<(), Error> {
     let repo = extract_repository_from_value(&param)?;
@@ -414,7 +413,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)?))
@@ -451,7 +450,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 {
@@ -469,7 +468,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
@@ -494,7 +493,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,
@@ -508,20 +506,14 @@ 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 { .. } => {
                 tokio::io::copy(&mut file.contents().await?, &mut tokio::io::stdout()).await?;
             }
             _ => {
-                create_zip(
-                    tokio::io::stdout(),
-                    decoder,
-                    OsStr::from_bytes(path),
-                    verbose,
-                )
-                .await?;
+                create_zip(tokio::io::stdout(), decoder, OsStr::from_bytes(path)).await?;
             }
         }
     }
diff --git a/proxmox-file-restore/src/qemu_helper.rs b/proxmox-file-restore/src/qemu_helper.rs
index 4ed7e8b6..20558817 100644
--- a/proxmox-file-restore/src/qemu_helper.rs
+++ b/proxmox-file-restore/src/qemu_helper.rs
@@ -154,7 +154,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()
@@ -297,11 +297,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.");
             }
         }
@@ -317,12 +317,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() {
@@ -338,7 +336,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





  parent reply	other threads:[~2022-06-15  8:20 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-15  8:19 [pbs-devel] [PATCH-SERIES proxmox-backup/proxmox v3 00/10] replace print by log macro in libraries Hannes Laimer
2022-06-15  8:19 ` [pbs-devel] [PATCH proxmox v3 1/1] router: add init_cli_logger helper function Hannes Laimer
2022-06-21  8:40   ` [pbs-devel] applied: " Wolfgang Bumiller
2022-06-15  8:19 ` [pbs-devel] [PATCH proxmox-backup v3 01/10] bins: init cli logger Hannes Laimer
2022-06-15  8:19 ` [pbs-devel] [PATCH proxmox-backup v3 02/10] pbs-client: replace print with log macro Hannes Laimer
2022-06-15  8:19 ` [pbs-devel] [PATCH proxmox-backup v3 03/10] pbs-datastore: " Hannes Laimer
2022-06-15  8:19 ` [pbs-devel] [PATCH proxmox-backup v3 04/10] pbs-fuse+pbs-tape: " Hannes Laimer
2022-06-15  8:19 ` [pbs-devel] [PATCH proxmox-backup v3 05/10] proxmox-backup-client: " Hannes Laimer
2022-06-15  8:19 ` Hannes Laimer [this message]
2022-06-15  8:19 ` [pbs-devel] [PATCH proxmox-backup v3 07/10] proxmox-rest-server: " Hannes Laimer
2022-06-15  8:19 ` [pbs-devel] [PATCH proxmox-backup v3 08/10] " Hannes Laimer
2022-06-15  8:19 ` [pbs-devel] [PATCH proxmox-backup v3 09/10] docs: add note for setting verbosity level Hannes Laimer
2022-06-15  8:19 ` [pbs-devel] [PATCH proxmox-backup v3 10/10] fixed_index: remove unused 'print_info' function Hannes Laimer
2022-06-21  8:46 ` [pbs-devel] applied-series: [PATCH-SERIES proxmox-backup/proxmox v3 00/10] replace print by log macro in libraries Wolfgang Bumiller

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=20220615081957.33511-8-h.laimer@proxmox.com \
    --to=h.laimer@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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.
Service provided by Proxmox Server Solutions GmbH | Privacy | Legal