Skip to content

Commit 2645e2f

Browse files
committed
refactor(meta/error): add KVAppError::MetaError
Move all meta-store related erorr into `KVAppError::MetaError(MetaError)`. KVAppError does not need to deal with MetaError directly. Thus move them into an all-in-one sub error.
1 parent c436804 commit 2645e2f

File tree

3 files changed

+38
-31
lines changed

3 files changed

+38
-31
lines changed

src/meta/api/src/testing.rs

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,7 @@ use common_meta_types::KVAppError;
1919
use common_meta_types::MetaAPIError;
2020
use common_meta_types::MetaDataError;
2121
use common_meta_types::MetaDataReadError;
22+
use common_meta_types::MetaError;
2223
use common_proto_conv::FromToProto;
2324

2425
use crate::KVApi;
@@ -39,11 +40,11 @@ where
3940
return Ok(s);
4041
};
4142

42-
Err(KVAppError::APIError(MetaAPIError::DataError(
43-
MetaDataError::ReadError(MetaDataReadError::new(
43+
Err(KVAppError::MetaError(MetaError::APIError(
44+
MetaAPIError::DataError(MetaDataError::ReadError(MetaDataReadError::new(
4445
"get_kv_data",
4546
"not found",
4647
&AnyError::error(""),
47-
)),
48+
))),
4849
)))
4950
}

src/meta/types/src/kv_app_errors.rs

Lines changed: 34 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ use tonic::Status;
1818
use crate::AppError;
1919
use crate::MetaAPIError;
2020
use crate::MetaClientError;
21+
use crate::MetaError;
2122
use crate::MetaNetworkError;
2223
use crate::MetaStorageError;
2324

@@ -42,44 +43,50 @@ pub enum KVAppError {
4243
#[error(transparent)]
4344
AppError(#[from] AppError),
4445

45-
// ---
46-
// --- Local embedded meta-store errors ---
47-
// ---
48-
/// Errors occurred when accessing local embedded meta-store.
49-
#[error(transparent)]
50-
StorageError(#[from] MetaStorageError),
51-
52-
// ---
53-
// --- Remote meta-store service errors ---
54-
// ---
55-
/// Errors when invoking remote meta-service RPC.
56-
#[error(transparent)]
57-
NetworkError(#[from] MetaNetworkError),
58-
59-
/// Errors when creating or accessing the client to a remote meta-service.
60-
#[error(transparent)]
61-
ClientError(#[from] MetaClientError),
62-
63-
/// Remote error occurred when meta-service handling a request
64-
#[error(transparent)]
65-
APIError(#[from] MetaAPIError),
46+
#[error("fail to access meta-store: {0}")]
47+
MetaError(#[from] MetaError),
6648
}
6749

6850
impl From<KVAppError> for ErrorCode {
6951
fn from(e: KVAppError) -> Self {
7052
match e {
7153
KVAppError::AppError(app_err) => app_err.into(),
72-
KVAppError::NetworkError(net_err) => net_err.into(),
73-
KVAppError::StorageError(sto_err) => sto_err.into(),
74-
KVAppError::ClientError(ce) => ce.into(),
75-
KVAppError::APIError(e) => e.into(),
54+
KVAppError::MetaError(meta_err) => meta_err.into(),
7655
}
7756
}
7857
}
7958

8059
impl From<Status> for KVAppError {
8160
fn from(s: Status) -> Self {
82-
let net_err = MetaNetworkError::from(s);
83-
Self::NetworkError(net_err)
61+
let meta_err = MetaError::from(s);
62+
Self::MetaError(meta_err)
63+
}
64+
}
65+
66+
impl From<MetaStorageError> for KVAppError {
67+
fn from(e: MetaStorageError) -> Self {
68+
let meta_err = MetaError::from(e);
69+
Self::MetaError(meta_err)
70+
}
71+
}
72+
73+
impl From<MetaClientError> for KVAppError {
74+
fn from(e: MetaClientError) -> Self {
75+
let meta_err = MetaError::from(e);
76+
Self::MetaError(meta_err)
77+
}
78+
}
79+
80+
impl From<MetaNetworkError> for KVAppError {
81+
fn from(e: MetaNetworkError) -> Self {
82+
let meta_err = MetaError::from(e);
83+
Self::MetaError(meta_err)
84+
}
85+
}
86+
87+
impl From<MetaAPIError> for KVAppError {
88+
fn from(e: MetaAPIError) -> Self {
89+
let meta_err = MetaError::from(e);
90+
Self::MetaError(meta_err)
8491
}
8592
}

src/meta/types/src/meta_errors_into.rs

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,6 @@
1212
// See the License for the specific language governing permissions and
1313
// limitations under the License.
1414

15-
use std::error::Error;
1615
use std::fmt::Display;
1716

1817
use common_exception::ErrorCode;

0 commit comments

Comments
 (0)