mirror of
https://github.com/rustfs/rustfs.git
synced 2026-08-09 14:49:25 +00:00
rpc add local_peer
This commit is contained in:
+9
-4
@@ -1,3 +1,4 @@
|
||||
use ecstore::{disk::DiskStore, peer::LocalPeerS3Client};
|
||||
use tonic::{Request, Response, Status};
|
||||
use tracing::{debug, error, info};
|
||||
|
||||
@@ -10,10 +11,13 @@ use protos::{
|
||||
};
|
||||
|
||||
#[derive(Debug)]
|
||||
struct NodeService {}
|
||||
struct NodeService {
|
||||
pub local_peer: LocalPeerS3Client,
|
||||
}
|
||||
|
||||
pub fn make_server() -> NodeServer<impl Node> {
|
||||
NodeServer::new(NodeService {})
|
||||
pub fn make_server(local_disks: Vec<DiskStore>) -> NodeServer<impl Node> {
|
||||
let local_peer = LocalPeerS3Client::new(local_disks, None, None);
|
||||
NodeServer::new(NodeService { local_peer })
|
||||
}
|
||||
|
||||
#[tonic::async_trait]
|
||||
@@ -48,8 +52,9 @@ impl Node for NodeService {
|
||||
async fn make_bucket(&self, request: Request<MakeBucketRequest>) -> Result<Response<MakeBucketResponse>, Status> {
|
||||
debug!("make bucket");
|
||||
|
||||
let req = request.into_inner();
|
||||
let _req = request.into_inner();
|
||||
|
||||
// match self.local_peer.make_bucket(&name, &MakeBucketOptions::default()).await {}
|
||||
unimplemented!()
|
||||
}
|
||||
}
|
||||
|
||||
+6
-3
@@ -4,7 +4,7 @@ mod service;
|
||||
mod storage;
|
||||
|
||||
use clap::Parser;
|
||||
use ecstore::error::Result;
|
||||
use ecstore::{error::Result, store::ECStore};
|
||||
use grpc::make_server;
|
||||
use hyper_util::{
|
||||
rt::{TokioExecutor, TokioIo},
|
||||
@@ -66,9 +66,12 @@ async fn run(opt: config::Opt) -> Result<()> {
|
||||
// })
|
||||
// };
|
||||
|
||||
let store: ECStore = ECStore::new(opt.address.clone(), opt.volumes.clone()).await?;
|
||||
let local_disks = store.local_disks();
|
||||
|
||||
// Setup S3 service
|
||||
let service = {
|
||||
let mut b = S3ServiceBuilder::new(storage::ecfs::FS::new(opt.address.clone(), opt.volumes.clone()).await?);
|
||||
let mut b = S3ServiceBuilder::new(storage::ecfs::FS::new(store).await?);
|
||||
|
||||
let mut access_key = String::from_str(config::DEFAULT_ACCESS_KEY).unwrap();
|
||||
let mut secret_key = String::from_str(config::DEFAULT_SECRET_KEY).unwrap();
|
||||
@@ -101,7 +104,7 @@ async fn run(opt: config::Opt) -> Result<()> {
|
||||
|
||||
let hyper_service = service.into_shared();
|
||||
|
||||
let hybrid_service = TowerToHyperService::new(hybrid(hyper_service, make_server()));
|
||||
let hybrid_service = TowerToHyperService::new(hybrid(hyper_service, make_server(local_disks)));
|
||||
|
||||
let http_server = ConnBuilder::new(TokioExecutor::new());
|
||||
let graceful = hyper_util::server::graceful::GracefulShutdown::new();
|
||||
|
||||
@@ -43,8 +43,7 @@ pub struct FS {
|
||||
}
|
||||
|
||||
impl FS {
|
||||
pub async fn new(address: String, endpoints: Vec<String>) -> Result<Self> {
|
||||
let store: ECStore = ECStore::new(address, endpoints).await?;
|
||||
pub async fn new(store: ECStore) -> Result<Self> {
|
||||
Ok(Self { store })
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user