mirror of
https://github.com/rustfs/rustfs.git
synced 2026-08-08 22:33:22 +00:00
fix(site-replication): delete replicated buckets
This commit is contained in:
@@ -2671,6 +2671,7 @@ mod tests {
|
||||
|
||||
let request = Request::new(DeleteBucketRequest {
|
||||
bucket: "test-bucket".to_string(),
|
||||
options: String::new(),
|
||||
});
|
||||
|
||||
let response = service.delete_bucket(request).await;
|
||||
@@ -2681,6 +2682,24 @@ mod tests {
|
||||
assert!(delete_response.success || delete_response.error.is_some());
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn test_delete_bucket_rejects_invalid_options() {
|
||||
let service = create_test_node_service();
|
||||
|
||||
let request = Request::new(DeleteBucketRequest {
|
||||
bucket: "test-bucket".to_string(),
|
||||
options: "invalid json".to_string(),
|
||||
});
|
||||
|
||||
let response = service
|
||||
.delete_bucket(request)
|
||||
.await
|
||||
.expect("RPC response should be returned")
|
||||
.into_inner();
|
||||
assert!(!response.success);
|
||||
assert!(response.error.is_some());
|
||||
}
|
||||
|
||||
#[tokio::test]
|
||||
async fn test_read_all_invalid_disk() {
|
||||
let service = create_test_node_service();
|
||||
|
||||
@@ -103,17 +103,20 @@ impl NodeService {
|
||||
debug!("delete bucket");
|
||||
|
||||
let request = request.into_inner();
|
||||
match self
|
||||
.local_peer
|
||||
.delete_bucket(
|
||||
&request.bucket,
|
||||
&DeleteBucketOptions {
|
||||
force: false,
|
||||
..Default::default()
|
||||
},
|
||||
)
|
||||
.await
|
||||
{
|
||||
let options = if request.options.is_empty() {
|
||||
DeleteBucketOptions::default()
|
||||
} else {
|
||||
match serde_json::from_str::<DeleteBucketOptions>(&request.options) {
|
||||
Ok(options) => options,
|
||||
Err(err) => {
|
||||
return Ok(Response::new(DeleteBucketResponse {
|
||||
success: false,
|
||||
error: Some(DiskError::other(format!("decode DeleteBucketOptions failed: {err}")).into()),
|
||||
}));
|
||||
}
|
||||
}
|
||||
};
|
||||
match self.local_peer.delete_bucket(&request.bucket, &options).await {
|
||||
Ok(_) => Ok(Response::new(DeleteBucketResponse {
|
||||
success: true,
|
||||
error: None,
|
||||
|
||||
Reference in New Issue
Block a user