diff --git a/crates/ecstore/src/bucket/metadata.rs b/crates/ecstore/src/bucket/metadata.rs index 6aef5b8bf..32b3fb35f 100644 --- a/crates/ecstore/src/bucket/metadata.rs +++ b/crates/ecstore/src/bucket/metadata.rs @@ -1311,7 +1311,7 @@ mod test { assert!(bm.object_locking(), "object lock active via parsed config"); } - /// backlog#580: KNOWN GAP (weisd 2026-03-06 "inline_data 前缀不同"). RustFS's + /// backlog#580: KNOWN GAP (flagged 2026-03-06: "inline_data 前缀不同"). RustFS's /// inline-data extraction does not yet recover the object body from a /// MinIO-written bucket-metadata object: `into_fileinfo(read_data=true).data` /// returns bytes that are not the `.metadata.bin` blob (no `format|version` @@ -1319,7 +1319,7 @@ mod test { /// inline-data framing is handled on the read path. /// backlog#580: prove RustFS reads a MinIO-written **inlined** bucket-metadata /// object end-to-end. MinIO stores inline data as `[bitrot hash][object body]` - /// (the "`inline_data` 前缀不同" that weisd flagged on 2026-03-06 is that + /// (the "`inline_data` 前缀不同" gap flagged on 2026-03-06 is that /// bitrot prefix, not a format incompatibility). Running the raw inline shard /// through RustFS's `BitrotReader` with the default `HighwayHash256S` must /// verify the checksum and yield the exact `.metadata.bin` blob. diff --git a/crates/ecstore/src/store/list_objects.rs b/crates/ecstore/src/store/list_objects.rs index 66fcef7c7..b1c8c24fa 100644 --- a/crates/ecstore/src/store/list_objects.rs +++ b/crates/ecstore/src/store/list_objects.rs @@ -9529,294 +9529,6 @@ mod test { .expect("a partial outage with a healthy set must not fail the walk"); } - // use std::sync::Arc; - - // use crate::cache_value::metacache_set::list_path_raw; - // use crate::cache_value::metacache_set::ListPathRawOptions; - // use crate::disk::endpoint::Endpoint; - // use crate::disk::error::is_err_eof; - // use crate::disk::format::FormatV3; - // use crate::disk::new_disk; - // use crate::disk::DiskAPI; - // use crate::disk::DiskOption; - // use crate::disk::MetaCacheEntries; - // use crate::disk::MetaCacheEntry; - // use crate::disk::WalkDirOptions; - // use crate::layout::endpoints::EndpointServerPools; - // use crate::error::Error; - // use crate::metacache::writer::MetacacheReader; - // use crate::set_disk::SetDisks; - // use crate::store::list_objects::ListPathOptions; - // use crate::store::list_objects::WalkOptions; - // use crate::store::list_objects::WalkVersionsSortOrder; - // use futures::future::join_all; - // use rustfs_lock::namespace_lock::NsLockMap; - // use tokio::sync::broadcast; - // use tokio::sync::mpsc; - // use tokio::sync::RwLock; - // use uuid::Uuid; - - // #[tokio::test] - // async fn test_walk_dir() { - // let mut ep = Endpoint::try_from("/Users/weisd/project/weisd/s3-rustfs/target/volume/test").unwrap(); - // ep.pool_idx = 0; - // ep.set_idx = 0; - // ep.disk_idx = 0; - // ep.is_local = true; - - // let disk = new_disk(&ep, &DiskOption::default()).await.expect("init disk fail"); - - // // let disk = match LocalDisk::new(&ep, false).await { - // // Ok(res) => res, - // // Err(err) => { - // // println!("LocalDisk::new err {:?}", err); - // // return; - // // } - // // }; - - // let (rd, mut wr) = tokio::io::duplex(64); - - // let job = tokio::spawn(async move { - // let opts = WalkDirOptions { - // bucket: "dada".to_owned(), - // base_dir: "".to_owned(), - // recursive: true, - // ..Default::default() - // }; - - // println!("walk opts {:?}", opts); - // if let Err(err) = disk.walk_dir(opts, &mut wr).await { - // println!("walk_dir err {:?}", err); - // } - // }); - - // let job2 = tokio::spawn(async move { - // let mut mrd = MetacacheReader::new(rd); - - // loop { - // match mrd.peek().await { - // Ok(res) => { - // if let Some(info) = res { - // println!("info {:?}", info.name) - // } else { - // break; - // } - // } - // Err(err) => { - // if is_err_eof(&err) { - // break; - // } - - // println!("get err {:?}", err); - // break; - // } - // } - // } - // }); - // join_all(vec![job, job2]).await; - // } - - // #[tokio::test] - // async fn test_list_path_raw() { - // let mut ep = Endpoint::try_from("/Users/weisd/project/weisd/s3-rustfs/target/volume/test").unwrap(); - // ep.pool_idx = 0; - // ep.set_idx = 0; - // ep.disk_idx = 0; - // ep.is_local = true; - - // let disk = new_disk(&ep, &DiskOption::default()).await.expect("init disk fail"); - - // // let disk = match LocalDisk::new(&ep, false).await { - // // Ok(res) => res, - // // Err(err) => { - // // println!("LocalDisk::new err {:?}", err); - // // return; - // // } - // // }; - - // let (_, rx) = broadcast::channel(1); - // let bucket = "dada".to_owned(); - // let forward_to = None; - // let disks = vec![Some(disk)]; - // let fallback_disks = Vec::new(); - - // list_path_raw( - // rx, - // ListPathRawOptions { - // disks, - // fallback_disks, - // bucket, - // path: "".to_owned(), - // recursice: true, - // forward_to, - // min_disks: 1, - // report_not_found: false, - // agreed: Some(Box::new(move |entry: MetaCacheEntry| { - // Box::pin(async move { println!("get entry: {}", entry.name) }) - // })), - // partial: Some(Box::new(move |entries: MetaCacheEntries, _: &[Option]| { - // Box::pin(async move { println!("get entries: {:?}", entries) }) - // })), - // finished: None, - // ..Default::default() - // }, - // ) - // .await - // .unwrap(); - // } - - // #[tokio::test] - // async fn test_set_list_path() { - // let mut ep = Endpoint::try_from("/Users/weisd/project/weisd/s3-rustfs/target/volume/test").unwrap(); - // ep.pool_idx = 0; - // ep.set_idx = 0; - // ep.disk_idx = 0; - // ep.is_local = true; - - // let disk = new_disk(&ep, &DiskOption::default()).await.expect("init disk fail"); - // let _ = disk.set_disk_id(Some(Uuid::new_v4())).await; - - // let set = SetDisks { - // lockers: Vec::new(), - // locker_owner: String::new(), - // ns_mutex: Arc::new(RwLock::new(NsLockMap::new(false))), - // disks: RwLock::new(vec![Some(disk)]), - // set_endpoints: Vec::new(), - // set_drive_count: 1, - // default_parity_count: 0, - // set_index: 0, - // pool_index: 0, - // format: FormatV3::new(1, 1), - // }; - - // let (_tx, rx) = broadcast::channel(1); - - // let bucket = "dada".to_owned(); - - // let opts = ListPathOptions { - // bucket, - // recursive: true, - // ..Default::default() - // }; - - // let (sender, mut recv) = mpsc::channel(10); - - // set.list_path(rx, opts, sender).await.unwrap(); - - // while let Some(entry) = recv.recv().await { - // println!("get entry {:?}", entry.name) - // } - // } - - // #[tokio::test] - //walk() { - // let server_address = "localhost:9000"; - - // let (endpoint_pools, _setup_type) = EndpointServerPools::from_volumes( - // server_address, - // vec!["/Users/weisd/project/weisd/s3-rustfs/target/volume/test".to_string()], - // ) - // .unwrap(); - - // let store = ECStore::new(server_address.to_string(), endpoint_pools.clone()) - // .await - // .unwrap(); - - // let (_tx, rx) = broadcast::channel(1); - - // let bucket = "dada".to_owned(); - // let opts = ListPathOptions { - // bucket, - // recursive: true, - // ..Default::default() - // }; - - // let (sender, mut recv) = mpsc::channel(10); - - // store.list_merged(rx, opts, sender).await.unwrap(); - - // while let Some(entry) = recv.recv().await { - // println!("get entry {:?}", entry.name) - // } - // } - - // #[tokio::test] - // async fn test_list_path() { - // let server_address = "localhost:9000"; - - // let (endpoint_pools, _setup_type) = EndpointServerPools::from_volumes( - // server_address, - // vec!["/Users/weisd/project/weisd/s3-rustfs/target/volume/test".to_string()], - // ) - // .unwrap(); - - // let store = ECStore::new(server_address.to_string(), endpoint_pools.clone()) - // .await - // .unwrap(); - - // let bucket = "dada".to_owned(); - // let opts = ListPathOptions { - // bucket, - // recursive: true, - // limit: 100, - - // ..Default::default() - // }; - - // let ret = store.list_path(&opts).await.unwrap(); - // println!("ret {:?}", ret); - // } - - // #[tokio::test] - // async fn test_list_objects_v2() { - // let server_address = "localhost:9000"; - - // let (endpoint_pools, _setup_type) = EndpointServerPools::from_volumes( - // server_address, - // vec!["/Users/weisd/project/weisd/s3-rustfs/target/volume/test".to_string()], - // ) - // .unwrap(); - - // let store = ECStore::new(server_address.to_string(), endpoint_pools.clone()) - // .await - // .unwrap(); - - // let ret = store.list_objects_v2("data", "", "", "", 100, false, "").await.unwrap(); - // println!("ret {:?}", ret); - // } - - // #[tokio::test] - // async fn test_walk() { - // let server_address = "localhost:9000"; - - // let (endpoint_pools, _setup_type) = EndpointServerPools::from_volumes( - // server_address, - // vec!["/Users/weisd/project/weisd/s3-rustfs/target/volume/test".to_string()], - // ) - // .unwrap(); - - // let store = ECStore::new(server_address.to_string(), endpoint_pools.clone()) - // .await - // .unwrap(); - - // ECStore::init(store.clone()).await.unwrap(); - - // let (_tx, rx) = broadcast::channel(1); - - // let bucket = ".rustfs.sys"; - // let prefix = "config/iam/sts/"; - - // let (sender, mut recv) = mpsc::channel(10); - - // let opts = WalkOptions::default(); - - // store.walk(rx, bucket, prefix, sender, opts).await.unwrap(); - - // while let Some(entry) = recv.recv().await { - // println!("get entry {:?}", entry) - // } - // } - #[tokio::test] async fn merge_entry_channels_produces_sorted_unique_output_from_two_channels() { let (tx_a, rx_a) = mpsc::channel(4); diff --git a/crates/policy/src/policy/action.rs b/crates/policy/src/policy/action.rs index 4531f7fbf..6f663406d 100644 --- a/crates/policy/src/policy/action.rs +++ b/crates/policy/src/policy/action.rs @@ -355,37 +355,6 @@ pub enum S3Action { GetBucketQuotaAction, } -// #[derive(Serialize, Deserialize, Hash, PartialEq, Eq, Clone, EnumString, IntoStaticStr, Debug, Copy)] -// #[serde(try_from = "&str", into = "&str")] -// pub enum AdminAction { -// #[strum(serialize = "admin:*")] -// AllActions, -// #[strum(serialize = "admin:Profiling")] -// ProfilingAdminAction, -// #[strum(serialize = "admin:ServerTrace")] -// TraceAdminAction, -// #[strum(serialize = "admin:ConsoleLog")] -// ConsoleLogAdminAction, -// #[strum(serialize = "admin:ServerInfo")] -// ServerInfoAdminAction, -// #[strum(serialize = "admin:OBDInfo")] -// HealthInfoAdminAction, -// #[strum(serialize = "admin:TopLocksInfo")] -// TopLocksAdminAction, -// #[strum(serialize = "admin:LicenseInfo")] -// LicenseInfoAdminAction, -// #[strum(serialize = "admin:BandwidthMonitor")] -// BandwidthMonitorAction, -// #[strum(serialize = "admin:InspectData")] -// InspectDataAction, -// #[strum(serialize = "admin:Prometheus")] -// PrometheusAdminAction, -// #[strum(serialize = "admin:ListServiceAccounts")] -// ListServiceAccountsAdminAction, -// #[strum(serialize = "admin:CreateServiceAccount")] -// CreateServiceAccountAdminAction, -// } - // AdminAction - admin policy action. #[derive(Serialize, Deserialize, Hash, PartialEq, Eq, Clone, IntoStaticStr, Debug, Copy, EnumString)] #[serde(try_from = "&str", into = "&str")] diff --git a/crates/policy/src/utils.rs b/crates/policy/src/utils.rs index 3698dc4d1..c2cb0a9a4 100644 --- a/crates/policy/src/utils.rs +++ b/crates/policy/src/utils.rs @@ -53,16 +53,4 @@ mod tests { assert!(!token.is_empty()); } - - // #[test] - // fn test_extract_claims() { - // let claims = Claims { - // sub: "user1".to_string(), - // company: "example".to_string(), - // }; - // let secret = "my_secret"; - // let token = generate_jwt(&claims, secret).unwrap(); - // let decoded_claims = extract_claims::(&token, secret).unwrap(); - // assert_eq!(decoded_claims.claims, claims); - // } }