saved mapped ports in state

This commit is contained in:
Noor 2025-01-23 08:14:33 +00:00
parent 7be5c1abd7
commit b0990521f2
Signed by: noormohammedb
GPG Key ID: 7680BB1B83C6A443
3 changed files with 9 additions and 4 deletions

1
Cargo.lock generated

@ -316,6 +316,7 @@ dependencies = [
[[package]] [[package]]
name = "detee-shared" name = "detee-shared"
version = "0.1.0" version = "0.1.0"
source = "git+ssh://git@gitea.detee.cloud/noormohammedb/detee-shared#f4e1159efc1987a1ca6e079617719527875957bf"
dependencies = [ dependencies = [
"base64", "base64",
"prost", "prost",

@ -18,6 +18,7 @@ pub struct Container {
pub status: String, pub status: String,
pub admin: String, pub admin: String,
pub container_resource: ResourceConfig, pub container_resource: ResourceConfig,
pub mapped_ports: Vec<(u16, u16)>,
} }
impl DaemonState { impl DaemonState {
@ -33,7 +34,7 @@ impl DaemonState {
) -> Result<(), Box<dyn std::error::Error>> { ) -> Result<(), Box<dyn std::error::Error>> {
let publishing_ports = req_data.resource.clone().unwrap().port; let publishing_ports = req_data.resource.clone().unwrap().port;
deploy_enclave(&unarchive_dir, publishing_ports).await?; let mapped_ports = deploy_enclave(&unarchive_dir, publishing_ports).await?;
let container = Container { let container = Container {
id: "123".to_string(), id: "123".to_string(),
@ -42,6 +43,7 @@ impl DaemonState {
status: "running".to_string(), status: "running".to_string(),
admin: ip, admin: ip,
container_resource: req_data.resource.unwrap(), container_resource: req_data.resource.unwrap(),
mapped_ports,
}; };
self.containers.push(container); self.containers.push(container);

@ -45,7 +45,7 @@ pub async fn deploy_enclave(
// enclave_name: String, // enclave_name: String,
publishing_ports: Vec<u32>, publishing_ports: Vec<u32>,
// ... // ...
) -> Result<(), Box<dyn std::error::Error>> { ) -> Result<Vec<(u16, u16)>, Box<dyn std::error::Error>> {
let port_map = prepare_port_map(publishing_ports).await; let port_map = prepare_port_map(publishing_ports).await;
let port_maping_string = port_map let port_maping_string = port_map
@ -56,7 +56,9 @@ pub async fn deploy_enclave(
println!("Deploying enclave: {:?}", enclave_path); println!("Deploying enclave: {:?}", enclave_path);
let docker_deploy_str = format!( let docker_deploy_str = format!(
"docker run -v {enclave_path}/enclave_packager:/enclave_packager --device /dev/sgx/enclave --device /dev/sgx/provision {port_maping_string} noormohammedb/occlum-enclave:v1"); r#"docker run -v {enclave_path}/enclave_packager:/enclave_packager --device /dev/sgx/enclave \
--device /dev/sgx/provision {port_maping_string} noormohammedb/occlum-enclave:v1"#
);
println!("{}", &docker_deploy_str); println!("{}", &docker_deploy_str);
@ -65,7 +67,7 @@ pub async fn deploy_enclave(
.arg(docker_deploy_str) .arg(docker_deploy_str)
.spawn()?; .spawn()?;
Ok(()) Ok(port_map)
} }
pub async fn download_file(url: &str, file_path: &Path) -> Result<(), Box<dyn std::error::Error>> { pub async fn download_file(url: &str, file_path: &Path) -> Result<(), Box<dyn std::error::Error>> {