diff --git a/src/api2/config/remote.rs b/src/api2/config/remote.rs index 65dedd7e..d419be2b 100644 --- a/src/api2/config/remote.rs +++ b/src/api2/config/remote.rs @@ -1,7 +1,6 @@ use anyhow::{bail, Error}; use serde_json::Value; use ::serde::{Deserialize, Serialize}; -use base64; use proxmox::api::{api, ApiMethod, Router, RpcEnvironment, Permission}; use proxmox::tools::fs::open_file_locked; diff --git a/src/backup/chunk_store.rs b/src/backup/chunk_store.rs index 4397648b..96c46efb 100644 --- a/src/backup/chunk_store.rs +++ b/src/backup/chunk_store.rs @@ -378,14 +378,12 @@ impl ChunkStore { } status.removed_chunks += 1; status.removed_bytes += stat.st_size as u64; + } else if stat.st_atime < oldest_writer { + status.pending_chunks += 1; + status.pending_bytes += stat.st_size as u64; } else { - if stat.st_atime < oldest_writer { - status.pending_chunks += 1; - status.pending_bytes += stat.st_size as u64; - } else { - status.disk_chunks += 1; - status.disk_bytes += stat.st_size as u64; - } + status.disk_chunks += 1; + status.disk_bytes += stat.st_size as u64; } } drop(lock); diff --git a/src/backup/datastore.rs b/src/backup/datastore.rs index 1f708293..63b07f30 100644 --- a/src/backup/datastore.rs +++ b/src/backup/datastore.rs @@ -293,7 +293,7 @@ impl DataStore { let mut file = open_options.open(&path) .map_err(|err| format_err!("unable to create owner file {:?} - {}", path, err))?; - write!(file, "{}\n", userid) + writeln!(file, "{}", userid) .map_err(|err| format_err!("unable to write owner file {:?} - {}", path, err))?; Ok(()) diff --git a/src/client/backup_writer.rs b/src/client/backup_writer.rs index fc0eccfc..c5ce5b42 100644 --- a/src/client/backup_writer.rs +++ b/src/client/backup_writer.rs @@ -38,6 +38,9 @@ pub struct BackupStats { pub csum: [u8; 32], } +type UploadQueueSender = mpsc::Sender<(MergedChunkInfo, Option)>; +type UploadResultReceiver = oneshot::Receiver>; + impl BackupWriter { fn new(h2: H2Client, abort: AbortHandle, crypt_config: Option>, verbose: bool) -> Arc { @@ -262,7 +265,7 @@ impl BackupWriter { let archive = if self.verbose { archive_name.to_string() } else { - crate::tools::format::strip_server_file_extension(archive_name.clone()) + crate::tools::format::strip_server_file_extension(archive_name) }; if archive_name != CATALOG_NAME { let speed: HumanByte = ((uploaded * 1_000_000) / (duration.as_micros() as usize)).into(); @@ -335,15 +338,15 @@ impl BackupWriter { (verify_queue_tx, verify_result_rx) } - fn append_chunk_queue(h2: H2Client, wid: u64, path: String, verbose: bool) -> ( - mpsc::Sender<(MergedChunkInfo, Option)>, - oneshot::Receiver>, - ) { + fn append_chunk_queue( + h2: H2Client, + wid: u64, + path: String, + verbose: bool, + ) -> (UploadQueueSender, UploadResultReceiver) { let (verify_queue_tx, verify_queue_rx) = mpsc::channel(64); let (verify_result_tx, verify_result_rx) = oneshot::channel(); - let h2_2 = h2.clone(); - // FIXME: async-block-ify this code! tokio::spawn( verify_queue_rx @@ -381,7 +384,7 @@ impl BackupWriter { let request = H2Client::request_builder("localhost", "PUT", &path, None, Some("application/json")).unwrap(); let param_data = bytes::Bytes::from(param.to_string().into_bytes()); let upload_data = Some(param_data); - h2_2.send_request(request, upload_data) + h2.send_request(request, upload_data) .and_then(move |response| { response .map_err(Error::from) @@ -489,6 +492,10 @@ impl BackupWriter { Ok(manifest) } + // We have no `self` here for `h2` and `verbose`, the only other arg "common" with 1 other + // funciton in the same path is `wid`, so those 3 could be in a struct, but there's no real use + // since this is a private method. + #[allow(clippy::too_many_arguments)] fn upload_chunk_info_stream( h2: H2Client, wid: u64, @@ -515,7 +522,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(), verbose); + Self::append_chunk_queue(h2.clone(), wid, append_chunk_path, verbose); let start_time = std::time::Instant::now(); @@ -574,10 +581,12 @@ impl BackupWriter { let digest = chunk_info.digest; let digest_str = digest_to_hex(&digest); - if false && verbose { // TO verbose, needs finer verbosity setting granularity + /* too verbose, needs finer verbosity setting granularity + 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!({ diff --git a/src/client/http_client.rs b/src/client/http_client.rs index 66c7e11f..f0f6b9ce 100644 --- a/src/client/http_client.rs +++ b/src/client/http_client.rs @@ -181,10 +181,8 @@ fn load_fingerprint(prefix: &str, server: &str) -> Option { for line in raw.split('\n') { let items: Vec = line.split_whitespace().map(String::from).collect(); - if items.len() == 2 { - if &items[0] == server { - return Some(items[1].clone()); - } + if items.len() == 2 && &items[0] == server { + return Some(items[1].clone()); } } diff --git a/src/pxar/fuse.rs b/src/pxar/fuse.rs index 652b9219..2037a484 100644 --- a/src/pxar/fuse.rs +++ b/src/pxar/fuse.rs @@ -266,10 +266,8 @@ impl SessionImpl { ) { let final_result = match err.downcast::() { Ok(err) => { - if err.kind() == io::ErrorKind::Other { - if self.verbose { - eprintln!("an IO error occurred: {}", err); - } + if err.kind() == io::ErrorKind::Other && self.verbose { + eprintln!("an IO error occurred: {}", err); } // fail the request diff --git a/src/tools/acl.rs b/src/tools/acl.rs index 03f84dd9..d9ae42a0 100644 --- a/src/tools/acl.rs +++ b/src/tools/acl.rs @@ -43,8 +43,8 @@ pub const ACL_NEXT_ENTRY: c_int = 1; // acl to extended attribute names constants // from: acl/include/acl_ea.h -pub const ACL_EA_ACCESS: &'static str = "system.posix_acl_access"; -pub const ACL_EA_DEFAULT: &'static str = "system.posix_acl_default"; +pub const ACL_EA_ACCESS: &str = "system.posix_acl_access"; +pub const ACL_EA_DEFAULT: &str = "system.posix_acl_default"; pub const ACL_EA_VERSION: u32 = 0x0002; #[link(name = "acl")] diff --git a/src/tools/fuse_loop.rs b/src/tools/fuse_loop.rs index ab733f27..8a8b668a 100644 --- a/src/tools/fuse_loop.rs +++ b/src/tools/fuse_loop.rs @@ -21,7 +21,7 @@ use proxmox_fuse::{*, requests::FuseRequest}; use super::loopdev; use super::fs; -const RUN_DIR: &'static str = "/run/pbs-loopdev"; +const RUN_DIR: &str = "/run/pbs-loopdev"; const_regex! { pub LOOPDEV_REGEX = r"^loop\d+$";