fix: 解决依赖endpoint出现的问题

This commit is contained in:
shiro.lee
2024-07-06 13:58:57 +08:00
parent 563f4d79a3
commit 6812c94cc6
4 changed files with 31 additions and 22 deletions
+9 -9
View File
@@ -14,7 +14,7 @@ type Client = Arc<Box<dyn PeerS3Client>>;
#[async_trait]
pub trait PeerS3Client: Debug + Sync + Send + 'static {
async fn make_bucket(&self, bucket: &str, opts: &MakeBucketOptions) -> Result<()>;
fn get_pools(&self) -> Vec<i32>;
fn get_pools(&self) -> Vec<usize>;
}
#[derive(Debug)]
@@ -53,7 +53,7 @@ impl S3PeerSys {
#[async_trait]
impl PeerS3Client for S3PeerSys {
fn get_pools(&self) -> Vec<i32> {
fn get_pools(&self) -> Vec<usize> {
unimplemented!()
}
async fn make_bucket(&self, bucket: &str, opts: &MakeBucketOptions) -> Result<()> {
@@ -80,7 +80,7 @@ impl PeerS3Client for S3PeerSys {
let mut per_pool_errs = Vec::with_capacity(self.clients.len());
for (j, cli) in self.clients.iter().enumerate() {
let pools = cli.get_pools();
let idx = i as i32;
let idx = i;
if pools.contains(&idx) {
per_pool_errs.push(errors[j].as_ref());
}
@@ -99,11 +99,11 @@ impl PeerS3Client for S3PeerSys {
pub struct LocalPeerS3Client {
pub local_disks: Vec<DiskStore>,
pub node: Node,
pub pools: Vec<i32>,
pub pools: Vec<usize>,
}
impl LocalPeerS3Client {
fn new(local_disks: Vec<DiskStore>, node: Node, pools: Vec<i32>) -> Self {
fn new(local_disks: Vec<DiskStore>, node: Node, pools: Vec<usize>) -> Self {
Self {
local_disks,
node,
@@ -114,7 +114,7 @@ impl LocalPeerS3Client {
#[async_trait]
impl PeerS3Client for LocalPeerS3Client {
fn get_pools(&self) -> Vec<i32> {
fn get_pools(&self) -> Vec<usize> {
self.pools.clone()
}
async fn make_bucket(&self, bucket: &str, opts: &MakeBucketOptions) -> Result<()> {
@@ -154,18 +154,18 @@ impl PeerS3Client for LocalPeerS3Client {
#[derive(Debug)]
pub struct RemotePeerS3Client {
pub node: Node,
pub pools: Vec<i32>,
pub pools: Vec<usize>,
}
impl RemotePeerS3Client {
fn new(node: Node, pools: Vec<i32>) -> Self {
fn new(node: Node, pools: Vec<usize>) -> Self {
Self { node, pools }
}
}
#[async_trait]
impl PeerS3Client for RemotePeerS3Client {
fn get_pools(&self) -> Vec<i32> {
fn get_pools(&self) -> Vec<usize> {
unimplemented!()
}
async fn make_bucket(&self, _bucket: &str, _opts: &MakeBucketOptions) -> Result<()> {