(
revision: u64,
env: HashMap<String, String>,
credential_expires_at_ms: HashMap<String, i64>,
dynamic_credentials: HashMap<String, crate::proto::ProviderProfileCredent
| 32 | |
| 33 | impl ProviderCredentialState { |
| 34 | pub fn from_environment( |
| 35 | revision: u64, |
| 36 | env: HashMap<String, String>, |
| 37 | credential_expires_at_ms: HashMap<String, i64>, |
| 38 | dynamic_credentials: HashMap<String, crate::proto::ProviderProfileCredential>, |
| 39 | ) -> Self { |
| 40 | let (child_env, generation_resolver, current_resolver) = |
| 41 | SecretResolver::from_provider_env_for_current_revision( |
| 42 | env, |
| 43 | credential_expires_at_ms, |
| 44 | revision, |
| 45 | ); |
| 46 | let snapshot = Arc::new(ProviderCredentialSnapshot { |
| 47 | revision, |
| 48 | child_env, |
| 49 | dynamic_credentials, |
| 50 | }); |
| 51 | let generations: VecDeque<_> = generation_resolver.map(Arc::new).into_iter().collect(); |
| 52 | let current_resolver = current_resolver.map(Arc::new); |
| 53 | let combined_resolver = merge_resolvers(&generations, current_resolver.as_ref()); |
| 54 | |
| 55 | Self { |
| 56 | inner: Arc::new(RwLock::new(ProviderCredentialStateInner { |
| 57 | current: snapshot, |
| 58 | generations, |
| 59 | current_resolver, |
| 60 | combined_resolver, |
| 61 | suppressed_keys: HashSet::new(), |
| 62 | })), |
| 63 | } |
| 64 | } |
| 65 | |
| 66 | pub fn snapshot(&self) -> Arc<ProviderCredentialSnapshot> { |
| 67 | self.inner |
nothing calls this directly
no test coverage detected