Skip to content

Commit

Permalink
Fix #333 Add debug log if load_via_assume_role_with_web_identity is m…
Browse files Browse the repository at this point in the history
…issing some value
  • Loading branch information
godruoyi committed Jun 23, 2023
1 parent 099909c commit fe126c1
Showing 1 changed file with 56 additions and 2 deletions.
58 changes: 56 additions & 2 deletions src/tencent/credential.rs
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,18 @@ impl CredentialLoader {
(Some(region), Some(token_file), Some(role_arn), Some(provider_id)) => {
(region, token_file, role_arn, provider_id)
}
_ => return Ok(None),
_ => {
debug!(
"assume_role_with_web_identity is not configured fully, region: {region:?}, \
web_identity_token_file: {token_file:?}, role_arn: {role_arn:?}, provider_id: {provider_id:?}",
region = &self.config.region,
token_file = &self.config.web_identity_token_file,
role_arn = &self.config.role_arn,
provider_id = &self.config.provider_id,
);

return Ok(None);
}
};

let token = fs::read_to_string(token_file)?;
Expand Down Expand Up @@ -210,10 +221,13 @@ struct AssumeRoleWithWebIdentityError {
#[cfg(test)]
mod tests {
use std::env;
use std::fs::File;
use std::io::Read;
use std::str::FromStr;

use env_logger::Target;
use http::{Request, StatusCode};
use log::debug;
use log::{debug, LevelFilter};
use once_cell::sync::Lazy;
use tokio::runtime::Runtime;

Expand Down Expand Up @@ -347,4 +361,44 @@ mod tests {

Ok(())
}

#[tokio::test]
async fn test_assume_role_with_web_identity_none() {
let _ = fs::remove_file("test_reqwest.log");

let logfile = File::create("test_reqwest.log").expect("create log file failed");
let _ = env_logger::builder()
.target(Target::Pipe(Box::new(logfile)))
.filter_level(LevelFilter::Debug)
.is_test(true)
.try_init();

let config = Config {
region: Some("region".to_string()),
web_identity_token_file: None, // None web_identity_token_file
role_arn: Some("role".to_string()),
provider_id: None, // None provider_id
..Default::default()
};
let loader = CredentialLoader::new(reqwest::Client::new(), config);
let cred = loader
.load_via_assume_role_with_web_identity()
.await
.expect("should load credential");

assert!(cred.is_none());

// test logfile content
let mut logfile = File::open("test_reqwest.log").expect("open log file");
let mut content = String::new();
logfile.read_to_string(&mut content).expect("read log file");

assert!(content.contains("region: Some(\"region\")"));
assert!(content.contains("web_identity_token_file: None"));
assert!(content.contains("role_arn: Some(\"role\")"));
assert!(content.contains("provider_id: None"));

// delete log file
fs::remove_file("test_reqwest.log").expect("remove log file");
}
}

0 comments on commit fe126c1

Please sign in to comment.