mirror of
https://github.com/rustfs/rustfs.git
synced 2026-09-06 03:59:14 +00:00
chore(tier): remove stage-a blanket lint allowances (#7153)
Co-authored-by: Zhengchao An <anzhengchao@gmail.com>
This commit is contained in:
@@ -15,8 +15,6 @@
|
|||||||
#![allow(unused_variables)]
|
#![allow(unused_variables)]
|
||||||
#![allow(unused_mut)]
|
#![allow(unused_mut)]
|
||||||
#![allow(unused_assignments)]
|
#![allow(unused_assignments)]
|
||||||
#![allow(unused_must_use)]
|
|
||||||
#![allow(clippy::all)]
|
|
||||||
|
|
||||||
use super::runtime_boundary as runtime_sources;
|
use super::runtime_boundary as runtime_sources;
|
||||||
use crate::bucket::lifecycle::bucket_lifecycle_ops::ExpiryOp;
|
use crate::bucket::lifecycle::bucket_lifecycle_ops::ExpiryOp;
|
||||||
@@ -72,9 +70,11 @@ static REMOTE_DELETE_BREAKER: LazyLock<Mutex<RemoteDeleteBreaker>> = LazyLock::n
|
|||||||
});
|
});
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
static REMOTE_TIER_DELETE_TEST_HOOK: std::sync::LazyLock<
|
type RemoteTierDeleteTestHook = Box<dyn Fn(&str, &str, &str) -> std::io::Result<()> + Send + Sync>;
|
||||||
std::sync::Mutex<Option<Box<dyn Fn(&str, &str, &str) -> std::io::Result<()> + Send + Sync>>>,
|
|
||||||
> = std::sync::LazyLock::new(|| std::sync::Mutex::new(None));
|
#[cfg(test)]
|
||||||
|
static REMOTE_TIER_DELETE_TEST_HOOK: std::sync::LazyLock<std::sync::Mutex<Option<RemoteTierDeleteTestHook>>> =
|
||||||
|
std::sync::LazyLock::new(|| std::sync::Mutex::new(None));
|
||||||
|
|
||||||
#[derive(Debug)]
|
#[derive(Debug)]
|
||||||
struct RemoteDeleteBreaker {
|
struct RemoteDeleteBreaker {
|
||||||
@@ -107,7 +107,7 @@ impl RemoteDeleteBreaker {
|
|||||||
fn prune(&mut self, now: Instant) {
|
fn prune(&mut self, now: Instant) {
|
||||||
while let Some(ts) = self.failures.front().copied() {
|
while let Some(ts) = self.failures.front().copied() {
|
||||||
if now.duration_since(ts) > self.window {
|
if now.duration_since(ts) > self.window {
|
||||||
self.failures.pop_front();
|
let _ = self.failures.pop_front();
|
||||||
} else {
|
} else {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
@@ -137,10 +137,10 @@ fn is_signer_header_error(err: &std::io::Error) -> bool {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if let Some(source) = err.get_ref() {
|
if let Some(source) = err.get_ref()
|
||||||
if error_chain_contains_signer_header_marker(source) {
|
&& error_chain_contains_signer_header_marker(source)
|
||||||
return true;
|
{
|
||||||
}
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
let message = err.to_string().to_ascii_lowercase();
|
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)")]
|
#[allow(dead_code, reason = "MinIO-parity surface with no caller in this port (backlog#1823)")]
|
||||||
pub fn with_version(&mut self, vid: Option<Uuid>) -> &Self {
|
pub fn with_version(&mut self, vid: Option<Uuid>) -> &Self {
|
||||||
self.version_id = vid.clone();
|
self.version_id = vid;
|
||||||
self
|
self
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -219,7 +219,7 @@ impl ObjSweeper {
|
|||||||
#[allow(dead_code, reason = "MinIO-parity surface with no caller in this port (backlog#1823)")]
|
#[allow(dead_code, reason = "MinIO-parity surface with no caller in this port (backlog#1823)")]
|
||||||
pub fn get_opts(&self) -> lifecycle::ObjectOpts {
|
pub fn get_opts(&self) -> lifecycle::ObjectOpts {
|
||||||
let mut opts = ObjectOpts {
|
let mut opts = ObjectOpts {
|
||||||
version_id: self.version_id.clone(),
|
version_id: self.version_id,
|
||||||
versioned: self.versioned,
|
versioned: self.versioned,
|
||||||
version_suspended: self.suspended,
|
version_suspended: self.suspended,
|
||||||
..Default::default()
|
..Default::default()
|
||||||
@@ -388,8 +388,8 @@ impl Jentry {
|
|||||||
impl ExpiryOp for Jentry {
|
impl ExpiryOp for Jentry {
|
||||||
fn op_hash(&self) -> u64 {
|
fn op_hash(&self) -> u64 {
|
||||||
let mut hasher = Sha256::new();
|
let mut hasher = Sha256::new();
|
||||||
hasher.update(format!("{}", self.tier_name).as_bytes());
|
hasher.update(self.tier_name.as_bytes());
|
||||||
hasher.update(format!("{}", self.obj_name).as_bytes());
|
hasher.update(self.obj_name.as_bytes());
|
||||||
xxh64::xxh64(hasher.finalize().as_slice(), XXHASH_SEED)
|
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_name: &str,
|
||||||
tier_config_mgr: &Arc<tokio::sync::RwLock<TierConfigMgr>>,
|
tier_config_mgr: &Arc<tokio::sync::RwLock<TierConfigMgr>>,
|
||||||
) -> Result<(), std::io::Error> {
|
) -> 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
|
.await
|
||||||
.map_err(std::io::Error::other)?;
|
.map_err(std::io::Error::other)?;
|
||||||
delete_object_from_remote_tier_raw_with_lease(obj_name, rv_id, &lease, false, true).await
|
delete_object_from_remote_tier_raw_with_lease(obj_name, rv_id, &lease, false, true).await
|
||||||
|
|||||||
@@ -15,8 +15,6 @@
|
|||||||
#![allow(unused_variables)]
|
#![allow(unused_variables)]
|
||||||
#![allow(unused_mut)]
|
#![allow(unused_mut)]
|
||||||
#![allow(unused_assignments)]
|
#![allow(unused_assignments)]
|
||||||
#![allow(unused_must_use)]
|
|
||||||
#![allow(clippy::all)]
|
|
||||||
|
|
||||||
use serde::{Deserialize, Deserializer, Serialize, Serializer, de};
|
use serde::{Deserialize, Deserializer, Serialize, Serializer, de};
|
||||||
|
|
||||||
@@ -145,7 +143,7 @@ mod tests {
|
|||||||
|
|
||||||
assert_eq!(creds.access_key, "access");
|
assert_eq!(creds.access_key, "access");
|
||||||
assert_eq!(creds.secret_key, "secret");
|
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");
|
let wire = serde_json::to_value(&creds).expect("madmin tier credentials should encode");
|
||||||
assert_eq!(wire["access"], "access");
|
assert_eq!(wire["access"], "access");
|
||||||
@@ -162,7 +160,7 @@ mod tests {
|
|||||||
.expect("the former RustFS field names and byte-array encoding should remain readable");
|
.expect("the former RustFS field names and byte-array encoding should remain readable");
|
||||||
assert_eq!(legacy.access_key, "legacy-access");
|
assert_eq!(legacy.access_key, "legacy-access");
|
||||||
assert_eq!(legacy.secret_key, "legacy-secret");
|
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]
|
#[test]
|
||||||
|
|||||||
@@ -15,8 +15,6 @@
|
|||||||
#![allow(unused_variables)]
|
#![allow(unused_variables)]
|
||||||
#![allow(unused_mut)]
|
#![allow(unused_mut)]
|
||||||
#![allow(unused_assignments)]
|
#![allow(unused_assignments)]
|
||||||
#![allow(unused_must_use)]
|
|
||||||
#![allow(clippy::all)]
|
|
||||||
|
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
|
|
||||||
|
|||||||
@@ -15,8 +15,6 @@
|
|||||||
#![allow(unused_variables)]
|
#![allow(unused_variables)]
|
||||||
#![allow(unused_mut)]
|
#![allow(unused_mut)]
|
||||||
#![allow(unused_assignments)]
|
#![allow(unused_assignments)]
|
||||||
#![allow(unused_must_use)]
|
|
||||||
#![allow(clippy::all)]
|
|
||||||
|
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
|
|
||||||
|
|||||||
@@ -15,8 +15,6 @@
|
|||||||
#![allow(unused_variables)]
|
#![allow(unused_variables)]
|
||||||
#![allow(unused_mut)]
|
#![allow(unused_mut)]
|
||||||
#![allow(unused_assignments)]
|
#![allow(unused_assignments)]
|
||||||
#![allow(unused_must_use)]
|
|
||||||
#![allow(clippy::all)]
|
|
||||||
|
|
||||||
use std::collections::{HashMap, HashSet};
|
use std::collections::{HashMap, HashSet};
|
||||||
use std::future::Future;
|
use std::future::Future;
|
||||||
@@ -146,11 +144,11 @@ pub struct WarmBackendGCS {
|
|||||||
|
|
||||||
impl WarmBackendGCS {
|
impl WarmBackendGCS {
|
||||||
pub async fn new(conf: &TierGCS, tier: &str) -> Result<Self, std::io::Error> {
|
pub async fn new(conf: &TierGCS, tier: &str) -> Result<Self, std::io::Error> {
|
||||||
if conf.creds == "" {
|
if conf.creds.is_empty() {
|
||||||
return Err(std::io::Error::other("both access and secret keys are required"));
|
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"));
|
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 {
|
pub fn get_dest(&self, object: &str) -> String {
|
||||||
let mut dest_obj = object.to_string();
|
if self.prefix.is_empty() {
|
||||||
if self.prefix != "" {
|
object.to_string()
|
||||||
dest_obj = format!("{}/{}", &self.prefix, object);
|
} 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 bucket = gcs_bucket_resource_name(&self.bucket);
|
||||||
let Ok(res) = Box::pin(
|
let Ok(res) = Box::pin(
|
||||||
self.client
|
self.client
|
||||||
.write_object(&bucket, &self.get_dest(object), Bytes::from(d))
|
.write_object(&bucket, self.get_dest(object), Bytes::from(d))
|
||||||
.send_buffered(),
|
.send_buffered(),
|
||||||
)
|
)
|
||||||
.await
|
.await
|
||||||
@@ -240,7 +238,7 @@ impl WarmBackend for WarmBackendGCS {
|
|||||||
|
|
||||||
async fn get(&self, object: &str, rv: &str, opts: WarmBackendGetOpts) -> Result<ReadCloser, std::io::Error> {
|
async fn get(&self, object: &str, rv: &str, opts: WarmBackendGetOpts) -> Result<ReadCloser, std::io::Error> {
|
||||||
let bucket = gcs_bucket_resource_name(&self.bucket);
|
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;
|
let mut max_response_bytes = None;
|
||||||
if let Some(generation) = parse_generation(rv)? {
|
if let Some(generation) = parse_generation(rv)? {
|
||||||
req = req.set_generation(generation);
|
req = req.set_generation(generation);
|
||||||
|
|||||||
@@ -15,8 +15,6 @@
|
|||||||
#![allow(unused_variables)]
|
#![allow(unused_variables)]
|
||||||
#![allow(unused_mut)]
|
#![allow(unused_mut)]
|
||||||
#![allow(unused_assignments)]
|
#![allow(unused_assignments)]
|
||||||
#![allow(unused_must_use)]
|
|
||||||
#![allow(clippy::all)]
|
|
||||||
|
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
|
|
||||||
|
|||||||
@@ -15,8 +15,6 @@
|
|||||||
#![allow(unused_variables)]
|
#![allow(unused_variables)]
|
||||||
#![allow(unused_mut)]
|
#![allow(unused_mut)]
|
||||||
#![allow(unused_assignments)]
|
#![allow(unused_assignments)]
|
||||||
#![allow(unused_must_use)]
|
|
||||||
#![allow(clippy::all)]
|
|
||||||
|
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
|
|
||||||
|
|||||||
@@ -15,8 +15,6 @@
|
|||||||
#![allow(unused_variables)]
|
#![allow(unused_variables)]
|
||||||
#![allow(unused_mut)]
|
#![allow(unused_mut)]
|
||||||
#![allow(unused_assignments)]
|
#![allow(unused_assignments)]
|
||||||
#![allow(unused_must_use)]
|
|
||||||
#![allow(clippy::all)]
|
|
||||||
|
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
|
|
||||||
|
|||||||
@@ -15,8 +15,6 @@
|
|||||||
#![allow(unused_variables)]
|
#![allow(unused_variables)]
|
||||||
#![allow(unused_mut)]
|
#![allow(unused_mut)]
|
||||||
#![allow(unused_assignments)]
|
#![allow(unused_assignments)]
|
||||||
#![allow(unused_must_use)]
|
|
||||||
#![allow(clippy::all)]
|
|
||||||
|
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
|
|
||||||
|
|||||||
@@ -15,8 +15,6 @@
|
|||||||
#![allow(unused_variables)]
|
#![allow(unused_variables)]
|
||||||
#![allow(unused_mut)]
|
#![allow(unused_mut)]
|
||||||
#![allow(unused_assignments)]
|
#![allow(unused_assignments)]
|
||||||
#![allow(unused_must_use)]
|
|
||||||
#![allow(clippy::all)]
|
|
||||||
|
|
||||||
use std::collections::HashMap;
|
use std::collections::HashMap;
|
||||||
|
|
||||||
|
|||||||
@@ -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|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_must_use
|
||||||
crates/ecstore/src/bucket/lifecycle/tier_last_day_stats.rs|unused_variables
|
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/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|clippy::all
|
||||||
crates/s3-client/src/api_error_response.rs|unused_must_use
|
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|clippy::all
|
||||||
crates/ecstore/src/services/tier/tier.rs|unused_must_use
|
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.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/tier_admin.rs|unused_variables
|
||||||
crates/ecstore/src/services/tier/warm_backend.rs|clippy::all
|
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_must_use
|
||||||
crates/ecstore/src/services/tier/warm_backend.rs|unused_variables
|
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_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_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_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_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_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_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_rustfs.rs|unused_variables
|
||||||
crates/ecstore/src/services/tier/warm_backend_s3.rs|clippy::all
|
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_must_use
|
||||||
crates/ecstore/src/services/tier/warm_backend_s3.rs|unused_variables
|
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
|
crates/ecstore/src/services/tier/warm_backend_tencent.rs|unused_variables
|
||||||
|
|||||||
Reference in New Issue
Block a user