]> git.proxmox.com Git - proxmox-backup.git/commitdiff
src/client/backup_writer.rs: implement verbose options
authorDietmar Maurer <dietmar@proxmox.com>
Mon, 24 Feb 2020 11:48:40 +0000 (12:48 +0100)
committerDietmar Maurer <dietmar@proxmox.com>
Mon, 24 Feb 2020 11:48:40 +0000 (12:48 +0100)
src/bin/proxmox-backup-client.rs
src/client/backup_writer.rs

index 2578c75828e8488b785312e9482febce2c841bfd..a4d2e760e2e004c8b62d10bfc946ac7e986b477c 100644 (file)
@@ -816,6 +816,11 @@ fn spawn_catalog_upload(
                optional: true,
                default: pxar::ENCODER_MAX_ENTRIES as isize,
            },
+           "verbose": {
+               type: Boolean,
+               description: "Verbose output.",
+               optional: true,
+           },
        }
    }
 )]
index 5d2a01270d3dd590ac77d4b0470c7a9698da8b9a..68d663f028b4ee35bbfa17add17530257d0f10ef 100644 (file)
@@ -21,6 +21,7 @@ use super::{HttpClient, H2Client};
 pub struct BackupWriter {
     h2: H2Client,
     abort: AbortHandle,
+    verbose: bool,
 }
 
 impl Drop for BackupWriter {
@@ -37,8 +38,8 @@ pub struct BackupStats {
 
 impl BackupWriter {
 
-    fn new(h2: H2Client, abort: AbortHandle) -> Arc<Self> {
-        Arc::new(Self { h2, abort })
+    fn new(h2: H2Client, abort: AbortHandle, verbose: bool) -> Arc<Self> {
+        Arc::new(Self { h2, abort, verbose })
     }
 
     pub async fn start(
@@ -63,7 +64,7 @@ impl BackupWriter {
 
         let (h2, abort) = client.start_h2_connection(req, String::from(PROXMOX_BACKUP_PROTOCOL_ID_V1!())).await?;
 
-        Ok(BackupWriter::new(h2, abort))
+        Ok(BackupWriter::new(h2, abort, debug))
     }
 
     pub async fn get(
@@ -244,6 +245,7 @@ impl BackupWriter {
                 &prefix,
                 known_chunks.clone(),
                 crypt_config,
+                self.verbose,
             )
             .await?;
 
@@ -299,9 +301,9 @@ impl BackupWriter {
         (verify_queue_tx, verify_result_rx)
     }
 
-    fn append_chunk_queue(h2: H2Client, wid: u64, path: String) -> (
+    fn append_chunk_queue(h2: H2Client, wid: u64, path: String, verbose: bool) -> (
         mpsc::Sender<(MergedChunkInfo, Option<h2::client::ResponseFuture>)>,
-        oneshot::Receiver<Result<(), Error>>
+        oneshot::Receiver<Result<(), Error>>,
     ) {
         let (verify_queue_tx, verify_queue_rx) = mpsc::channel(64);
         let (verify_result_tx, verify_result_rx) = oneshot::channel();
@@ -337,11 +339,10 @@ impl BackupWriter {
                             let mut digest_list = vec![];
                             let mut offset_list = vec![];
                             for (offset, digest) in chunk_list {
-                                //println!("append chunk {} (offset {})", proxmox::tools::digest_to_hex(&digest), offset);
                                 digest_list.push(digest_to_hex(&digest));
                                 offset_list.push(offset);
                             }
-                            println!("append chunks list len ({})", digest_list.len());
+                            if verbose { println!("append chunks list len ({})", digest_list.len()); }
                             let param = json!({ "wid": wid, "digest-list": digest_list, "offset-list": offset_list });
                             let request = H2Client::request_builder("localhost", "PUT", &path, None, Some("application/json")).unwrap();
                             let param_data = bytes::Bytes::from(param.to_string().into_bytes());
@@ -397,7 +398,9 @@ impl BackupWriter {
             known_chunks.lock().unwrap().insert(chunk);
         }
 
-        println!("known chunks list length: {}", known_chunks.lock().unwrap().len());
+        if self.verbose {
+            println!("known chunks list length: {}", known_chunks.lock().unwrap().len());
+        }
 
         Ok(())
     }
@@ -409,6 +412,7 @@ impl BackupWriter {
         prefix: &str,
         known_chunks: Arc<Mutex<HashSet<[u8;32]>>>,
         crypt_config: Option<Arc<CryptConfig>>,
+        verbose: bool,
     ) -> impl Future<Output = Result<(usize, usize, usize, [u8; 32]), Error>> {
 
         let repeat = Arc::new(AtomicUsize::new(0));
@@ -422,7 +426,7 @@ impl BackupWriter {
         let is_fixed_chunk_size = prefix == "fixed";
 
         let (upload_queue, upload_result) =
-            Self::append_chunk_queue(h2.clone(), wid, append_chunk_path.to_owned());
+            Self::append_chunk_queue(h2.clone(), wid, append_chunk_path.to_owned(), verbose);
 
         let start_time = std::time::Instant::now();
 
@@ -479,8 +483,10 @@ impl BackupWriter {
                     let digest = chunk_info.digest;
                     let digest_str = digest_to_hex(&digest);
 
-                    println!("upload new chunk {} ({} bytes, offset {})", digest_str,
-                             chunk_info.chunk_len, offset);
+                    if verbose {
+                        println!("upload new chunk {} ({} bytes, offset {})", digest_str,
+                                 chunk_info.chunk_len, offset);
+                    }
 
                     let chunk_data = chunk_info.chunk.into_inner();
                     let param = json!({