MCPcopy Create free account
hub / github.com/Dstack-TEE/dstack / create_gateway_client

Method create_gateway_client

dstack-util/src/system_setup.rs:418–443  ·  view source on GitHub ↗
(
        &self,
        gateway_url: &str,
        client_key: &str,
        client_cert: &str,
    )

Source from the content-addressed store, hash-verified

416
417 #[errify::errify("Failed to create gateway client for {gateway_url}")]
418 fn create_gateway_client(
419 &self,
420 gateway_url: &str,
421 client_key: &str,
422 client_cert: &str,
423 ) -> Result<GatewayClient<RaClient>> {
424 let url = format!("{}/prpc", gateway_url);
425 let ca_cert = self.keys.ca_cert.clone();
426 let cert_validator = AppIdValidator {
427 allowed_app_id: self.keys.gateway_app_id.clone(),
428 };
429 let client = RaClientConfig::builder()
430 .remote_uri(url)
431 .maybe_pccs_url(self.shared.sys_config.pccs_url.clone())
432 .tls_client_cert(client_cert.to_string())
433 .tls_client_key(client_key.to_string())
434 .tls_ca_cert(ca_cert)
435 .tls_built_in_root_certs(false)
436 .tls_no_check(self.keys.gateway_app_id == "any")
437 .verify_server_attestation(false)
438 .cert_validator(Box::new(move |cert| cert_validator.validate(cert)))
439 .build()
440 .into_client()
441 .context("Failed to create RA client")?;
442 Ok(GatewayClient::new(client))
443 }
444
445 async fn register_cvm(
446 &self,

Callers 1

register_cvmMethod · 0.80

Calls 4

cloneMethod · 0.80
into_clientMethod · 0.80
buildMethod · 0.45
validateMethod · 0.45

Tested by

no test coverage detected