From f37d5d2b08b008eba7b1ee8d84b08d5fddeabf78 Mon Sep 17 00:00:00 2001 From: Alex Auvolat Date: Thu, 30 Jan 2025 13:36:25 +0100 Subject: admin api: convert most bucket operations --- src/api/admin/bucket.rs | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'src/api/admin/bucket.rs') diff --git a/src/api/admin/bucket.rs b/src/api/admin/bucket.rs index 0cc420ec..d2d75fc0 100644 --- a/src/api/admin/bucket.rs +++ b/src/api/admin/bucket.rs @@ -73,16 +73,22 @@ impl EndpointHandler for GetBucketInfoRequest { type Response = GetBucketInfoResponse; async fn handle(self, garage: &Arc) -> Result { - let bucket_id = match (self.id, self.global_alias) { - (Some(id), None) => parse_bucket_id(&id)?, - (None, Some(ga)) => garage + let bucket_id = match (self.id, self.global_alias, self.search) { + (Some(id), None, None) => parse_bucket_id(&id)?, + (None, Some(ga), None) => garage .bucket_helper() .resolve_global_bucket_name(&ga) .await? .ok_or_else(|| HelperError::NoSuchBucket(ga.to_string()))?, + (None, None, Some(search)) => { + garage + .bucket_helper() + .admin_get_existing_matching_bucket(&search) + .await? + } _ => { return Err(Error::bad_request( - "Either id or globalAlias must be provided (but not both)", + "Either id, globalAlias or search must be provided (but not several of them)", )); } }; -- cgit v1.2.3