diff --git a/crates/ecstore/src/bucket/lifecycle/tier_sweeper.rs b/crates/ecstore/src/bucket/lifecycle/tier_sweeper.rs index 6518451ff..ad2241629 100644 --- a/crates/ecstore/src/bucket/lifecycle/tier_sweeper.rs +++ b/crates/ecstore/src/bucket/lifecycle/tier_sweeper.rs @@ -15,8 +15,6 @@ #![allow(unused_variables)] #![allow(unused_mut)] #![allow(unused_assignments)] -#![allow(unused_must_use)] -#![allow(clippy::all)] use super::runtime_boundary as runtime_sources; use crate::bucket::lifecycle::bucket_lifecycle_ops::ExpiryOp; @@ -72,9 +70,11 @@ static REMOTE_DELETE_BREAKER: LazyLock> = LazyLock::n }); #[cfg(test)] -static REMOTE_TIER_DELETE_TEST_HOOK: std::sync::LazyLock< - std::sync::Mutex std::io::Result<()> + Send + Sync>>>, -> = std::sync::LazyLock::new(|| std::sync::Mutex::new(None)); +type RemoteTierDeleteTestHook = Box std::io::Result<()> + Send + Sync>; + +#[cfg(test)] +static REMOTE_TIER_DELETE_TEST_HOOK: std::sync::LazyLock>> = + std::sync::LazyLock::new(|| std::sync::Mutex::new(None)); #[derive(Debug)] struct RemoteDeleteBreaker { @@ -107,7 +107,7 @@ impl RemoteDeleteBreaker { fn prune(&mut self, now: Instant) { while let Some(ts) = self.failures.front().copied() { if now.duration_since(ts) > self.window { - self.failures.pop_front(); + let _ = self.failures.pop_front(); } else { break; } @@ -137,10 +137,10 @@ fn is_signer_header_error(err: &std::io::Error) -> bool { return false; } - if let Some(source) = err.get_ref() { - if error_chain_contains_signer_header_marker(source) { - return true; - } + if let Some(source) = err.get_ref() + && error_chain_contains_signer_header_marker(source) + { + return true; } let message = err.to_string().to_ascii_lowercase(); @@ -205,7 +205,7 @@ impl ObjSweeper { #[allow(dead_code, reason = "MinIO-parity surface with no caller in this port (backlog#1823)")] pub fn with_version(&mut self, vid: Option) -> &Self { - self.version_id = vid.clone(); + self.version_id = vid; self } @@ -219,7 +219,7 @@ impl ObjSweeper { #[allow(dead_code, reason = "MinIO-parity surface with no caller in this port (backlog#1823)")] pub fn get_opts(&self) -> lifecycle::ObjectOpts { let mut opts = ObjectOpts { - version_id: self.version_id.clone(), + version_id: self.version_id, versioned: self.versioned, version_suspended: self.suspended, ..Default::default() @@ -388,8 +388,8 @@ impl Jentry { impl ExpiryOp for Jentry { fn op_hash(&self) -> u64 { let mut hasher = Sha256::new(); - hasher.update(format!("{}", self.tier_name).as_bytes()); - hasher.update(format!("{}", self.obj_name).as_bytes()); + hasher.update(self.tier_name.as_bytes()); + hasher.update(self.obj_name.as_bytes()); xxh64::xxh64(hasher.finalize().as_slice(), XXHASH_SEED) } @@ -436,7 +436,7 @@ async fn delete_object_from_remote_tier_raw_with_manager( tier_name: &str, tier_config_mgr: &Arc>, ) -> Result<(), std::io::Error> { - let lease = TierConfigMgr::acquire_operation_lease(&tier_config_mgr, tier_name) + let lease = TierConfigMgr::acquire_operation_lease(tier_config_mgr, tier_name) .await .map_err(std::io::Error::other)?; delete_object_from_remote_tier_raw_with_lease(obj_name, rv_id, &lease, false, true).await diff --git a/crates/ecstore/src/services/tier/tier_admin.rs b/crates/ecstore/src/services/tier/tier_admin.rs index 32cd844a0..6c3bc1c4a 100644 --- a/crates/ecstore/src/services/tier/tier_admin.rs +++ b/crates/ecstore/src/services/tier/tier_admin.rs @@ -15,8 +15,6 @@ #![allow(unused_variables)] #![allow(unused_mut)] #![allow(unused_assignments)] -#![allow(unused_must_use)] -#![allow(clippy::all)] use serde::{Deserialize, Deserializer, Serialize, Serializer, de}; @@ -145,7 +143,7 @@ mod tests { assert_eq!(creds.access_key, "access"); assert_eq!(creds.secret_key, "secret"); - assert_eq!(creds.creds_json.as_slice(), &service_account[..]); + assert_eq!(creds.creds_json.as_slice(), service_account); let wire = serde_json::to_value(&creds).expect("madmin tier credentials should encode"); assert_eq!(wire["access"], "access"); @@ -162,7 +160,7 @@ mod tests { .expect("the former RustFS field names and byte-array encoding should remain readable"); assert_eq!(legacy.access_key, "legacy-access"); assert_eq!(legacy.secret_key, "legacy-secret"); - assert_eq!(legacy.creds_json.as_slice(), &service_account[..]); + assert_eq!(legacy.creds_json.as_slice(), service_account); } #[test] diff --git a/crates/ecstore/src/services/tier/warm_backend_aliyun.rs b/crates/ecstore/src/services/tier/warm_backend_aliyun.rs index 27fb7decd..f08c8fe2e 100644 --- a/crates/ecstore/src/services/tier/warm_backend_aliyun.rs +++ b/crates/ecstore/src/services/tier/warm_backend_aliyun.rs @@ -15,8 +15,6 @@ #![allow(unused_variables)] #![allow(unused_mut)] #![allow(unused_assignments)] -#![allow(unused_must_use)] -#![allow(clippy::all)] use std::collections::HashMap; diff --git a/crates/ecstore/src/services/tier/warm_backend_azure.rs b/crates/ecstore/src/services/tier/warm_backend_azure.rs index ed9ef0cf8..073501e65 100644 --- a/crates/ecstore/src/services/tier/warm_backend_azure.rs +++ b/crates/ecstore/src/services/tier/warm_backend_azure.rs @@ -15,8 +15,6 @@ #![allow(unused_variables)] #![allow(unused_mut)] #![allow(unused_assignments)] -#![allow(unused_must_use)] -#![allow(clippy::all)] use std::collections::HashMap; diff --git a/crates/ecstore/src/services/tier/warm_backend_gcs.rs b/crates/ecstore/src/services/tier/warm_backend_gcs.rs index 03c2df988..1aa6b538c 100644 --- a/crates/ecstore/src/services/tier/warm_backend_gcs.rs +++ b/crates/ecstore/src/services/tier/warm_backend_gcs.rs @@ -15,8 +15,6 @@ #![allow(unused_variables)] #![allow(unused_mut)] #![allow(unused_assignments)] -#![allow(unused_must_use)] -#![allow(clippy::all)] use std::collections::{HashMap, HashSet}; use std::future::Future; @@ -146,11 +144,11 @@ pub struct WarmBackendGCS { impl WarmBackendGCS { pub async fn new(conf: &TierGCS, tier: &str) -> Result { - if conf.creds == "" { + if conf.creds.is_empty() { return Err(std::io::Error::other("both access and secret keys are required")); } - if conf.bucket == "" { + if conf.bucket.is_empty() { return Err(std::io::Error::other("no bucket name was provided")); } @@ -195,11 +193,11 @@ impl WarmBackendGCS { } pub fn get_dest(&self, object: &str) -> String { - let mut dest_obj = object.to_string(); - if self.prefix != "" { - dest_obj = format!("{}/{}", &self.prefix, object); + if self.prefix.is_empty() { + object.to_string() + } else { + format!("{}/{}", self.prefix, object) } - return dest_obj; } } @@ -223,7 +221,7 @@ impl WarmBackend for WarmBackendGCS { let bucket = gcs_bucket_resource_name(&self.bucket); let Ok(res) = Box::pin( self.client - .write_object(&bucket, &self.get_dest(object), Bytes::from(d)) + .write_object(&bucket, self.get_dest(object), Bytes::from(d)) .send_buffered(), ) .await @@ -240,7 +238,7 @@ impl WarmBackend for WarmBackendGCS { async fn get(&self, object: &str, rv: &str, opts: WarmBackendGetOpts) -> Result { let bucket = gcs_bucket_resource_name(&self.bucket); - let mut req = self.client.read_object(&bucket, &self.get_dest(object)); + let mut req = self.client.read_object(&bucket, self.get_dest(object)); let mut max_response_bytes = None; if let Some(generation) = parse_generation(rv)? { req = req.set_generation(generation); diff --git a/crates/ecstore/src/services/tier/warm_backend_huaweicloud.rs b/crates/ecstore/src/services/tier/warm_backend_huaweicloud.rs index 73ced2cef..e626f6c9f 100644 --- a/crates/ecstore/src/services/tier/warm_backend_huaweicloud.rs +++ b/crates/ecstore/src/services/tier/warm_backend_huaweicloud.rs @@ -15,8 +15,6 @@ #![allow(unused_variables)] #![allow(unused_mut)] #![allow(unused_assignments)] -#![allow(unused_must_use)] -#![allow(clippy::all)] use std::collections::HashMap; diff --git a/crates/ecstore/src/services/tier/warm_backend_minio.rs b/crates/ecstore/src/services/tier/warm_backend_minio.rs index 020c2e319..6baef149b 100644 --- a/crates/ecstore/src/services/tier/warm_backend_minio.rs +++ b/crates/ecstore/src/services/tier/warm_backend_minio.rs @@ -15,8 +15,6 @@ #![allow(unused_variables)] #![allow(unused_mut)] #![allow(unused_assignments)] -#![allow(unused_must_use)] -#![allow(clippy::all)] use std::collections::HashMap; diff --git a/crates/ecstore/src/services/tier/warm_backend_r2.rs b/crates/ecstore/src/services/tier/warm_backend_r2.rs index 071ccefad..79a47d600 100644 --- a/crates/ecstore/src/services/tier/warm_backend_r2.rs +++ b/crates/ecstore/src/services/tier/warm_backend_r2.rs @@ -15,8 +15,6 @@ #![allow(unused_variables)] #![allow(unused_mut)] #![allow(unused_assignments)] -#![allow(unused_must_use)] -#![allow(clippy::all)] use std::collections::HashMap; diff --git a/crates/ecstore/src/services/tier/warm_backend_rustfs.rs b/crates/ecstore/src/services/tier/warm_backend_rustfs.rs index 32821c427..0bb19bcdf 100644 --- a/crates/ecstore/src/services/tier/warm_backend_rustfs.rs +++ b/crates/ecstore/src/services/tier/warm_backend_rustfs.rs @@ -15,8 +15,6 @@ #![allow(unused_variables)] #![allow(unused_mut)] #![allow(unused_assignments)] -#![allow(unused_must_use)] -#![allow(clippy::all)] use std::collections::HashMap; diff --git a/crates/ecstore/src/services/tier/warm_backend_tencent.rs b/crates/ecstore/src/services/tier/warm_backend_tencent.rs index 20eb7ee81..8045b3332 100644 --- a/crates/ecstore/src/services/tier/warm_backend_tencent.rs +++ b/crates/ecstore/src/services/tier/warm_backend_tencent.rs @@ -15,8 +15,6 @@ #![allow(unused_variables)] #![allow(unused_mut)] #![allow(unused_assignments)] -#![allow(unused_must_use)] -#![allow(clippy::all)] use std::collections::HashMap; diff --git a/scripts/ecstore-module-lint-register.txt b/scripts/ecstore-module-lint-register.txt index bf777b0f7..3bf9bd823 100644 --- a/scripts/ecstore-module-lint-register.txt +++ b/scripts/ecstore-module-lint-register.txt @@ -20,8 +20,6 @@ crates/ecstore/src/bucket/lifecycle/tier_last_day_stats.rs|clippy::all crates/ecstore/src/bucket/lifecycle/tier_last_day_stats.rs|unused_must_use crates/ecstore/src/bucket/lifecycle/tier_last_day_stats.rs|unused_variables -crates/ecstore/src/bucket/lifecycle/tier_sweeper.rs|clippy::all -crates/ecstore/src/bucket/lifecycle/tier_sweeper.rs|unused_must_use crates/ecstore/src/bucket/lifecycle/tier_sweeper.rs|unused_variables crates/s3-client/src/api_error_response.rs|clippy::all crates/s3-client/src/api_error_response.rs|unused_must_use @@ -74,36 +72,18 @@ crates/ecstore/src/services/event_notification.rs|unused_variables crates/ecstore/src/services/tier/tier.rs|clippy::all crates/ecstore/src/services/tier/tier.rs|unused_must_use crates/ecstore/src/services/tier/tier.rs|unused_variables -crates/ecstore/src/services/tier/tier_admin.rs|clippy::all -crates/ecstore/src/services/tier/tier_admin.rs|unused_must_use crates/ecstore/src/services/tier/tier_admin.rs|unused_variables crates/ecstore/src/services/tier/warm_backend.rs|clippy::all crates/ecstore/src/services/tier/warm_backend.rs|unused_must_use crates/ecstore/src/services/tier/warm_backend.rs|unused_variables -crates/ecstore/src/services/tier/warm_backend_aliyun.rs|clippy::all -crates/ecstore/src/services/tier/warm_backend_aliyun.rs|unused_must_use crates/ecstore/src/services/tier/warm_backend_aliyun.rs|unused_variables -crates/ecstore/src/services/tier/warm_backend_azure.rs|clippy::all -crates/ecstore/src/services/tier/warm_backend_azure.rs|unused_must_use crates/ecstore/src/services/tier/warm_backend_azure.rs|unused_variables -crates/ecstore/src/services/tier/warm_backend_gcs.rs|clippy::all -crates/ecstore/src/services/tier/warm_backend_gcs.rs|unused_must_use crates/ecstore/src/services/tier/warm_backend_gcs.rs|unused_variables -crates/ecstore/src/services/tier/warm_backend_huaweicloud.rs|clippy::all -crates/ecstore/src/services/tier/warm_backend_huaweicloud.rs|unused_must_use crates/ecstore/src/services/tier/warm_backend_huaweicloud.rs|unused_variables -crates/ecstore/src/services/tier/warm_backend_minio.rs|clippy::all -crates/ecstore/src/services/tier/warm_backend_minio.rs|unused_must_use crates/ecstore/src/services/tier/warm_backend_minio.rs|unused_variables -crates/ecstore/src/services/tier/warm_backend_r2.rs|clippy::all -crates/ecstore/src/services/tier/warm_backend_r2.rs|unused_must_use crates/ecstore/src/services/tier/warm_backend_r2.rs|unused_variables -crates/ecstore/src/services/tier/warm_backend_rustfs.rs|clippy::all -crates/ecstore/src/services/tier/warm_backend_rustfs.rs|unused_must_use crates/ecstore/src/services/tier/warm_backend_rustfs.rs|unused_variables crates/ecstore/src/services/tier/warm_backend_s3.rs|clippy::all crates/ecstore/src/services/tier/warm_backend_s3.rs|unused_must_use crates/ecstore/src/services/tier/warm_backend_s3.rs|unused_variables -crates/ecstore/src/services/tier/warm_backend_tencent.rs|clippy::all -crates/ecstore/src/services/tier/warm_backend_tencent.rs|unused_must_use crates/ecstore/src/services/tier/warm_backend_tencent.rs|unused_variables