You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@rocketmq.apache.org by li...@apache.org on 2022/05/25 09:58:09 UTC
[rocketmq-client-rust] 02/03: Refactor
This is an automated email from the ASF dual-hosted git repository.
lizhanhui pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/rocketmq-client-rust.git
commit 04d296b5b6f2a6fe7cb102a21666fc25475e0df9
Author: Li Zhanhui <li...@gmail.com>
AuthorDate: Wed Apr 6 02:22:43 2022 +0000
Refactor
---
src/client.rs | 49 +-----------------------------
src/credentials.rs | 87 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
src/lib.rs | 1 +
3 files changed, 89 insertions(+), 48 deletions(-)
diff --git a/src/client.rs b/src/client.rs
index c67ef55..3b1cdde 100644
--- a/src/client.rs
+++ b/src/client.rs
@@ -8,40 +8,7 @@ use tonic::{
Request, Response,
};
-#[derive(Debug, PartialEq)]
-pub struct Credentials {
- access_key: String,
- access_secret: String,
- session_token: Option<String>,
-}
-
-pub trait CredentialProvider {
- fn get_credentials(&self) -> Credentials;
-}
-
-pub struct StaticCredentialProvider {
- access_key: String,
- access_secret: String,
-}
-
-impl StaticCredentialProvider {
- pub fn new(access_key: &str, access_secret: &str) -> Self {
- Self {
- access_key: access_key.to_owned(),
- access_secret: access_secret.to_owned(),
- }
- }
-}
-
-impl CredentialProvider for StaticCredentialProvider {
- fn get_credentials(&self) -> Credentials {
- Credentials {
- access_key: self.access_key.clone(),
- access_secret: self.access_secret.clone(),
- session_token: None,
- }
- }
-}
+use crate::credentials::CredentialProvider;
#[derive(Default)]
struct ClientConfig {
@@ -159,20 +126,6 @@ mod test {
assert_eq!(route_response.status.unwrap().code, Code::Ok as i32);
}
- #[test]
- fn test_static_credentials_provider() {
- let provider = StaticCredentialProvider::new("ak", "as");
- let credentials = provider.get_credentials();
- assert_eq!(
- credentials,
- Credentials {
- access_key: String::from("ak"),
- access_secret: String::from("as"),
- session_token: None,
- }
- );
- }
-
#[tokio::test]
async fn test_periodic_task() {
let client_manager = ClientManager::default();
diff --git a/src/credentials.rs b/src/credentials.rs
new file mode 100644
index 0000000..43d44a9
--- /dev/null
+++ b/src/credentials.rs
@@ -0,0 +1,87 @@
+#[derive(Debug, PartialEq)]
+pub struct Credentials {
+ access_key: String,
+ access_secret: String,
+ session_token: Option<String>,
+}
+
+pub trait CredentialProvider {
+ fn get_credentials(&self) -> Credentials;
+}
+
+pub struct StaticCredentialProvider {
+ access_key: String,
+ access_secret: String,
+}
+
+impl StaticCredentialProvider {
+ pub fn new(access_key: &str, access_secret: &str) -> Self {
+ Self {
+ access_key: access_key.to_owned(),
+ access_secret: access_secret.to_owned(),
+ }
+ }
+}
+
+impl CredentialProvider for StaticCredentialProvider {
+ fn get_credentials(&self) -> Credentials {
+ Credentials {
+ access_key: self.access_key.clone(),
+ access_secret: self.access_secret.clone(),
+ session_token: None,
+ }
+ }
+}
+
+#[derive(Debug, Default)]
+pub struct EnvironmentVariableCredentialProvider {
+ access_key: String,
+ access_secret: String,
+}
+
+impl EnvironmentVariableCredentialProvider {
+ pub fn new() -> Result<Self, std::env::VarError> {
+ let access_key = std::env::var("ACCESS_KEY")?;
+ let access_secret = std::env::var("ACCESS_SECRET")?;
+ Ok(Self {
+ access_key,
+ access_secret,
+ })
+ }
+}
+
+impl CredentialProvider for EnvironmentVariableCredentialProvider {
+ fn get_credentials(&self) -> Credentials {
+ Credentials {
+ access_key: self.access_key.clone(),
+ access_secret: self.access_secret.clone(),
+ session_token: None,
+ }
+ }
+}
+
+#[cfg(test)]
+mod test {
+ use super::*;
+
+ #[test]
+ fn test_static_credentials_provider() {
+ let provider = StaticCredentialProvider::new("ak", "as");
+ let credentials = provider.get_credentials();
+ assert_eq!(
+ credentials,
+ Credentials {
+ access_key: String::from("ak"),
+ access_secret: String::from("as"),
+ session_token: None,
+ }
+ );
+ }
+
+ #[test]
+ fn test_environment_variable_credential_provider() {
+ let env_credentials_provider = EnvironmentVariableCredentialProvider::new();
+ assert_eq!(true, env_credentials_provider.is_err());
+
+ }
+}
diff --git a/src/lib.rs b/src/lib.rs
index 57769fd..7ffd5e9 100644
--- a/src/lib.rs
+++ b/src/lib.rs
@@ -1,3 +1,4 @@
pub mod client;
+pub mod credentials;
pub mod pb;
pub mod server;