Skip to content

Commit 030985a

Browse files
authoredOct 24, 2023
Update tardis to 0.1.0 rc.1 (ideal-world#25)
* prepare update for tardis beta 13 * update * cargo fmt
1 parent aac2989 commit 030985a

13 files changed

+60
-58
lines changed
 

‎Cargo.toml

+4-4
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[workspace]
22
members = ["kernel", "services/*"]
3-
resolver="2"
3+
resolver = "2"
44

55
[profile.release]
66
lto = true
@@ -33,9 +33,9 @@ tracing-subscriber = { version = "0.3", features = ["env-filter"] }
3333
urlencoding = { version = "2" }
3434

3535
# Tardis
36-
tardis = { version = "0.1.0-beta.12" }
36+
tardis = { version = "0.1.0-rc.1" }
3737
# tardis = { path = "../tardis/tardis" }
38-
#tardis = { git = "https://github.com/ideal-world/tardis.git", rev = "9424e16" }
38+
# tardis = { git = "https://github.com/ideal-world/tardis.git", rev = "25baf2a" }
3939

4040
# Http
4141
http = { version = "0.2" }
@@ -54,7 +54,7 @@ schemars = { version = "0.8.6" }
5454

5555
# Test
5656
reqwest = { version = "0.11", features = ["json", "gzip", "brotli"] }
57-
57+
testcontainers-modules = { version = "0.1" }
5858
#async-compression
5959
async-compression = { version = "0.3.13", default-features = false, features = [
6060
"tokio",

‎kernel/Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,7 @@ tardis = { workspace = true, features = ["test", "web-client", "web-server"] }
5353
reqwest = { workspace = true }
5454
tracing-subscriber = { workspace = true }
5555
criterion = { version = "0.5", features = ["async_tokio"] }
56-
56+
testcontainers-modules ={ workspace = true }
5757
[package.metadata.docs.rs]
5858
all-features = true
5959
rustdoc-args = ["--cfg", "docsrs"]

‎kernel/src/config/config_by_k8s.rs

+3-3
Original file line numberDiff line numberDiff line change
@@ -341,7 +341,7 @@ pub async fn init(namespaces: Option<String>) -> TardisResult<Vec<(SgGateway, Ve
341341
}
342342

343343
async fn get_http_spaceroute_by_api(
344-
gateway_uniques: &Vec<String>,
344+
gateway_uniques: &[String],
345345
(http_spaceroute_api, http_route_api): (&Api<HttpSpaceroute>, &Api<HttpRoute>),
346346
) -> TardisResult<Vec<HttpSpaceroute>> {
347347
let mut http_route_objs: Vec<HttpSpaceroute> = http_spaceroute_api
@@ -431,7 +431,7 @@ async fn overload_gateway(gateway_obj: Gateway, http_route_api_refs: (&Api<HttpS
431431
let mut gateway_uniques_guard = GATEWAY_UNIQUES.write().await;
432432
gateway_uniques_guard.push(gateway_config.name.clone());
433433
}
434-
let http_route_objs: Vec<HttpSpaceroute> = get_http_spaceroute_by_api(&vec![gateway_unique], http_route_api_refs)
434+
let http_route_objs: Vec<HttpSpaceroute> = get_http_spaceroute_by_api(&[gateway_unique], http_route_api_refs)
435435
.await
436436
.map_err(|error| TardisError::wrap(&format!("[SG.Config] Get HttpRoute Kubernetes error: {error:?}"), ""))
437437
.expect("");
@@ -515,7 +515,7 @@ async fn overload_http_route(gateway_obj: Gateway, http_route_api_refs: (&Api<Ht
515515
.expect("[SG.Config] Gateway config not found for http_route parent ref")
516516
.clone();
517517

518-
let http_route_objs: Vec<HttpSpaceroute> = get_http_spaceroute_by_api(&vec![gateway_unique], http_route_api_refs)
518+
let http_route_objs: Vec<HttpSpaceroute> = get_http_spaceroute_by_api(&[gateway_unique], http_route_api_refs)
519519
.await
520520
.map_err(|error| TardisError::wrap(&format!("[SG.Config] Get HttpRoute Kubernetes error: {error:?}"), ""))
521521
.expect("");

‎kernel/src/functions/cache_client.rs

+2-1
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ use std::{
66
use tardis::{
77
basic::{error::TardisError, result::TardisResult},
88
cache::cache_client::TardisCacheClient,
9+
config::config_dto::CacheModuleConfig,
910
tokio::sync::RwLock,
1011
};
1112

@@ -15,7 +16,7 @@ pub fn cache_clients() -> &'static RwLock<HashMap<String, Arc<TardisCacheClient>
1516
}
1617

1718
pub async fn init(name: impl Into<String>, url: &str) -> TardisResult<()> {
18-
let cache = TardisCacheClient::init(url).await?;
19+
let cache = TardisCacheClient::init(&CacheModuleConfig::builder().url(url.parse().expect("invalid url")).build()).await?;
1920
{
2021
let mut write = cache_clients().write().await;
2122
write.insert(name.into(), Arc::new(cache));

‎kernel/src/functions/server.rs

+14-2
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ use std::sync::Arc;
2121
use std::time::Duration;
2222
use std::vec::Vec;
2323
use std::{io, sync};
24-
use tardis::basic::tracing::TardisTracing;
24+
use tardis::config::config_dto::LogConfig;
2525
use tardis::tokio::time::timeout;
2626
use tardis::{
2727
basic::{error::TardisError, result::TardisResult},
@@ -52,7 +52,19 @@ pub async fn init(gateway_conf: &SgGateway) -> TardisResult<Vec<SgServerInst>> {
5252
}
5353
if let Some(log_level) = gateway_conf.parameters.log_level.clone() {
5454
log::debug!("[SG.Server] change log level to {log_level}");
55-
TardisTracing::update_log_level_by_domain_code(crate::constants::DOMAIN_CODE, &log_level)?;
55+
let fw_config = TardisFuns::fw_config();
56+
let old_configs = fw_config.log();
57+
let directive = format!("{domain}={log_level}", domain = crate::constants::DOMAIN_CODE).parse().expect("invalid directive");
58+
let mut directives = old_configs.directives.clone();
59+
if let Some(index) = directives.iter().position(|d| d.to_string().starts_with(crate::constants::DOMAIN_CODE)) {
60+
directives.remove(index);
61+
}
62+
directives.push(directive);
63+
TardisFuns::tracing().update_config(&LogConfig {
64+
level: old_configs.level.clone(),
65+
directives,
66+
..Default::default()
67+
})?;
5668
}
5769
let (shutdown_tx, _) = tokio::sync::watch::channel(());
5870

‎kernel/src/functions/websocket.rs

+1-4
Original file line numberDiff line numberDiff line change
@@ -141,10 +141,7 @@ pub async fn process(gateway_name: Arc<String>, remote_addr: SocketAddr, backend
141141
}
142142
}
143143
});
144-
let accept_key = TardisFuns::crypto.base64.encode_raw(TardisFuns::crypto.digest.digest_raw(
145-
format!("{request_key}258EAFA5-E914-47DA-95CA-C5AB0DC85B11").as_bytes(),
146-
tardis::crypto::rust_crypto::sha1::Sha1::new(),
147-
)?);
144+
let accept_key = TardisFuns::crypto.base64.encode_raw(TardisFuns::crypto.digest.sha1(format!("{request_key}258EAFA5-E914-47DA-95CA-C5AB0DC85B11").as_bytes())?);
148145

149146
let mut response = Response::new(Body::empty());
150147
*response.status_mut() = StatusCode::SWITCHING_PROTOCOLS;

‎kernel/src/helpers/k8s_helper.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,6 @@ pub(crate) fn get_k8s_obj_unique(obj: &impl kube::Resource) -> String {
2121
}
2222

2323
/// Get uid and version map
24-
pub(crate) fn get_obj_uid_version_map(resources: &Vec<impl kube::Resource>) -> HashMap<String, String> {
24+
pub(crate) fn get_obj_uid_version_map(resources: &[impl kube::Resource]) -> HashMap<String, String> {
2525
resources.iter().map(|res| (res.meta().uid.clone().unwrap_or("".to_string()), res.meta().resource_version.clone().unwrap_or_default())).collect()
2626
}

‎kernel/src/plugins/filters/status.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -276,13 +276,13 @@ mod tests {
276276

277277
use http::{HeaderMap, Method, StatusCode, Uri, Version};
278278
use hyper::Body;
279-
280279
use tardis::{
281280
basic::{error::TardisError, result::TardisResult},
282281
test::test_container::TardisTestContainer,
283-
testcontainers::{self, clients::Cli, images::redis::Redis, Container},
282+
testcontainers::{self, clients::Cli, Container},
284283
tokio,
285284
};
285+
use testcontainers_modules::redis::Redis;
286286

287287
#[cfg(feature = "cache")]
288288
use crate::functions;

‎kernel/tests/init_cache_container.rs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
use tardis::basic::result::TardisResult;
22
use tardis::test::test_container::TardisTestContainer;
33
use tardis::testcontainers::clients::Cli;
4-
use tardis::testcontainers::images::redis::Redis;
54
use tardis::testcontainers::Container;
5+
use testcontainers_modules::redis::Redis;
66

77
pub struct LifeHold<'a> {
88
pub redis: Container<'a, Redis>,

‎kernel/tests/test_config_by_redis.rs

+9-3
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ use serde_json::Value;
55
use tardis::{
66
basic::result::TardisResult,
77
cache::cache_client::TardisCacheClient,
8+
config::config_dto::{CacheModuleConfig, WebClientModuleConfig},
89
testcontainers,
910
tokio::{self, time::sleep},
1011
web::web_client::TardisWebClient,
@@ -14,14 +15,19 @@ use tardis::{
1415
async fn test_config_by_redis() -> TardisResult<()> {
1516
env::set_var("RUST_LOG", "info,spacegate_kernel=trace");
1617
tracing_subscriber::fmt::init();
17-
let http_client = TardisWebClient::init(100)?;
18+
let http_client = TardisWebClient::init(&WebClientModuleConfig {
19+
connect_timeout_sec: 100,
20+
..Default::default()
21+
})?;
1822
let docker = testcontainers::clients::Cli::default();
1923
let (cache_url, _x) = init_cache_container::init(&docker).await?;
20-
2124
// Without keys
2225
assert!(spacegate_kernel::startup(false, Some(cache_url.clone()), None).await.is_err());
2326

24-
let cache_client = TardisCacheClient::init(&cache_url).await?;
27+
let cache_client = TardisCacheClient::init(&CacheModuleConfig {
28+
url: cache_url.parse().expect("invalid url"),
29+
})
30+
.await?;
2531
cache_client
2632
.hset(
2733
"sg:conf:gateway",

‎kernel/tests/test_custom_plugin.rs

+6-2
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ use spacegate_kernel::{
1515
def_filter,
1616
plugins::filters::SgPluginFilter,
1717
};
18+
use tardis::config::config_dto::WebClientModuleConfig;
1819
use tardis::{
1920
basic::{error::TardisError, result::TardisResult},
2021
tokio::{self, time::sleep},
@@ -79,11 +80,14 @@ async fn test_custom_plugin() -> TardisResult<()> {
7980
)
8081
.await?;
8182
sleep(Duration::from_millis(500)).await;
82-
let client = TardisWebClient::init(100)?;
83+
let client = TardisWebClient::init(&WebClientModuleConfig {
84+
connect_timeout_sec: 100,
85+
..Default::default()
86+
})?;
8387
let resp = client.get_to_str("http://localhost:8888/get?dd", None).await?;
8488
assert_eq!(resp.code, 401);
8589

86-
let resp = client.get::<Value>("http://localhost:8888/get?dd", Some(vec![("Authorization".to_string(), "xxxxx".to_string())])).await?;
90+
let resp = client.get::<Value>("http://localhost:8888/get?dd", [("Authorization".to_string(), "xxxxx".to_string())]).await?;
8791
assert_eq!(resp.code, 200);
8892
assert!(resp.body.unwrap().get("url").unwrap().as_str().unwrap().contains("https://localhost/get?dd"));
8993
Ok(())

‎kernel/tests/test_https.rs

+13-3
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@ use spacegate_kernel::config::{
77
};
88
use tardis::{
99
basic::result::TardisResult,
10+
config::config_dto::WebClientModuleConfig,
1011
tokio::{self, time::sleep},
1112
web::web_client::{TardisHttpResponse, TardisWebClient},
1213
};
@@ -152,7 +153,10 @@ async fn test_https() -> TardisResult<()> {
152153
)
153154
.await?;
154155
sleep(Duration::from_millis(500)).await;
155-
let client = TardisWebClient::init(100)?;
156+
let client = TardisWebClient::init(&WebClientModuleConfig {
157+
connect_timeout_sec: 100,
158+
..Default::default()
159+
})?;
156160
let resp: TardisHttpResponse<Value> = client
157161
.post(
158162
"https://localhost:8888/post?dd",
@@ -165,7 +169,10 @@ async fn test_https() -> TardisResult<()> {
165169
.await?;
166170
assert!(resp.body.unwrap().get("data").unwrap().to_string().contains("星航"));
167171

168-
let client = TardisWebClient::init(100)?;
172+
let client = TardisWebClient::init(&WebClientModuleConfig {
173+
connect_timeout_sec: 100,
174+
..Default::default()
175+
})?;
169176
let resp: TardisHttpResponse<Value> = client
170177
.post(
171178
"https://localhost:8889/post?dd",
@@ -178,7 +185,10 @@ async fn test_https() -> TardisResult<()> {
178185
.await?;
179186
assert!(resp.body.unwrap().get("data").unwrap().to_string().contains("星航"));
180187

181-
let client = TardisWebClient::init(100)?;
188+
let client = TardisWebClient::init(&WebClientModuleConfig {
189+
connect_timeout_sec: 100,
190+
..Default::default()
191+
})?;
182192
let resp: TardisHttpResponse<Value> = client
183193
.post(
184194
"https://localhost:8890/post?dd",

‎kernel/tests/test_websocket.rs

+3-31
Original file line numberDiff line numberDiff line change
@@ -19,11 +19,12 @@ use spacegate_kernel::config::{
1919
plugin_filter_dto,
2020
};
2121
use spacegate_kernel::plugins::filters;
22+
use tardis::config::config_dto::WebServerCommonConfig;
2223
use tardis::web::web_server::WebServerModule;
2324
use tardis::web::ws_processor::TardisWebsocketMgrMessage;
2425
use tardis::{
2526
basic::result::TardisResult,
26-
config::config_dto::{CacheConfig, DBConfig, FrameworkConfig, MQConfig, MailConfig, OSConfig, SearchConfig, TardisConfig, WebServerConfig},
27+
config::config_dto::{FrameworkConfig, TardisConfig, WebServerConfig},
2728
tokio::{
2829
self,
2930
sync::{broadcast::Sender, RwLock},
@@ -51,36 +52,7 @@ async fn test_webscoket() -> TardisResult<()> {
5152
cs: Default::default(),
5253
fw: FrameworkConfig {
5354
app: Default::default(),
54-
web_server: WebServerConfig {
55-
enabled: true,
56-
port: 8081,
57-
..Default::default()
58-
},
59-
web_client: Default::default(),
60-
cache: CacheConfig {
61-
enabled: false,
62-
..Default::default()
63-
},
64-
db: DBConfig {
65-
enabled: false,
66-
..Default::default()
67-
},
68-
mq: MQConfig {
69-
enabled: false,
70-
..Default::default()
71-
},
72-
search: SearchConfig {
73-
enabled: false,
74-
..Default::default()
75-
},
76-
mail: MailConfig {
77-
enabled: false,
78-
..Default::default()
79-
},
80-
os: OSConfig {
81-
enabled: false,
82-
..Default::default()
83-
},
55+
web_server: Some(WebServerConfig::builder().common(WebServerCommonConfig::builder().port(8081).build()).default(Default::default()).build()),
8456
..Default::default()
8557
},
8658
})

0 commit comments

Comments
 (0)
Please sign in to comment.