Skip to content

Commit 16f00a4

Browse files
committed
bump: version=0.4.2
1 parent 7d3e35a commit 16f00a4

File tree

11 files changed

+83
-20
lines changed

11 files changed

+83
-20
lines changed

Cargo.toml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
[package]
22
name = "nacos-sdk-rust-binding-py"
3-
version = "0.4.0"
3+
version = "0.4.2"
44
edition = "2021"
55
license = "Apache-2.0"
66
publish = false
@@ -23,7 +23,7 @@ pyo3-asyncio = { version = "0.20", features = ["tokio-runtime"] }
2323
# for block api
2424
futures = { version = "0.3", default-features = false, features = [] }
2525

26-
nacos-sdk = { version = "0.4.0", features = ["default"] }
26+
nacos-sdk = { version = "0.4.2", features = ["default", "auth-by-aliyun"] }
2727
#nacos-sdk = { git = "https://github.com/nacos-group/nacos-sdk-rust.git", features = ["default"] }
2828

2929
tracing-subscriber = { version = "0.3", features = ["default"] }

examples/async_config.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import asyncio
44
import nacos_sdk_rust_binding_py as nacos
55

6-
client_options = nacos.ClientOptions("0.0.0.0:8848", "love", "simple_app_py", "nacos", "nacos")
6+
client_options = nacos.ClientOptions("127.0.0.1:8848", "love", "simple_app_py", "nacos", "nacos")
77

88
# 一般大部分情况下,应用下仅需一个客户端,而且需要长期持有直至应用停止。
99
# 因为它内部会初始化与服务端的长链接,后续的数据交互及服务变更等订阅,都是实时地通过长链接告知客户端的。

examples/async_naming.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import asyncio
44
import nacos_sdk_rust_binding_py as nacos
55

6-
client_options = nacos.ClientOptions("0.0.0.0:8848", "love", "simple_app_py", "nacos", "nacos")
6+
client_options = nacos.ClientOptions("127.0.0.1:8848", "love", "simple_app_py", "nacos", "nacos")
77

88
# 一般大部分情况下,应用下仅需一个客户端,而且需要长期持有直至应用停止。
99
# 因为它内部会初始化与服务端的长链接,后续的数据交互及服务变更等订阅,都是实时地通过长链接告知客户端的。

examples/config.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import time
44
import nacos_sdk_rust_binding_py as nacos
55

6-
client_options = nacos.ClientOptions("0.0.0.0:8848", "love", "simple_app_py", "nacos", "nacos")
6+
client_options = nacos.ClientOptions("127.0.0.1:8848", "love", "simple_app_py", "nacos", "nacos")
77

88
# 一般大部分情况下,应用下仅需一个客户端,而且需要长期持有直至应用停止。
99
# 因为它内部会初始化与服务端的长链接,后续的数据交互及服务变更等订阅,都是实时地通过长链接告知客户端的。

examples/naming.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
import time
44
import nacos_sdk_rust_binding_py as nacos
55

6-
client_options = nacos.ClientOptions("0.0.0.0:8848", "love", "simple_app_py", "nacos", "nacos")
6+
client_options = nacos.ClientOptions("127.0.0.1:8848", "love", "simple_app_py", "nacos", "nacos")
77

88
# 一般大部分情况下,应用下仅需一个客户端,而且需要长期持有直至应用停止。
99
# 因为它内部会初始化与服务端的长链接,后续的数据交互及服务变更等订阅,都是实时地通过长链接告知客户端的。

nacos_sdk_rust_binding_py.pyi

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,9 @@ class ClientOptions:
88
app_name: Optional[str],
99
username: Optional[str],
1010
password: Optional[str],
11+
access_key: Optional[str],
12+
access_secret: Optional[str],
13+
signature_region_id: Optional[str],
1114
naming_push_empty_protection: Optional[bool],
1215
naming_load_cache_at_start: Optional[bool],
1316
) -> None: ...

src/async_config.rs

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -32,18 +32,29 @@ impl AsyncNacosConfigClient {
3232
);
3333

3434
// need enable_auth_plugin_http with username & password
35-
let is_enable_auth = client_options.username.is_some() && client_options.password.is_some();
35+
let is_enable_auth_http =
36+
client_options.username.is_some() && client_options.password.is_some();
37+
// need enable_auth_plugin_aliyun with access_key & access_secret
38+
let is_enable_auth_aliyun =
39+
client_options.access_key.is_some() && client_options.access_secret.is_some();
3640

