MCPcopy Create free account
hub / github.com/NVIDIA/OpenShell / install_environment

Method install_environment

crates/openshell-core/src/provider_credentials.rs:201–239  ·  view source on GitHub ↗
(
        &self,
        revision: u64,
        env: HashMap<String, String>,
        credential_expires_at_ms: HashMap<String, i64>,
        dynamic_credentials: HashMap<String, crate::proto::Provide

Source from the content-addressed store, hash-verified

199 }
200
201 pub fn install_environment(
202 &self,
203 revision: u64,
204 env: HashMap<String, String>,
205 credential_expires_at_ms: HashMap<String, i64>,
206 dynamic_credentials: HashMap<String, crate::proto::ProviderProfileCredential>,
207 ) -> usize {
208 let (mut child_env, generation_resolver, current_resolver) =
209 SecretResolver::from_provider_env_for_current_revision(
210 env,
211 credential_expires_at_ms,
212 revision,
213 );
214 let mut inner = self
215 .inner
216 .write()
217 .expect("provider credential state poisoned");
218
219 for key in &inner.suppressed_keys {
220 child_env.remove(key);
221 }
222
223 inner.current = Arc::new(ProviderCredentialSnapshot {
224 revision,
225 child_env,
226 dynamic_credentials,
227 });
228 inner.current_resolver = current_resolver.map(Arc::new);
229
230 if let Some(resolver) = generation_resolver {
231 inner.generations.push_back(Arc::new(resolver));
232 while inner.generations.len() > MAX_RETAINED_CREDENTIAL_GENERATIONS {
233 inner.generations.pop_front();
234 }
235 }
236 inner.combined_resolver =
237 merge_resolvers(&inner.generations, inner.current_resolver.as_ref());
238 inner.current.child_env.len()
239 }
240}
241
242fn merge_resolvers(

Calls 4

merge_resolversFunction · 0.85
lenMethod · 0.80
writeMethod · 0.45
removeMethod · 0.45