From 62a333ad09fd3bd4e7faf3baaa4d755f3a93a6da Mon Sep 17 00:00:00 2001 From: evenyag Date: Sun, 9 Mar 2025 15:32:02 +0800 Subject: [PATCH] feat: import datanode --- Cargo.lock | 1 + src/datanode/src/lib.rs | 2 +- src/datanode/src/store.rs | 2 +- src/datanode/src/store/fs.rs | 3 ++- src/sst-convert/Cargo.toml | 1 + src/sst-convert/src/error.rs | 8 ++++++++ 6 files changed, 14 insertions(+), 3 deletions(-) diff --git a/Cargo.lock b/Cargo.lock index e3fc0afd89..2fec91b987 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -11228,6 +11228,7 @@ dependencies = [ "common-macro", "common-meta", "common-recordbatch", + "datanode", "datatypes", "futures", "futures-util", diff --git a/src/datanode/src/lib.rs b/src/datanode/src/lib.rs index 6a7b1c596d..cdb67d836f 100644 --- a/src/datanode/src/lib.rs +++ b/src/datanode/src/lib.rs @@ -25,6 +25,6 @@ pub mod heartbeat; pub mod metrics; pub mod region_server; pub mod service; -mod store; +pub mod store; #[cfg(any(test, feature = "testing"))] pub mod tests; diff --git a/src/datanode/src/store.rs b/src/datanode/src/store.rs index 64cacd4e85..e59c20eb94 100644 --- a/src/datanode/src/store.rs +++ b/src/datanode/src/store.rs @@ -15,7 +15,7 @@ //! object storage utilities mod azblob; -mod fs; +pub mod fs; mod gcs; mod oss; mod s3; diff --git a/src/datanode/src/store/fs.rs b/src/datanode/src/store/fs.rs index 119a5e1bf8..3ced4d8eab 100644 --- a/src/datanode/src/store/fs.rs +++ b/src/datanode/src/store/fs.rs @@ -24,7 +24,8 @@ use crate::config::FileConfig; use crate::error::{self, Result}; use crate::store; -pub(crate) async fn new_fs_object_store( +/// A helper function to create a file system object store. +pub async fn new_fs_object_store( data_home: &str, _file_config: &FileConfig, ) -> Result { diff --git a/src/sst-convert/Cargo.toml b/src/sst-convert/Cargo.toml index 771c3ae27b..d1ca10c7b1 100644 --- a/src/sst-convert/Cargo.toml +++ b/src/sst-convert/Cargo.toml @@ -13,6 +13,7 @@ common-error.workspace = true common-macro.workspace = true common-meta.workspace = true common-recordbatch.workspace = true +datanode.workspace = true datatypes.workspace = true futures.workspace = true futures-util.workspace = true diff --git a/src/sst-convert/src/error.rs b/src/sst-convert/src/error.rs index 8050e3fbea..c3ecb48fbf 100644 --- a/src/sst-convert/src/error.rs +++ b/src/sst-convert/src/error.rs @@ -73,6 +73,13 @@ pub enum Error { #[snafu(implicit)] location: Location, }, + + #[snafu(display("Datanode error"))] + Datanode { + source: datanode::error::Error, + #[snafu(implicit)] + location: Location, + }, } pub type Result = std::result::Result; @@ -87,6 +94,7 @@ impl ErrorExt for Error { Error::MissingTable { .. } => StatusCode::TableNotFound, Error::MissingColumn { .. } => StatusCode::TableColumnNotFound, Error::Mito { source, .. } => source.status_code(), + Error::Datanode { source, .. } => source.status_code(), } }