diff options
author | Alex Auvolat <lx@deuxfleurs.fr> | 2025-01-30 17:45:54 +0100 |
---|---|---|
committer | Alex Auvolat <lx@deuxfleurs.fr> | 2025-02-03 18:54:51 +0100 |
commit | bdaf55ab3f866234bd5a7d585758265a88d2906a (patch) | |
tree | e5160b9cc4ca312c6c649989b80d4ba7e6490559 /src/garage/admin | |
parent | e96014ca60331b50a5a67383589ba5b1c74018d0 (diff) | |
download | garage-bdaf55ab3f866234bd5a7d585758265a88d2906a.tar.gz garage-bdaf55ab3f866234bd5a7d585758265a88d2906a.zip |
cli_v2: migrate cleanupincompleteuploads to Admin API
admin api: add CleanupIncompleteUploads spec
Diffstat (limited to 'src/garage/admin')
-rw-r--r-- | src/garage/admin/bucket.rs | 53 | ||||
-rw-r--r-- | src/garage/admin/mod.rs | 3 |
2 files changed, 0 insertions, 56 deletions
diff --git a/src/garage/admin/bucket.rs b/src/garage/admin/bucket.rs deleted file mode 100644 index 26d54084..00000000 --- a/src/garage/admin/bucket.rs +++ /dev/null @@ -1,53 +0,0 @@ -use std::fmt::Write; - -use garage_model::helper::error::{Error, OkOrBadRequest}; - -use crate::cli::*; - -use super::*; - -impl AdminRpcHandler { - pub(super) async fn handle_bucket_cmd(&self, cmd: &BucketOperation) -> Result<AdminRpc, Error> { - match cmd { - BucketOperation::CleanupIncompleteUploads(query) => { - self.handle_bucket_cleanup_incomplete_uploads(query).await - } - _ => unreachable!(), - } - } - - async fn handle_bucket_cleanup_incomplete_uploads( - &self, - query: &CleanupIncompleteUploadsOpt, - ) -> Result<AdminRpc, Error> { - let mut bucket_ids = vec![]; - for b in query.buckets.iter() { - bucket_ids.push( - self.garage - .bucket_helper() - .admin_get_existing_matching_bucket(b) - .await?, - ); - } - - let duration = parse_duration::parse::parse(&query.older_than) - .ok_or_bad_request("Invalid duration passed for --older-than parameter")?; - - let mut ret = String::new(); - for bucket in bucket_ids { - let count = self - .garage - .bucket_helper() - .cleanup_incomplete_uploads(&bucket, duration) - .await?; - writeln!( - &mut ret, - "Bucket {:?}: {} incomplete uploads aborted", - bucket, count - ) - .unwrap(); - } - - Ok(AdminRpc::Ok(ret)) - } -} diff --git a/src/garage/admin/mod.rs b/src/garage/admin/mod.rs index 70f8ec67..910a875c 100644 --- a/src/garage/admin/mod.rs +++ b/src/garage/admin/mod.rs @@ -1,5 +1,4 @@ mod block; -mod bucket; use std::collections::HashMap; use std::fmt::Write; @@ -39,7 +38,6 @@ pub const ADMIN_RPC_PATH: &str = "garage/admin_rpc.rs/Rpc"; #[derive(Debug, Serialize, Deserialize)] #[allow(clippy::large_enum_variant)] pub enum AdminRpc { - BucketOperation(BucketOperation), LaunchRepair(RepairOpt), Stats(StatsOpt), Worker(WorkerOperation), @@ -532,7 +530,6 @@ impl EndpointHandler<AdminRpc> for AdminRpcHandler { _from: NodeID, ) -> Result<AdminRpc, Error> { match message { - AdminRpc::BucketOperation(bo) => self.handle_bucket_cmd(bo).await, AdminRpc::LaunchRepair(opt) => self.handle_launch_repair(opt.clone()).await, AdminRpc::Stats(opt) => self.handle_stats(opt.clone()).await, AdminRpc::Worker(wo) => self.handle_worker_cmd(wo).await, |