mirror of
https://github.com/rustfs/rustfs.git
synced 2026-08-27 15:37:02 +00:00
fix:make bucket exists (#428)
This commit is contained in:
@@ -177,15 +177,17 @@ impl S3PeerSys {
|
|||||||
let pools = cli.get_pools();
|
let pools = cli.get_pools();
|
||||||
let idx = i;
|
let idx = i;
|
||||||
if pools.unwrap_or_default().contains(&idx) {
|
if pools.unwrap_or_default().contains(&idx) {
|
||||||
per_pool_errs.push(errors[j].as_ref());
|
per_pool_errs.push(errors[j].clone());
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: reduceWriteQuorumErrs
|
if let Some(pool_err) =
|
||||||
|
reduce_write_quorum_errs(&per_pool_errs, BUCKET_OP_IGNORED_ERRS, (per_pool_errs.len() / 2) + 1)
|
||||||
|
{
|
||||||
|
return Err(pool_err);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO:
|
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
pub async fn list_bucket(&self, opts: &BucketOptions) -> Result<Vec<BucketInfo>> {
|
pub async fn list_bucket(&self, opts: &BucketOptions) -> Result<Vec<BucketInfo>> {
|
||||||
@@ -387,7 +389,6 @@ impl PeerS3Client for LocalPeerS3Client {
|
|||||||
if opts.force_create && matches!(e, Error::VolumeExists) {
|
if opts.force_create && matches!(e, Error::VolumeExists) {
|
||||||
return Ok(());
|
return Ok(());
|
||||||
}
|
}
|
||||||
|
|
||||||
Err(e)
|
Err(e)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -405,7 +406,9 @@ impl PeerS3Client for LocalPeerS3Client {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: reduceWriteQuorumErrs
|
if let Some(err) = reduce_write_quorum_errs(&errs, BUCKET_OP_IGNORED_ERRS, (local_disks.len() / 2) + 1) {
|
||||||
|
return Err(err);
|
||||||
|
}
|
||||||
|
|
||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1221,7 +1221,7 @@ impl StorageAPI for ECStore {
|
|||||||
}
|
}
|
||||||
|
|
||||||
if let Err(err) = self.peer_sys.make_bucket(bucket, opts).await {
|
if let Err(err) = self.peer_sys.make_bucket(bucket, opts).await {
|
||||||
let err = err.into();
|
let err = to_object_err(err.into(), vec![bucket]);
|
||||||
if !is_err_bucket_exists(&err) {
|
if !is_err_bucket_exists(&err) {
|
||||||
let _ = self
|
let _ = self
|
||||||
.delete_bucket(
|
.delete_bucket(
|
||||||
@@ -1234,7 +1234,6 @@ impl StorageAPI for ECStore {
|
|||||||
)
|
)
|
||||||
.await;
|
.await;
|
||||||
}
|
}
|
||||||
|
|
||||||
return Err(err);
|
return Err(err);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
@@ -311,7 +311,7 @@ impl S3 for FS {
|
|||||||
.make_bucket(
|
.make_bucket(
|
||||||
&bucket,
|
&bucket,
|
||||||
&MakeBucketOptions {
|
&MakeBucketOptions {
|
||||||
force_create: true,
|
force_create: false, // TODO: force support
|
||||||
lock_enabled: object_lock_enabled_for_bucket.is_some_and(|v| v),
|
lock_enabled: object_lock_enabled_for_bucket.is_some_and(|v| v),
|
||||||
..Default::default()
|
..Default::default()
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user