From cfb2b1567bc3541db20bd6c9f1e6142b59d43003 Mon Sep 17 00:00:00 2001 From: heqingpan Date: Tue, 8 Oct 2024 01:22:20 +0800 Subject: [PATCH] fix cargo clippy --- Cargo.toml | 1 + src/common/mod.rs | 9 ++++--- src/console/api.rs | 3 --- src/console/config_api.rs | 2 +- src/console/mod.rs | 6 +---- src/console/transfer_api.rs | 5 ++-- src/console/v2/namespace_api.rs | 2 -- src/namespace/mod.rs | 11 ++++---- src/openapi/config/api.rs | 3 +-- src/raft/db/table.rs | 2 +- src/raft/filestore/raftapply.rs | 3 +-- src/raft/filestore/raftindex.rs | 8 +----- src/raft/store/mod.rs | 1 - src/transfer/reader.rs | 47 ++++++++++++++++++--------------- src/transfer/writer.rs | 7 ++--- 15 files changed, 48 insertions(+), 62 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index fa31d659..3a0a1cd0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -114,6 +114,7 @@ bcrypt = "0.15" [target.'cfg(any(target_os = "linux", target_os = "macos", target_os="windows"))'.dependencies] fs2 = "0.4.3" +dirs = "5.0" [dependencies.uuid] version = "1.2.1" diff --git a/src/common/mod.rs b/src/common/mod.rs index 7f51cb60..e997b920 100644 --- a/src/common/mod.rs +++ b/src/common/mod.rs @@ -1,5 +1,4 @@ use crate::common::string_utils::StringUtils; -use std::env; use std::sync::Arc; use uuid::Uuid; @@ -33,6 +32,8 @@ lazy_static! { } */ +const DEFAULT_DB_PATH: &str = "nacos_db"; + #[derive(Default, Clone, Debug)] pub struct NamingSysConfig { pub once_time_check_size: usize, @@ -233,17 +234,17 @@ impl AppSysConfig { v } else if run_in_docker { // 运行在docker,默认值保持一致 - "nacos_db".to_owned() + DEFAULT_DB_PATH.to_owned() } else { #[cfg(any(target_os = "linux", target_os = "macos"))] { - if let Some(mut home) = env::home_dir() { + if let Some(mut home) = dirs::home_dir() { home.push(".local/share/r-nacos/nacos_db"); return home.to_string_lossy().to_string(); } } // windows系统默认值保持一致 - "nacos_db".to_owned() + DEFAULT_DB_PATH.to_owned() } } diff --git a/src/console/api.rs b/src/console/api.rs index 4755bbe9..e1f6976b 100644 --- a/src/console/api.rs +++ b/src/console/api.rs @@ -2,15 +2,12 @@ use std::sync::Arc; use crate::common::appdata::AppShareData; use crate::common::string_utils::StringUtils; -use crate::config::core::ConfigActor; -use actix::prelude::*; use actix_web::{http::header, web, HttpResponse, Responder}; use uuid::Uuid; use crate::naming::ops::ops_api::query_opt_service_list; use crate::openapi::naming::instance::{del_instance, get_instance, update_instance}; use crate::openapi::naming::service::{query_service, remove_service, update_service}; -//use crate::console::raft_api::{raft_add_learner, raft_change_membership, raft_init, raft_metrics, raft_read, raft_write}; use super::cluster_api::query_cluster_info; use super::config_api::query_config_list; diff --git a/src/console/config_api.rs b/src/console/config_api.rs index 8fe70eea..92fe1b30 100644 --- a/src/console/config_api.rs +++ b/src/console/config_api.rs @@ -165,7 +165,7 @@ fn zip_file(mut zip: ZipWriter<&mut File>, list: Vec) -> anyhow:: .compression_method(zip::CompressionMethod::Stored) .unix_permissions(0o755); zip.start_file( - &format!("{}/{}", &item.group.as_str(), &item.data_id.as_str()), + format!("{}/{}", &item.group.as_str(), &item.data_id.as_str()), options, )?; zip.write_all(item.content.as_ref().unwrap().as_bytes())?; diff --git a/src/console/mod.rs b/src/console/mod.rs index ee7a7699..3d4e1a61 100644 --- a/src/console/mod.rs +++ b/src/console/mod.rs @@ -80,11 +80,7 @@ impl NamespaceUtilsOld { if namespace_str.is_empty() { return vec![]; } - if let Ok(namespaces) = serde_json::from_str::>(&namespace_str) { - namespaces - } else { - vec![] - } + serde_json::from_str::>(&namespace_str).unwrap_or_default() } pub async fn save_namespace( diff --git a/src/console/transfer_api.rs b/src/console/transfer_api.rs index 9365b3c8..a3e64c15 100644 --- a/src/console/transfer_api.rs +++ b/src/console/transfer_api.rs @@ -1,9 +1,8 @@ use crate::common::appdata::AppShareData; -use crate::config::ConfigUtils; use crate::console::config_api::UploadForm; use crate::now_millis; use crate::transfer::model::{ - TransferBackupParam, TransferImportParam, TransferImportRequest, TransferImportResponse, + TransferBackupParam, TransferImportParam, TransferImportResponse, TransferManagerAsyncRequest, TransferManagerResponse, }; use actix_multipart::form::MultipartForm; @@ -34,7 +33,7 @@ pub async fn download_transfer_file( let mut buf = vec![]; tmpfile.read_to_end(&mut buf).await.ok(); - let filename = format!("rnacos_export_{}.bak", now_millis()); + let filename = format!("rnacos_export_{}.data", now_millis()); HttpResponse::Ok() .insert_header(header::ContentType::octet_stream()) .insert_header(header::ContentDisposition::attachment(filename)) diff --git a/src/console/v2/namespace_api.rs b/src/console/v2/namespace_api.rs index c7813b48..4b5e64c0 100644 --- a/src/console/v2/namespace_api.rs +++ b/src/console/v2/namespace_api.rs @@ -1,10 +1,8 @@ use crate::common::appdata::AppShareData; use crate::common::model::ApiResult; use crate::common::string_utils::StringUtils; -use crate::config::core::ConfigActor; use crate::console::model::NamespaceInfo; use crate::console::NamespaceUtils; -//use actix::Addr; use actix_web::{web, HttpResponse, Responder}; use std::sync::Arc; use uuid::Uuid; diff --git a/src/namespace/mod.rs b/src/namespace/mod.rs index 613a2d30..f89a30ba 100644 --- a/src/namespace/mod.rs +++ b/src/namespace/mod.rs @@ -1,13 +1,10 @@ pub mod model; -use crate::common::byte_utils::id_to_bin; use crate::common::constant::{ - CONFIG_TREE_NAME, EMPTY_ARC_STRING, NAMESPACE_TREE_NAME, SEQUENCE_TREE_NAME, SEQ_KEY_CONFIG, + EMPTY_ARC_STRING, NAMESPACE_TREE_NAME, }; use crate::common::string_utils::StringUtils; use crate::config::core::ConfigActor; -use crate::config::model::ConfigValueDO; -use crate::console::model::NamespaceInfo; use crate::console::NamespaceUtilsOld; use crate::namespace::model::{ Namespace, NamespaceDO, NamespaceParam, NamespaceQueryReq, NamespaceQueryResult, @@ -113,8 +110,10 @@ impl NamespaceActor { if only_add { return; } - let mut value = Namespace::default(); - value.namespace_id = param.namespace_id; + let mut value = Namespace{ + namespace_id: param.namespace_id, + ..Namespace::default() + }; value.namespace_name = if let Some(name) = param.namespace_name { name } else { diff --git a/src/openapi/config/api.rs b/src/openapi/config/api.rs index d4522b1b..69c9a009 100644 --- a/src/openapi/config/api.rs +++ b/src/openapi/config/api.rs @@ -1,4 +1,3 @@ -use std::cmp::{max, min}; use std::collections::HashMap; use std::sync::Arc; @@ -389,7 +388,7 @@ pub(super) async fn listener_config( if let Some(_timeout) = _req.headers().get("Long-Pulling-Timeout") { match _timeout.to_str().unwrap().parse::() { Ok(v) => { - time_out = current_time + min(max(10000, v), 120000) - 500; + time_out = current_time + v.clamp(10000, 120000) - 500; } Err(_) => { time_out = 0; diff --git a/src/raft/db/table.rs b/src/raft/db/table.rs index 909e1292..b4317a66 100644 --- a/src/raft/db/table.rs +++ b/src/raft/db/table.rs @@ -10,7 +10,7 @@ use serde::{Deserialize, Serialize}; use actix::prelude::*; -use crate::common::constant::{CACHE_TREE_NAME, NAMESPACE_TREE_NAME, USER_TREE_NAME}; +use crate::common::constant::{CACHE_TREE_NAME, USER_TREE_NAME}; use crate::common::sequence_utils::SimpleSequence; use crate::raft::filestore::model::SnapshotRecordDto; use crate::raft::filestore::raftsnapshot::{SnapshotWriterActor, SnapshotWriterRequest}; diff --git a/src/raft/filestore/raftapply.rs b/src/raft/filestore/raftapply.rs index a24d3b97..5a94d629 100644 --- a/src/raft/filestore/raftapply.rs +++ b/src/raft/filestore/raftapply.rs @@ -5,7 +5,7 @@ use super::{ log::SnapshotRange, model::{ApplyRequestDto, LogRecordLoader, MemberShip, SnapshotHeaderDto}, raftindex::{RaftIndexManager, RaftIndexRequest, RaftIndexResponse}, - raftlog::{RaftLogManager, RaftLogManagerAsyncRequest, RaftLogManagerRequest}, + raftlog::{RaftLogManager, RaftLogManagerAsyncRequest}, raftsnapshot::{ RaftSnapshotManager, RaftSnapshotRequest, RaftSnapshotResponse, SnapshotReader, }, @@ -18,7 +18,6 @@ use crate::common::constant::{ }; use crate::config::core::{ConfigCmd, ConfigKey, ConfigValue}; use crate::config::model::{ConfigRaftCmd, ConfigValueDO}; -use crate::namespace::model::{NamespaceParam, NamespaceRaftReq}; use crate::raft::db::table::{TableManagerInnerReq, TableManagerReq}; use crate::raft::filestore::model::SnapshotRecordDto; use crate::raft::filestore::raftdata::RaftDataWrap; diff --git a/src/raft/filestore/raftindex.rs b/src/raft/filestore/raftindex.rs index de63bee2..bc4ccb20 100644 --- a/src/raft/filestore/raftindex.rs +++ b/src/raft/filestore/raftindex.rs @@ -137,13 +137,7 @@ impl RaftIndexManager { #[cfg(all(not(miri), any(windows, target_os = "linux", target_os = "macos")))] { use fs2::FileExt; - - let try_lock = if cfg!(any(feature = "testing", feature = "light_testing")) { - file.lock_exclusive() - } else { - file.try_lock_exclusive() - }; - if try_lock.is_err() { + if file.try_lock_exclusive().is_err() { log::error!("try lock db error,path:{}", &path); return Err(anyhow::anyhow!("try lock db error,path:{}", &path)); } diff --git a/src/raft/store/mod.rs b/src/raft/store/mod.rs index 3ef9b1a1..102083f1 100644 --- a/src/raft/store/mod.rs +++ b/src/raft/store/mod.rs @@ -4,7 +4,6 @@ use std::sync::Arc; use super::db::table::TableManagerReq; -use crate::config::core::{ConfigKey, ConfigValue}; use crate::namespace::model::NamespaceRaftReq; use async_raft_ext::AppData; use async_raft_ext::AppDataResponse; diff --git a/src/transfer/reader.rs b/src/transfer/reader.rs index 6e9d0dac..85502d82 100644 --- a/src/transfer/reader.rs +++ b/src/transfer/reader.rs @@ -4,30 +4,28 @@ use crate::common::constant::{ use crate::common::pb::transfer::{TransferHeader, TransferItem}; use crate::common::protobuf_utils::MessageBufReader; use crate::common::sequence_utils::CacheSequence; -use crate::config::core::{ConfigActor, ConfigCmd, ConfigKey, ConfigResult, ConfigValue}; +use crate::config::core::{ConfigActor, ConfigCmd, ConfigResult, ConfigValue}; use crate::config::model::ConfigValueDO; use crate::namespace::model::{Namespace, NamespaceDO, NamespaceParam, NamespaceRaftReq}; -use crate::now_millis_i64; use crate::raft::db::table::TableManagerReq; use crate::raft::filestore::raftdata::RaftDataWrap; use crate::raft::store::ClientRequest; use crate::raft::NacosRaft; use crate::transfer::model::{ TransferHeaderDto, TransferImportParam, TransferImportRequest, TransferImportResponse, - TransferPrefix, TransferRecordDto, TransferRecordRef, + TransferPrefix, TransferRecordRef, }; use actix::prelude::*; -use anyhow::anyhow; use async_raft_ext::raft::ClientWriteRequest; use bean_factory::{bean, BeanFactory, FactoryData, Inject}; use binrw::BinReaderExt; use quick_protobuf::BytesReader; -use std::io::{BufReader, Cursor}; -use std::sync::{Arc, Weak}; +use std::io::Cursor; +use std::sync::Arc; pub struct TransferReader { message_reader: MessageBufReader, - prefix: TransferPrefix, + //prefix: TransferPrefix, header: TransferHeaderDto, } @@ -48,7 +46,7 @@ impl TransferReader { }; Ok(Self { message_reader, - prefix, + //prefix, header, }) } @@ -102,8 +100,7 @@ impl ConfigCacheSequence { pub async fn next_state(&mut self) -> anyhow::Result<(u64, Option)> { if let Some(next_id) = self.seq.next_id() { Ok((next_id, None)) - } else { - if let ConfigResult::SequenceSection { start, end } = self + } else if let ConfigResult::SequenceSection { start, end } = self .config .send(ConfigCmd::GetSequenceSection(100)) .await?? @@ -113,7 +110,7 @@ impl ConfigCacheSequence { } else { Err(anyhow::anyhow!("config result is error")) } - } + } } @@ -124,6 +121,13 @@ pub struct TransferImportManager { importing: bool, } +impl Default for TransferImportManager { + fn default() -> Self { + Self::new() + } +} + + impl TransferImportManager { pub fn new() -> Self { Self { @@ -139,7 +143,7 @@ impl TransferImportManager { raft: Option>, data_wrap: Option>, ) -> anyhow::Result<()> { - if let (Some(raft), Some(data_wrap)) = (raft, data_wrap) { + if let (Some(raft), Some(data_wrap)) = (&raft, data_wrap) { let mut count = 0; let mut ignore = 0; let mut reader = TransferReader::new(data)?; @@ -147,14 +151,13 @@ impl TransferImportManager { while let Ok(Some(record)) = reader.read_record() { count += 1; if param.config && record.table_name.as_str() == CONFIG_TREE_NAME.as_str() { - Self::apply_config(&raft, &mut config_seq, record).await?; + Self::apply_config(raft, &mut config_seq, record).await?; } else if param.config && record.table_name.as_str() == NAMESPACE_TREE_NAME.as_str() { - Self::apply_namespace(&raft, record).await?; - } else if param.user && record.table_name.as_str() == USER_TREE_NAME.as_str() { - Self::apply_table(&raft, record).await?; - } else if param.cache && record.table_name.as_str() == CACHE_TREE_NAME.as_str() { - Self::apply_table(&raft, record).await?; + Self::apply_namespace(raft, record).await?; + } else if ( param.user && record.table_name.as_str() == USER_TREE_NAME.as_str() ) || + (param.cache && record.table_name.as_str() == CACHE_TREE_NAME.as_str()) { + Self::apply_table(raft, record).await?; } else { ignore += 1; } @@ -175,7 +178,7 @@ impl TransferImportManager { last_seq_id: None, }; let req = ClientRequest::TableManagerReq(table_req); - Self::send_raft_request(&raft, req).await?; + Self::send_raft_request(raft, req).await?; Ok(()) } @@ -191,7 +194,7 @@ impl TransferImportManager { r#type: Some(value.r#type), }; let req = ClientRequest::NamespaceReq(NamespaceRaftReq::Update(param)); - Self::send_raft_request(&raft, req).await?; + Self::send_raft_request(raft, req).await?; Ok(()) } @@ -216,7 +219,7 @@ impl TransferImportManager { value: save_do.to_bytes()?, last_seq_id: update_last_id, }; - Self::send_raft_request(&raft, req).await?; + Self::send_raft_request(raft, req).await?; Ok(()) } @@ -250,7 +253,7 @@ impl TransferImportManager { impl Actor for TransferImportManager { type Context = Context; - fn started(&mut self, ctx: &mut Self::Context) { + fn started(&mut self, _ctx: &mut Self::Context) { log::info!("TransferReaderManager started"); } } diff --git a/src/transfer/writer.rs b/src/transfer/writer.rs index 70a1921f..abbd0a16 100644 --- a/src/transfer/writer.rs +++ b/src/transfer/writer.rs @@ -1,3 +1,4 @@ +#![allow(clippy::suspicious_open_options)] use crate::common::constant::{ CACHE_TREE_NAME, CONFIG_TREE_NAME, EMPTY_STR, NAMESPACE_TREE_NAME, SEQUENCE_TREE_NAME, USER_TREE_NAME, @@ -194,7 +195,7 @@ impl TransferWriterManager { fn build_writer_actor(&self) -> Addr { let mut path = self.tmp_dir.clone(); - path.push(format!("{}.bak", Uuid::new_v4().simple().to_string())); + path.push(format!("{}.data", Uuid::new_v4().simple())); let writer_actor = TransferWriterActor::new(path, self.version).start(); writer_actor.do_send(TransferWriterRequest::AddTableNameMap( CONFIG_TREE_NAME.clone(), @@ -258,7 +259,7 @@ impl TransferWriterManager { impl Actor for TransferWriterManager { type Context = Context; - fn started(&mut self, ctx: &mut Self::Context) { + fn started(&mut self, _ctx: &mut Self::Context) { log::info!("TransferWriterManager started"); } } @@ -294,7 +295,7 @@ impl Handler for TransferWriterManager { } } .into_actor(self) - .map(|r, act, _ctx| { + .map(|r, _act, _ctx| { let path = r?; Ok(TransferManagerResponse::BackupFile(TempFile::new(path))) });