diff --git a/Cargo.lock b/Cargo.lock index 9860c2f..e0cedab 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -316,6 +316,7 @@ dependencies = [ [[package]] name = "detee-shared" version = "0.1.0" +source = "git+ssh://git@gitea.detee.cloud/noormohammedb/detee-shared#f4e1159efc1987a1ca6e079617719527875957bf" dependencies = [ "base64", "prost", diff --git a/src/data.rs b/src/data.rs index 0f3fb82..a73e3e8 100644 --- a/src/data.rs +++ b/src/data.rs @@ -18,6 +18,7 @@ pub struct Container { pub status: String, pub admin: String, pub container_resource: ResourceConfig, + pub mapped_ports: Vec<(u16, u16)>, } impl DaemonState { @@ -33,7 +34,7 @@ impl DaemonState { ) -> Result<(), Box> { 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 { id: "123".to_string(), @@ -42,6 +43,7 @@ impl DaemonState { status: "running".to_string(), admin: ip, container_resource: req_data.resource.unwrap(), + mapped_ports, }; self.containers.push(container); diff --git a/src/package.rs b/src/package.rs index 5717efa..05c765c 100644 --- a/src/package.rs +++ b/src/package.rs @@ -45,7 +45,7 @@ pub async fn deploy_enclave( // enclave_name: String, publishing_ports: Vec, // ... -) -> Result<(), Box> { +) -> Result, Box> { let port_map = prepare_port_map(publishing_ports).await; let port_maping_string = port_map @@ -56,7 +56,9 @@ pub async fn deploy_enclave( println!("Deploying enclave: {:?}", enclave_path); 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); @@ -65,7 +67,7 @@ pub async fn deploy_enclave( .arg(docker_deploy_str) .spawn()?; - Ok(()) + Ok(port_map) } pub async fn download_file(url: &str, file_path: &Path) -> Result<(), Box> {