mirror of
https://github.com/rustfs/rustfs.git
synced 2026-07-26 08:18:18 +00:00
f05a69d51b
* test(utils): add rustfs-test-utils crate, absorb heal/iam ECStore bootstrap
backlog#1153 infra-1. The ~50-line "build a real temp-disk ECStore"
bootstrap was copy-pasted (and drifting) across the heal and iam
integration tests. This adds crates/test-utils (rustfs-test-utils, a
dev-dependency-only crate) owning that bootstrap and converts the four
copies into thin wrappers:
- TestECStoreEnvBuilder: disk_count (default 4), prefix (uuid-suffixed
/tmp dir), base_dir (caller-owned dir, e.g. tempfile::TempDir),
init_bucket_metadata (default true; the iam bootstrap test opts out
to preserve its historical semantics). TestECStoreEnv exposes
temp_root/disk_paths/ecstore plus a versioned-bucket helper, and
init_tracing() replaces the per-file Once blocks.
- All rustfs_ecstore imports stay behind src/ecstore_test_compat.rs,
the sanctioned test-compat boundary pattern (mirrors
crates/iam/tests/ecstore_test_compat).
- heal: heal_integration_test / heal_b5_versioned_regression_test /
heal_b920_subquorum_union_test drop their setup_test_env{,_n} copies
for heal_env{,_n} wrappers; the tests/storage_api.rs integration
surface shrinks to what test bodies still touch.
- iam: iam_bootstrap_no_lock_test drops build_local_ecstore; its
ecstore_test_compat fixture shrinks to SetupType +
update_erasure_type.
rg 'async fn setup_test_env' crates/heal crates/iam now returns 0.
Scanner's lifecycle tests are deliberately NOT absorbed (gated on
ilm-1; 14 of 15 are #[ignore]d today). Net -230 lines.
* fix(heal): drop tokio::fs import orphaned by the b920 bootstrap move
* fix(heal): drop tokio::fs import orphaned by the b5 bootstrap move
69 lines
2.3 KiB
TOML
69 lines
2.3 KiB
TOML
# Copyright 2024 RustFS Team
|
|
#
|
|
# Licensed under the Apache License, Version 2.0 (the "License");
|
|
# you may not use this file except in compliance with the License.
|
|
# You may obtain a copy of the License at
|
|
#
|
|
# http://www.apache.org/licenses/LICENSE-2.0
|
|
#
|
|
# Unless required by applicable law or agreed to in writing, software
|
|
# distributed under the License is distributed on an "AS IS" BASIS,
|
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
# See the License for the specific language governing permissions and
|
|
# limitations under the License.
|
|
|
|
[package]
|
|
name = "rustfs-iam"
|
|
edition.workspace = true
|
|
license.workspace = true
|
|
repository.workspace = true
|
|
rust-version.workspace = true
|
|
version.workspace = true
|
|
homepage.workspace = true
|
|
description = "Identity and Access Management (IAM) for RustFS, providing user management, roles, and permissions."
|
|
keywords = ["iam", "identity", "access-management", "rustfs", "Minio"]
|
|
categories = ["web-programming", "development-tools", "authentication"]
|
|
documentation = "https://docs.rs/rustfs-iam/latest/rustfs_iam/"
|
|
|
|
[lints]
|
|
workspace = true
|
|
|
|
[dependencies]
|
|
rustfs-credentials = { workspace = true }
|
|
rustfs-config = { workspace = true, features = ["constants", "server-config-model"] }
|
|
tokio.workspace = true
|
|
time = { workspace = true, features = ["serde-human-readable"] }
|
|
serde = { workspace = true, features = ["derive", "rc"] }
|
|
rustfs-ecstore = { workspace = true }
|
|
rustfs-storage-api = { workspace = true }
|
|
rustfs-policy.workspace = true
|
|
serde_json.workspace = true
|
|
async-trait.workspace = true
|
|
thiserror.workspace = true
|
|
arc-swap = { workspace = true }
|
|
rustfs-crypto = { workspace = true }
|
|
futures.workspace = true
|
|
base64-simd = { workspace = true }
|
|
jsonwebtoken = { workspace = true }
|
|
tracing.workspace = true
|
|
rustfs-madmin.workspace = true
|
|
rustfs-utils = { workspace = true, features = ["path"] }
|
|
rustfs-io-metrics.workspace = true
|
|
tokio-util.workspace = true
|
|
pollster.workspace = true
|
|
reqwest = { workspace = true }
|
|
moka = { workspace = true }
|
|
openidconnect = { workspace = true }
|
|
http = { workspace = true }
|
|
url = { workspace = true }
|
|
|
|
[dev-dependencies]
|
|
pollster.workspace = true
|
|
rustfs-test-utils = { workspace = true }
|
|
serial_test = { workspace = true }
|
|
temp-env = { workspace = true, features = ["async_closure"] }
|
|
tempfile = { workspace = true }
|
|
|
|
[lib]
|
|
doctest = false
|