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]]
name = "detee-shared"
version = "0.1.0"
source = "git+ssh://git@gitea.detee.cloud/noormohammedb/detee-shared#f4e1159efc1987a1ca6e079617719527875957bf"
dependencies = [
"base64",
"prost",

@ -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<dyn std::error::Error>> {
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);

@ -45,7 +45,7 @@ pub async fn deploy_enclave(
// enclave_name: String,
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_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<dyn std::error::Error>> {