mirror of
https://github.com/rustfs/rustfs.git
synced 2026-07-26 16:28:15 +00:00
refactor: prune consumer ecstore object aliases (#3622)
This commit is contained in:
@@ -29,6 +29,6 @@ pub(crate) use rustfs_ecstore::global::GLOBAL_LOCAL_DISK_MAP;
|
||||
#[cfg(test)]
|
||||
pub(crate) use rustfs_ecstore::disk::{DiskOption, new_disk};
|
||||
|
||||
pub type HealObjectInfo = rustfs_ecstore::object_api::ObjectInfo;
|
||||
pub type HealObjectOptions = rustfs_ecstore::object_api::ObjectOptions;
|
||||
pub type HealPutObjReader = rustfs_ecstore::object_api::PutObjReader;
|
||||
pub type HealObjectInfo = <ECStore as rustfs_storage_api::ObjectOperations>::ObjectInfo;
|
||||
pub type HealObjectOptions = <ECStore as rustfs_storage_api::ObjectOperations>::ObjectOptions;
|
||||
pub type HealPutObjReader = <ECStore as rustfs_storage_api::ObjectIO>::PutObjectReader;
|
||||
|
||||
@@ -17,11 +17,10 @@ use std::sync::Arc;
|
||||
pub(super) type SwiftBucketMetadata = rustfs_ecstore::bucket::metadata::BucketMetadata;
|
||||
pub(super) type SwiftStorageResult<T> = rustfs_ecstore::error::Result<T>;
|
||||
pub(super) type SwiftStore = rustfs_ecstore::store::ECStore;
|
||||
|
||||
pub type SwiftGetObjectReader = rustfs_ecstore::object_api::GetObjectReader;
|
||||
pub type SwiftObjectInfo = rustfs_ecstore::object_api::ObjectInfo;
|
||||
pub type SwiftObjectOptions = rustfs_ecstore::object_api::ObjectOptions;
|
||||
pub type SwiftPutObjReader = rustfs_ecstore::object_api::PutObjReader;
|
||||
pub type SwiftGetObjectReader = <SwiftStore as rustfs_storage_api::ObjectIO>::GetObjectReader;
|
||||
pub type SwiftObjectInfo = <SwiftStore as rustfs_storage_api::ObjectOperations>::ObjectInfo;
|
||||
pub type SwiftObjectOptions = <SwiftStore as rustfs_storage_api::ObjectOperations>::ObjectOptions;
|
||||
pub type SwiftPutObjReader = <SwiftStore as rustfs_storage_api::ObjectIO>::PutObjectReader;
|
||||
|
||||
pub fn resolve_swift_object_store_handle() -> Option<Arc<SwiftStore>> {
|
||||
rustfs_ecstore::resolve_object_store_handle()
|
||||
|
||||
@@ -12,11 +12,11 @@
|
||||
// See the License for the specific language governing permissions and
|
||||
// limitations under the License.
|
||||
|
||||
pub(crate) type SelectGetObjectReader = rustfs_ecstore::object_api::GetObjectReader;
|
||||
pub(crate) type SelectObjectInfo = rustfs_ecstore::object_api::ObjectInfo;
|
||||
pub(crate) type SelectObjectOptions = rustfs_ecstore::object_api::ObjectOptions;
|
||||
pub(crate) type SelectStorageError = rustfs_ecstore::error::StorageError;
|
||||
pub(crate) type SelectStore = rustfs_ecstore::store::ECStore;
|
||||
pub(crate) type SelectGetObjectReader = <SelectStore as rustfs_storage_api::ObjectIO>::GetObjectReader;
|
||||
pub(crate) type SelectObjectInfo = <SelectStore as rustfs_storage_api::ObjectOperations>::ObjectInfo;
|
||||
pub(crate) type SelectObjectOptions = <SelectStore as rustfs_storage_api::ObjectOperations>::ObjectOptions;
|
||||
|
||||
pub(crate) const SELECT_DEFAULT_READ_BUFFER_SIZE: usize = rustfs_ecstore::set_disk::DEFAULT_READ_BUFFER_SIZE;
|
||||
|
||||
|
||||
@@ -47,6 +47,12 @@ pub(crate) use rustfs_ecstore::bucket::{
|
||||
pub(crate) use rustfs_ecstore::disk::{DiskAPI, DiskInfoOptions};
|
||||
pub(crate) use rustfs_ecstore::global::GLOBAL_TierConfigMgr;
|
||||
|
||||
pub type ScannerGetObjectReader = <ECStore as ObjectIO>::GetObjectReader;
|
||||
pub type ScannerObjectInfo = <ECStore as rustfs_storage_api::ObjectOperations>::ObjectInfo;
|
||||
pub type ScannerObjectOptions = <ECStore as rustfs_storage_api::ObjectOperations>::ObjectOptions;
|
||||
pub type ScannerObjectToDelete = ObjectToDelete;
|
||||
pub type ScannerPutObjReader = <ECStore as ObjectIO>::PutObjectReader;
|
||||
|
||||
pub(crate) mod storageclass {
|
||||
pub(crate) const RRS: &str = rustfs_ecstore::config::storageclass::RRS;
|
||||
pub(crate) const STANDARD: &str = rustfs_ecstore::config::storageclass::STANDARD;
|
||||
@@ -58,12 +64,6 @@ pub(crate) use rustfs_ecstore::config::init as init_ecstore_config_for_scanner_t
|
||||
#[cfg(test)]
|
||||
pub(crate) use rustfs_ecstore::disk::{DiskOption, endpoint::Endpoint, new_disk};
|
||||
|
||||
pub type ScannerGetObjectReader = rustfs_ecstore::object_api::GetObjectReader;
|
||||
pub type ScannerObjectInfo = rustfs_ecstore::object_api::ObjectInfo;
|
||||
pub type ScannerObjectOptions = rustfs_ecstore::object_api::ObjectOptions;
|
||||
pub type ScannerObjectToDelete = ObjectToDelete;
|
||||
pub type ScannerPutObjReader = rustfs_ecstore::object_api::PutObjReader;
|
||||
|
||||
pub(crate) fn resolve_scanner_object_store_handle() -> Option<Arc<ECStore>> {
|
||||
rustfs_ecstore::resolve_object_store_handle()
|
||||
}
|
||||
|
||||
@@ -5,16 +5,16 @@ Status values: `[ ]` not started, `[~]` in progress, `[x]` complete, `[!]` block
|
||||
## Current Context
|
||||
|
||||
- Issue: [`rustfs/backlog#660`](https://github.com/rustfs/backlog/issues/660)
|
||||
- Branch: `overtrue/arch-iam-object-boundary-prune`
|
||||
- Baseline: stacked after `rustfs/rustfs#3620`
|
||||
(`c7bee5de904c9a1ea70f73ad6621895a30b3c387`).
|
||||
- Branch: `overtrue/arch-final-object-boundary-prune`
|
||||
- Baseline: stacked after `rustfs/rustfs#3622`
|
||||
(`4300bf04f3a82ef4cc2605f417f89e7b4643b99e`).
|
||||
- PR type for this branch: `consumer-migration`
|
||||
- Runtime behavior changes: none.
|
||||
- Rust code changes: route IAM config/store object metadata and options aliases
|
||||
through `rustfs_storage_api::ObjectOperations` associated types.
|
||||
- Rust code changes: route heal and RustFS storage object reader, writer,
|
||||
metadata, and options aliases through `rustfs_storage_api` associated types.
|
||||
- CI/script changes: shrink the remaining external `rustfs_ecstore::object_api`
|
||||
compatibility alias snapshot by removing IAM object-info/options aliases.
|
||||
- Docs changes: record the API-069 IAM object boundary prune slice.
|
||||
compatibility alias snapshot to empty.
|
||||
- Docs changes: record the API-071 final object boundary prune slice.
|
||||
|
||||
## Phase 0 Tasks
|
||||
|
||||
@@ -360,6 +360,36 @@ Status values: `[ ]` not started, `[~]` in progress, `[x]` complete, `[!]` block
|
||||
- Verification: focused IAM compile/tests, migration and layer guards,
|
||||
formatting, diff hygiene, full pre-commit, and three-expert review.
|
||||
|
||||
- [x] `API-070` Prune consumer direct ECStore object aliases.
|
||||
- Completed slice: replace scanner, s3select, and Swift
|
||||
`GetObjectReader`/`ObjectInfo`/`ObjectOptions`/`PutObjReader`
|
||||
compatibility aliases with concrete store `rustfs_storage_api` associated
|
||||
types.
|
||||
- Acceptance: scanner, s3select, and Swift no longer name
|
||||
`rustfs_ecstore::object_api::{GetObjectReader,ObjectInfo,ObjectOptions,PutObjReader}`
|
||||
directly, and the remaining object-api alias allowlist shrinks by eleven
|
||||
entries.
|
||||
- Must preserve: scanner lifecycle/replication IO bounds and config helpers,
|
||||
s3select read buffer/object error handling, Swift bucket metadata helpers,
|
||||
and object reader/writer concrete types exposed through each local
|
||||
compatibility boundary.
|
||||
- Verification: focused consumer compile/tests, migration and layer guards,
|
||||
formatting, diff hygiene, full pre-commit, and three-expert review.
|
||||
|
||||
- [x] `API-071` Prune final direct ECStore object aliases.
|
||||
- Completed slice: replace heal and RustFS storage
|
||||
`GetObjectReader`/`ObjectInfo`/`ObjectOptions`/`PutObjReader`
|
||||
compatibility aliases with concrete store `rustfs_storage_api` associated
|
||||
types.
|
||||
- Acceptance: no external `storage_compat.rs` module names
|
||||
`rustfs_ecstore::object_api::{GetObjectReader,ObjectInfo,ObjectOptions,PutObjReader}`
|
||||
directly, and the external object-api alias allowlist is empty.
|
||||
- Must preserve: heal object metadata and rewrite reader construction,
|
||||
RustFS storage object read/write paths, S3 response metadata semantics,
|
||||
SSE/encryption handling, and storage object option behavior.
|
||||
- Verification: focused heal/storage compile/tests, migration and layer
|
||||
guards, formatting, diff hygiene, full pre-commit, and three-expert review.
|
||||
|
||||
- [x] `TEST-PRTYPE-001` Check PR type enum consistency.
|
||||
- Acceptance: `./scripts/check_architecture_migration_rules.sh` parses the
|
||||
allowed PR types from [`crate-boundaries.md`](crate-boundaries.md) and fails
|
||||
@@ -1940,27 +1970,52 @@ Status values: `[ ]` not started, `[~]` in progress, `[x]` complete, `[!]` block
|
||||
binary/lib compile checks, formatting, migration guards, Rust risk scan,
|
||||
branch freshness check, and pre-commit quality gate.
|
||||
|
||||
- [x] `R-020` Isolate profiling lifecycle hooks.
|
||||
- Do: route BOOT-006 profiling initialization and STOP-004 profiling shutdown
|
||||
through `startup_profiling` hook functions while keeping `profiling.rs` as
|
||||
the CPU/memory profiling implementation and admin dump API owner.
|
||||
- Acceptance: startup still initializes profiling before trusted proxies and
|
||||
outbound TLS material; shutdown still stops profiling after notifier/audit
|
||||
shutdown and before HTTP shutdown; unsupported targets and disabled
|
||||
profiling keep their existing no-op behavior.
|
||||
- Must preserve: profiling env flags, CPU/memory mode handling, target gates,
|
||||
cancellation-token ownership, admin pprof routes, non-fatal startup
|
||||
behavior, and shutdown ordering.
|
||||
- Verification: focused startup profiling hook tests, binary/lib compile
|
||||
checks, formatting, migration guards, Rust risk scan, branch freshness
|
||||
check, and pre-commit quality gate.
|
||||
|
||||
## Next PRs
|
||||
|
||||
1. `consumer-migration`: connect additional scanner, repair, replication, and
|
||||
metadata admission owners to the workload registry only after each owner has
|
||||
dedicated preservation coverage.
|
||||
2. `pure-move`/`consumer-migration`: continue larger cleanup slices with the
|
||||
1. `pure-move`: continue larger lifecycle hook slices for optional runtime
|
||||
sidecars while preserving startup and shutdown ordering.
|
||||
2. `consumer-migration`: continue larger cleanup slices with the
|
||||
loss-prevention guards active for remaining ECStore compatibility contracts
|
||||
now that broad compatibility passthroughs are fully closed.
|
||||
that still have dedicated preservation coverage.
|
||||
|
||||
## Pre-Push Review Log
|
||||
|
||||
| Expert | Status | Notes |
|
||||
|---|---|---|
|
||||
| Quality/architecture | passed | S-015 removes obsolete KMS admin policy action variants after the handler fallback cleanup; API-042/API-043/API-044/API-045/API-046/API-047/API-048/API-049/API-050/API-051/API-052/API-053/API-054 narrow notify, S3 Select, OBS, IAM, Swift, heal, scanner, RustFS runtime, test, fuzz, lifecycle helper, harness, and RustFS runtime compatibility contracts without moving ECStore storage metadata ownership; G-011/G-012/G-013 add docs-only baselines for scheduler, placement/repair, and profiling/NUMA work; Issue #660 PR-08/PR-09 add read-only observability and topology contracts in storage-api only; PR-05/PR-07 add scheduler preservation tests and workload contracts; API-055/SCH-001 adds a local storage concurrency provider; current API-056/R-016 wires runtime observability and endpoint topology providers without moving implementation ownership. |
|
||||
| Migration preservation | passed | KMS endpoint URLs, query aliases, request bodies, response contracts, and dedicated `kms:*` authorization behavior are preserved; event builder call sites, ECStore event bridge conversion, restore event data, version IDs, metadata filtering, config read/save semantics, S3 Select store/error/buffer semantics, OBS metrics state reads, IAM config/notification/error semantics, Swift bucket metadata access, heal disk/resume/task behavior, scanner lifecycle/replication/data-usage behavior, RustFS startup/admin/app/storage runtime access, e2e/test/fuzz import behavior, lifecycle expiration/transition helper DTO field contracts, flattened harness and RustFS runtime scalar/secondary alias behavior, unchanged no-op handling, remove-event behavior, scheduler/readiness/placement/profiling runtime behavior, platform gates, missing/unknown capability states, placement/topology labels, scheduler thresholds, queue snapshot semantics, disk-read semaphore behavior, and admission behavior are preserved. |
|
||||
| Testing/verification | passed | Focused compiles/tests, fuzz target compile, guards, formatting, diff hygiene, risk scan, and full `make pre-commit` passed for prior code slices; current Issue #660 API-056/R-016 slice uses runtime capability provider tests, focused RustFS library check, migration and layer guards, formatting, diff hygiene, and three-expert review. |
|
||||
| Quality/architecture | passed | R-020 moves profiling init/shutdown call sites behind `startup_profiling` hook functions without moving CPU/memory profiling implementation ownership or admin pprof APIs. |
|
||||
| Migration preservation | passed | BOOT-006 still initializes profiling before trusted proxies/provider/TLS setup; STOP-004 still stops profiling after notifier/audit shutdown and before HTTP shutdown; profiling env flags, platform gates, target unsupported behavior, and cancellation-token ownership remain in `profiling.rs`. |
|
||||
| Testing/verification | passed | Focused startup profiling hook tests, RustFS library check, migration/layer guards, formatting, diff hygiene, Rust risk scan, and full `make pre-commit` validate the current R-020 slice. |
|
||||
|
||||
## Verification Notes
|
||||
|
||||
Passed before push:
|
||||
|
||||
- Issue #660 R-020 current slice:
|
||||
- `cargo test -p rustfs --lib startup_profiling -- --nocapture`: passed.
|
||||
- `cargo check -p rustfs --lib`: passed.
|
||||
- `./scripts/check_architecture_migration_rules.sh`: passed.
|
||||
- `./scripts/check_layer_dependencies.sh`: passed.
|
||||
- `cargo fmt --all --check`: passed.
|
||||
- `git diff --check`: passed.
|
||||
- Rust risk scan on changed Rust files: passed.
|
||||
- `make pre-commit`: passed.
|
||||
- Three-expert review: passed.
|
||||
|
||||
- Issue #660 API-056/R-016 current slice:
|
||||
- `cargo test -p rustfs --lib runtime_capabilities -- --nocapture`: passed.
|
||||
- `cargo check -p rustfs --lib`: passed.
|
||||
|
||||
@@ -24,6 +24,9 @@ sidecars are designed.
|
||||
The current safe baseline is:
|
||||
|
||||
- Profiling is opt-in through env flags and must not make startup fatal.
|
||||
- Startup and shutdown call profiling through `startup_profiling` lifecycle
|
||||
hooks; `profiling.rs` remains the CPU/memory profiling implementation and
|
||||
admin dump API owner.
|
||||
- Unsupported profiling targets return structured unsupported errors or skip
|
||||
startup tasks.
|
||||
- Memory observability records process/system metrics and adds cgroup split
|
||||
|
||||
@@ -23,7 +23,7 @@ new startup semantics.
|
||||
| `BOOT-003` | `rustfs/src/startup_entrypoint.rs` | Parse CLI command and dispatch non-server commands. | `info` and `tls` commands execute and return without server startup. | Command parse exits process with code 1; TLS command errors propagate. | None |
|
||||
| `BOOT-004` | `rustfs/src/startup_preflight.rs` | Initialize config snapshot and license state. | Publishes config snapshot for later readers and initializes runtime license state. | License init is non-fallible in this path. | None |
|
||||
| `BOOT-005` | `rustfs/src/startup_preflight.rs` | Initialize observability and store the global guard. | Initializes tracing/observability, stores the guard globally, and logs license/runtime telemetry status. | Fatal if observability init or guard publication fails. | None |
|
||||
| `BOOT-006` | `rustfs/src/startup_runtime.rs` | Log startup logo, initialize profiling, trusted proxies, rustls provider, and outbound TLS material. | Starts optional profiling tasks, trusted proxy config, default rustls provider, outbound TLS global state, TLS generation metric, and TLS metrics when enabled. | Profiling/proxy/provider setup is non-fatal; configured TLS material load is fatal on error. | None |
|
||||
| `BOOT-006` | `rustfs/src/startup_runtime.rs` and `rustfs/src/startup_profiling.rs` | Log startup logo, initialize profiling, trusted proxies, rustls provider, and outbound TLS material. | Starts optional profiling tasks, trusted proxy config, default rustls provider, outbound TLS global state, TLS generation metric, and TLS metrics when enabled. | Profiling/proxy/provider setup is non-fatal; configured TLS material load is fatal on error. | None |
|
||||
| `RUN-001` | `rustfs/src/startup_server.rs` | Enter startup run orchestration and create `GlobalReadiness`. | Allocates the readiness tracker shared with HTTP readiness gates. | Non-fatal. | Initial readiness state is not ready |
|
||||
| `RUN-002` | `rustfs/src/startup_server.rs` | Parse and publish the configured region. | Updates ECStore global region when configured. | Fatal if the configured region is invalid. | None |
|
||||
| `RUN-003` | `rustfs/src/startup_server.rs` | Resolve server address and warn on default credentials. | Computes server port/address and emits production credential warning when defaults are used. | Address parse is fatal; default credentials warning is non-fatal. | None |
|
||||
@@ -72,7 +72,7 @@ new startup semantics.
|
||||
| `STOP-001` | `rustfs/src/startup_services.rs` | Cancel runtime token and move service state to `Stopping`. | Notifies cancellation-aware background tasks. | Non-fatal. | Service state moves to `Stopping`; readiness stages are not cleared here |
|
||||
| `STOP-002` | `rustfs/src/startup_services.rs` | Stop scanner/background services and AHM services according to enable flags. | Calls ECStore background shutdown and heal/scanner shutdown helpers. | Non-fatal in this path. | No readiness-stage change |
|
||||
| `STOP-003` | `rustfs/src/startup_services.rs` | Signal optional FTP/FTPS/WebDAV/SFTP protocol servers. | Collects protocol shutdown futures. | Non-fatal in this path. | No readiness-stage change |
|
||||
| `STOP-004` | `rustfs/src/startup_services.rs` | Stop event notifier, audit system, and profiling tasks. | Stops notifier and profiling tasks; audit stop failures are logged. | Non-fatal in this path. | No readiness-stage change |
|
||||
| `STOP-004` | `rustfs/src/startup_services.rs` and `rustfs/src/startup_profiling.rs` | Stop event notifier, audit system, and profiling tasks. | Stops notifier and profiling tasks; audit stop failures are logged. | Non-fatal in this path. | No readiness-stage change |
|
||||
| `STOP-005` | `rustfs/src/startup_services.rs` | Stop S3 and console HTTP servers, wait for protocol shutdowns, then mark service state `Stopped`. | HTTP shutdown happens after notifier/audit/profiling shutdown in current order. | Join failures are logged by shutdown handles; this path does not return errors. | Service state moves to `Stopped`; readiness stages are not cleared here |
|
||||
|
||||
## Migration Rules
|
||||
|
||||
@@ -72,6 +72,7 @@ pub mod startup_entrypoint;
|
||||
pub mod startup_fs_guard;
|
||||
pub mod startup_iam;
|
||||
pub mod startup_preflight;
|
||||
pub mod startup_profiling;
|
||||
pub mod startup_protocols;
|
||||
pub mod startup_runtime;
|
||||
pub mod startup_server;
|
||||
|
||||
@@ -0,0 +1,71 @@
|
||||
// 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.
|
||||
|
||||
use std::future::Future;
|
||||
|
||||
pub async fn init_profiling_runtime() {
|
||||
init_profiling_runtime_with(crate::profiling::init_from_env).await;
|
||||
}
|
||||
|
||||
async fn init_profiling_runtime_with<InitFn, InitFuture>(init: InitFn)
|
||||
where
|
||||
InitFn: FnOnce() -> InitFuture,
|
||||
InitFuture: Future<Output = ()>,
|
||||
{
|
||||
init().await;
|
||||
}
|
||||
|
||||
pub fn shutdown_profiling_runtime() {
|
||||
shutdown_profiling_runtime_with(crate::profiling::shutdown_profiling);
|
||||
}
|
||||
|
||||
fn shutdown_profiling_runtime_with<ShutdownFn>(shutdown: ShutdownFn)
|
||||
where
|
||||
ShutdownFn: FnOnce(),
|
||||
{
|
||||
shutdown();
|
||||
}
|
||||
|
||||
#[cfg(test)]
|
||||
mod tests {
|
||||
use super::{init_profiling_runtime_with, shutdown_profiling_runtime_with};
|
||||
use std::sync::{
|
||||
Arc,
|
||||
atomic::{AtomicBool, Ordering},
|
||||
};
|
||||
|
||||
#[tokio::test]
|
||||
async fn init_profiling_runtime_invokes_registered_hook() {
|
||||
let called = Arc::new(AtomicBool::new(false));
|
||||
let hook_called = called.clone();
|
||||
|
||||
init_profiling_runtime_with(move || async move {
|
||||
hook_called.store(true, Ordering::SeqCst);
|
||||
})
|
||||
.await;
|
||||
|
||||
assert!(called.load(Ordering::SeqCst));
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn shutdown_profiling_runtime_invokes_registered_hook() {
|
||||
let called = AtomicBool::new(false);
|
||||
|
||||
shutdown_profiling_runtime_with(|| {
|
||||
called.store(true, Ordering::SeqCst);
|
||||
});
|
||||
|
||||
assert!(called.load(Ordering::SeqCst));
|
||||
}
|
||||
}
|
||||
@@ -33,7 +33,7 @@ pub async fn init_startup_runtime_foundation(config: &Config) -> Result<()> {
|
||||
|
||||
debug!("{}", crate::server::LOGO);
|
||||
|
||||
crate::profiling::init_from_env().await;
|
||||
crate::startup_profiling::init_profiling_runtime().await;
|
||||
rustfs_trusted_proxies::init();
|
||||
install_default_crypto_provider();
|
||||
init_outbound_tls_material(config).await
|
||||
|
||||
@@ -543,7 +543,7 @@ async fn handle_shutdown(
|
||||
state = "stopping",
|
||||
"Profiling shutdown started"
|
||||
);
|
||||
crate::profiling::shutdown_profiling();
|
||||
crate::startup_profiling::shutdown_profiling_runtime();
|
||||
|
||||
info!(
|
||||
target: "rustfs::main::handle_shutdown",
|
||||
|
||||
@@ -39,7 +39,7 @@ pub(crate) use rustfs_ecstore::rpc::{
|
||||
pub(crate) use rustfs_ecstore::set_disk::DEFAULT_READ_BUFFER_SIZE;
|
||||
pub(crate) use rustfs_ecstore::store::{ECStore, all_local_disk_path, find_local_disk_by_ref};
|
||||
|
||||
pub(crate) type GetObjectReader = rustfs_ecstore::object_api::GetObjectReader;
|
||||
pub(crate) type ObjectInfo = rustfs_ecstore::object_api::ObjectInfo;
|
||||
pub(crate) type ObjectOptions = rustfs_ecstore::object_api::ObjectOptions;
|
||||
pub(crate) type PutObjReader = rustfs_ecstore::object_api::PutObjReader;
|
||||
pub(crate) type GetObjectReader = <ECStore as rustfs_storage_api::ObjectIO>::GetObjectReader;
|
||||
pub(crate) type ObjectInfo = <ECStore as rustfs_storage_api::ObjectOperations>::ObjectInfo;
|
||||
pub(crate) type ObjectOptions = <ECStore as rustfs_storage_api::ObjectOperations>::ObjectOptions;
|
||||
pub(crate) type PutObjReader = <ECStore as rustfs_storage_api::ObjectIO>::PutObjectReader;
|
||||
|
||||
@@ -530,24 +530,6 @@ if [[ -s "$ECSTORE_OBJECT_API_STORAGE_ALIAS_HITS_FILE" ]]; then
|
||||
fi
|
||||
|
||||
cat >"$ECSTORE_OBJECT_API_EXTERNAL_ALIAS_EXPECTED_FILE" <<'EOF'
|
||||
crates/heal/src/heal/storage_compat.rs:HealObjectInfo=ObjectInfo
|
||||
crates/heal/src/heal/storage_compat.rs:HealObjectOptions=ObjectOptions
|
||||
crates/heal/src/heal/storage_compat.rs:HealPutObjReader=PutObjReader
|
||||
crates/protocols/src/swift/storage_compat.rs:SwiftGetObjectReader=GetObjectReader
|
||||
crates/protocols/src/swift/storage_compat.rs:SwiftObjectInfo=ObjectInfo
|
||||
crates/protocols/src/swift/storage_compat.rs:SwiftObjectOptions=ObjectOptions
|
||||
crates/protocols/src/swift/storage_compat.rs:SwiftPutObjReader=PutObjReader
|
||||
crates/s3select-api/src/storage_compat.rs:SelectGetObjectReader=GetObjectReader
|
||||
crates/s3select-api/src/storage_compat.rs:SelectObjectInfo=ObjectInfo
|
||||
crates/s3select-api/src/storage_compat.rs:SelectObjectOptions=ObjectOptions
|
||||
crates/scanner/src/storage_compat.rs:ScannerGetObjectReader=GetObjectReader
|
||||
crates/scanner/src/storage_compat.rs:ScannerObjectInfo=ObjectInfo
|
||||
crates/scanner/src/storage_compat.rs:ScannerObjectOptions=ObjectOptions
|
||||
crates/scanner/src/storage_compat.rs:ScannerPutObjReader=PutObjReader
|
||||
rustfs/src/storage/storage_compat.rs:GetObjectReader=GetObjectReader
|
||||
rustfs/src/storage/storage_compat.rs:ObjectInfo=ObjectInfo
|
||||
rustfs/src/storage/storage_compat.rs:ObjectOptions=ObjectOptions
|
||||
rustfs/src/storage/storage_compat.rs:PutObjReader=PutObjReader
|
||||
EOF
|
||||
|
||||
(
|
||||
|
||||
Reference in New Issue
Block a user