37-
let props = if is_enable_auth {
41+
let props = if is_enable_auth_http {
3842
props
3943
.auth_username(client_options.username.unwrap())
4044
.auth_password(client_options.password.unwrap())
45+
} else if is_enable_auth_aliyun {
46+
props
47+
.auth_access_key(client_options.access_key.unwrap())
48+
.auth_access_secret(client_options.access_secret.unwrap())
49+
.auth_signature_region_id(client_options.signature_region_id.unwrap())
4150
} else {
4251
props
4352
};
4453

45-
let config_service_builder = if is_enable_auth {
54+
let config_service_builder = if is_enable_auth_http {
4655
nacos_sdk::api::config::ConfigServiceBuilder::new(props).enable_auth_plugin_http()
56+
} else if is_enable_auth_aliyun {
57+
nacos_sdk::api::config::ConfigServiceBuilder::new(props).enable_auth_plugin_aliyun()
4758
} else {
4859
nacos_sdk::api::config::ConfigServiceBuilder::new(props)
4960
};

src/async_naming.rs

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -39,18 +39,29 @@ impl AsyncNacosNamingClient {
3939
.naming_load_cache_at_start(client_options.naming_load_cache_at_start.unwrap_or(false));
4040

4141
// need enable_auth_plugin_http with username & password
42-
let is_enable_auth = client_options.username.is_some() && client_options.password.is_some();
42+
let is_enable_auth_http =
43+
client_options.username.is_some() && client_options.password.is_some();
44+
// need enable_auth_plugin_aliyun with access_key & access_secret
45+
let is_enable_auth_aliyun =
46+
client_options.access_key.is_some() && client_options.access_secret.is_some();
4347

44-
let props = if is_enable_auth {
48+
let props = if is_enable_auth_http {
4549
props
4650
.auth_username(client_options.username.unwrap())
4751
.auth_password(client_options.password.unwrap())
52+
} else if is_enable_auth_aliyun {
53+
props
54+
.auth_access_key(client_options.access_key.unwrap())
55+
.auth_access_secret(client_options.access_secret.unwrap())
56+
.auth_signature_region_id(client_options.signature_region_id.unwrap())
4857
} else {
4958
props
5059
};
5160

52-
let naming_service_builder = if is_enable_auth {
61+
let naming_service_builder = if is_enable_auth_http {
5362
nacos_sdk::api::naming::NamingServiceBuilder::new(props).enable_auth_plugin_http()
63+
} else if is_enable_auth_aliyun {
64+
nacos_sdk::api::naming::NamingServiceBuilder::new(props).enable_auth_plugin_aliyun()
5465
} else {
5566
nacos_sdk::api::naming::NamingServiceBuilder::new(props)
5667
};

src/config.rs

Lines changed: 14 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -29,18 +29,29 @@ impl NacosConfigClient {
2929
);
3030

3131
// need enable_auth_plugin_http with username & password
32-
let is_enable_auth = client_options.username.is_some() && client_options.password.is_some();
32+
let is_enable_auth_http =
33+
client_options.username.is_some() && client_options.password.is_some();
34+
// need enable_auth_plugin_aliyun with access_key & access_secret
35+
let is_enable_auth_aliyun =
36+
client_options.access_key.is_some() && client_options.access_secret.is_some();
3337

34-
let props = if is_enable_auth {
38+
let props = if is_enable_auth_http {
3539
props
3640
.auth_username(client_options.username.unwrap())
3741
.auth_password(client_options.password.unwrap())
42+
} else if is_enable_auth_aliyun {
43+
props
44+
.auth_access_key(client_options.access_key.unwrap())
45+
.auth_access_secret(client_options.access_secret.unwrap())
46+
.auth_signature_region_id(client_options.signature_region_id.unwrap())
3847
} else {
3948
props
4049
};
4150

42-
let config_service_builder = if is_enable_auth {
51+
let config_service_builder = if is_enable_auth_http {
4352
nacos_sdk::api::config::ConfigServiceBuilder::new(props).enable_auth_plugin_http()
53+
} else if is_enable_auth_aliyun {
54+
nacos_sdk::api::config::ConfigServiceBuilder::new(props).enable_auth_plugin_aliyun()
4455
} else {
4556
nacos_sdk::api::config::ConfigServiceBuilder::new(props)
4657
};

src/lib.rs

Lines changed: 18 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -67,12 +67,21 @@ pub struct ClientOptions {
6767
/// AppName
6868
#[pyo3(set, get)]
6969
pub app_name: Option<String>,
70-
/// Username for Auth
70+
/// Username for Auth, Login by Http with Token
7171
#[pyo3(set, get)]
7272
pub username: Option<String>,
73-
/// Password for Auth
73+
/// Password for Auth, Login by Http with Token
7474
#[pyo3(set, get)]
7575
pub password: Option<String>,
76+
/// Access_Key for Auth, Login by Aliyun Ram
77+
#[pyo3(set, get)]
78+
pub access_key: Option<String>,
79+
/// Access_Secret for Auth, Login by Aliyun Ram
80+
#[pyo3(set, get)]
81+
pub access_secret: Option<String>,
82+
/// Signature_Region_Id for Auth, Login by Aliyun Ram
83+
#[pyo3(set, get)]
84+
pub signature_region_id: Option<String>,
7685
/// naming push_empty_protection, default true
7786
#[pyo3(set, get)]
7887
pub naming_push_empty_protection: Option<bool>,
@@ -84,12 +93,16 @@ pub struct ClientOptions {
8493
#[pymethods]
8594
impl ClientOptions {
8695
#[new]
96+
#[allow(clippy::too_many_arguments)]
8797
pub fn new(
8898
server_addr: String,
8999
namespace: String,
90100
app_name: Option<String>,
91101
username: Option<String>,
92102
password: Option<String>,
103+
access_key: Option<String>,
104+
access_secret: Option<String>,
105+
signature_region_id: Option<String>,
93106
naming_push_empty_protection: Option<bool>,
94107
naming_load_cache_at_start: Option<bool>,
95108
) -> PyResult<ClientOptions> {
@@ -99,6 +112,9 @@ impl ClientOptions {
99112
app_name,
100113
username,
101114
password,
115+
access_key,
116+
access_secret,
117+
signature_region_id,
102118
naming_push_empty_protection,
103119
naming_load_cache_at_start,
104120
})

0 commit comments

Comments
 (0)