Skip to content

Commit e04cc31

Browse files
authored
spi-conf: Spi conf add more nacos error codes (#484)
* add more error code to nacos grpc protocal * fix test
1 parent 236e69f commit e04cc31

File tree

3 files changed

+47
-5
lines changed

3 files changed

+47
-5
lines changed

services/spi-conf/src/main.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@ mod initializer;
1111
async fn main() -> TardisResult<()> {
1212
TardisFuns::init(Some("config")).await?;
1313
let web_server = TardisFuns::web_server();
14-
initializer::init(web_server).await?;
14+
initializer::init(&web_server).await?;
1515
web_server.start().await?;
1616
web_server.await;
1717
Ok(())

spi/spi-conf/src/api/nacos/grpc/mod.rs

Lines changed: 45 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -106,6 +106,26 @@ impl NaocsGrpcResponse {
106106
request_id: None,
107107
}
108108
}
109+
pub const fn not_found() -> Self {
110+
Self {
111+
result_code: 500,
112+
error_code: Some(300),
113+
message: None,
114+
request_id: None,
115+
}
116+
}
117+
pub const fn unregister() -> Self {
118+
Self {
119+
result_code: 500,
120+
error_code: Some(301),
121+
message: None,
122+
request_id: None,
123+
}
124+
}
125+
}
126+
127+
impl AsPayload for NaocsGrpcResponse {
128+
const TYPE_NAME: &'static str = "Response";
109129
}
110130

111131
#[derive(Clone, Debug, Serialize, Deserialize)]
@@ -170,6 +190,24 @@ pub struct ConfigQueryResponse {
170190
pub response: NaocsGrpcResponse,
171191
}
172192

193+
#[derive(Clone, Debug, Serialize, Deserialize)]
194+
pub struct ConfigQueryResponseNotFound {
195+
#[serde(flatten)]
196+
pub response: NaocsGrpcResponse,
197+
}
198+
199+
impl Default for ConfigQueryResponseNotFound {
200+
fn default() -> Self {
201+
ConfigQueryResponseNotFound {
202+
response: NaocsGrpcResponse::not_found(),
203+
}
204+
}
205+
}
206+
207+
impl AsPayload for ConfigQueryResponseNotFound {
208+
const TYPE_NAME: &'static str = "ConfigQueryResponse";
209+
}
210+
173211
impl From<ConfigItem> for ConfigQueryResponse {
174212
fn from(item: ConfigItem) -> Self {
175213
Self {
@@ -238,16 +276,20 @@ pub async fn dispatch_request(type_info: &str, value: &str, access_token: Option
238276
"ServerCheckRequest" => ServerCheckResponse::success(None).as_payload(),
239277
"HealthCheckRequest" => HealthCheckResponse::success().as_payload(),
240278
"ConfigQueryRequest" => {
241-
let ctx = get_ctx.await?;
279+
let Ok(ctx) = get_ctx.await else {
280+
return Ok(NaocsGrpcResponse::unregister().as_payload())
281+
};
242282
let ConfigQueryRequest { data_id, group, tenant } = serde_json::from_str(value).map_err(|_e| TardisError::bad_request("expect a ConfigQueryRequest", ""))?;
243283
let mut descriptor = ConfigDescriptor {
244284
namespace_id: tenant.unwrap_or("public".into()),
245285
data_id,
246286
group,
247287
..Default::default()
248288
};
249-
let result: ConfigQueryResponse = get_config_detail(&mut descriptor, &funs, &ctx).await?.into();
250-
result.as_payload()
289+
match get_config_detail(&mut descriptor, &funs, &ctx).await {
290+
Ok(data) => ConfigQueryResponse::from(data).as_payload(),
291+
Err(_) => ConfigQueryResponseNotFound::default().as_payload(),
292+
}
251293
}
252294
"ConfigBatchListenRequest" => {
253295
let ctx = get_ctx.await?;

spi/spi-conf/tests/spi_conf_test_common.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ pub async fn init_tardis(docker: &Cli) -> TardisResult<Holder> {
4040
bios_basic::rbum::rbum_initializer::init(DOMAIN_CODE, RbumConfig::default()).await?;
4141
let web_server = TardisFuns::web_server();
4242
rbum_initializer::init("bios-spi", RbumConfig::default()).await?;
43-
conf_initializer::init(web_server).await?;
43+
conf_initializer::init(&web_server).await?;
4444
Ok(holder)
4545
}
4646

0 commit comments

Comments
 (0)