aboutsummaryrefslogtreecommitdiff
path: root/src/garage/admin
diff options
context:
space:
mode:
authorAlex Auvolat <lx@deuxfleurs.fr>2025-01-30 17:45:54 +0100
committerAlex Auvolat <lx@deuxfleurs.fr>2025-02-03 18:54:51 +0100
commitbdaf55ab3f866234bd5a7d585758265a88d2906a (patch)
treee5160b9cc4ca312c6c649989b80d4ba7e6490559 /src/garage/admin
parente96014ca60331b50a5a67383589ba5b1c74018d0 (diff)
downloadgarage-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.rs53
-rw-r--r--src/garage/admin/mod.rs3
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,