diff --git a/src/config.rs b/src/config.rs new file mode 100644 index 0000000..afbbcf3 --- /dev/null +++ b/src/config.rs @@ -0,0 +1,12 @@ +#[derive(Debug)] +pub struct Config { + pub brain_url: String, +} + +impl Default for Config { + fn default() -> Self { + let brain_url = + std::env::var("BRAIN_URL").unwrap_or_else(|_| "http://127.0.0.1:31337".to_string()); + Self { brain_url } + } +} diff --git a/src/global.rs b/src/global.rs new file mode 100644 index 0000000..6782083 --- /dev/null +++ b/src/global.rs @@ -0,0 +1,6 @@ +pub const NODE_PUBKEY: &str = "0xd0837609aedd53854651210327db90f5c2626188a00e940bbc9eea2c7e6838b7"; +pub const ADMIN_PUBKEY: &str = "0x28a3a71197250b0fa4dd0f86288e07ec9cc78ce3338e21e2ebef84dd7780e3eb"; + +pub const PACKAGE_ARCHIVE_POSTFIX: &str = "-enclave_packager.tar.gz"; +pub const PACKAGE_ARCHIVE_DIR_PATH: &str = "./enclave_archives"; +pub const PACKAGE_DIR_PATH: &str = "./enclaves"; diff --git a/src/grpc.rs b/src/grpc.rs index bf0986e..47ca0c2 100644 --- a/src/grpc.rs +++ b/src/grpc.rs @@ -11,8 +11,8 @@ use tokio_stream::wrappers::ReceiverStream; use tokio_stream::StreamExt; use tonic::transport::Channel; +use crate::global::{ADMIN_PUBKEY, NODE_PUBKEY}; use crate::utils::IP_INFO; -use crate::{ADMIN_PUBKEY, NODE_PUBKEY}; pub struct ConnectionData { pub brain_url: String, diff --git a/src/main.rs b/src/main.rs index fdcc981..92eed10 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,11 +1,10 @@ +pub mod config; pub mod container; pub mod data; +pub mod global; pub mod grpc; pub mod utils; -use std::time::Duration; - -pub use data::DaemonState; use detee_shared::pb::brain::brain_message_app; use detee_shared::pb::brain::daemon_message_app; use detee_shared::pb::brain::AppContract; @@ -13,44 +12,27 @@ use detee_shared::pb::brain::BrainMessageApp; use detee_shared::pb::brain::DaemonMessageApp; use detee_shared::pb::brain::MappedPort; use detee_shared::pb::brain::NewAppRes; - use detee_shared::types::brain::AppDeployConfig; - +use std::time::Duration; use tokio::sync::mpsc::Receiver; use tokio::sync::mpsc::Sender; use tokio::time::sleep; + use utils::cleanup_enclave_disk_and_package; use utils::handle_package; -const NODE_PUBKEY: &str = "0xd0837609aedd53854651210327db90f5c2626188a00e940bbc9eea2c7e6838b7"; -const ADMIN_PUBKEY: &str = "0x28a3a71197250b0fa4dd0f86288e07ec9cc78ce3338e21e2ebef84dd7780e3eb"; - -const PACKAGE_ARCHIVE_POSTFIX: &str = "-enclave_packager.tar.gz"; -const PACKAGE_ARCHIVE_DIR_PATH: &str = "./enclave_archives"; -const PACKAGE_DIR_PATH: &str = "./enclaves"; +pub use crate::config::Config; +pub use crate::data::DaemonState; #[derive(Debug)] -pub struct Config { - pub brain_url: String, -} - -impl Default for Config { - fn default() -> Self { - let brain_url = - std::env::var("BRAIN_URL").unwrap_or_else(|_| "http://127.0.0.1:31337".to_string()); - Self { brain_url } - } -} - -#[derive(Debug)] -pub struct ContainerHandler { +pub struct AppHandler { pub receiver: Receiver, pub sender: Sender, pub config: Config, pub data: DaemonState, } -impl ContainerHandler { +impl AppHandler { pub fn new(receiver: Receiver, sender: Sender) -> Self { Self { receiver, @@ -163,7 +145,7 @@ async fn main() -> Result<(), Box> { let (brain_msg_tx, brain_msg_rx) = tokio::sync::mpsc::channel(6); let (daemon_msg_tx, daemon_msg_rx) = tokio::sync::mpsc::channel(6); - let mut container_handler = ContainerHandler::new(brain_msg_rx, daemon_msg_tx.clone()); + let mut container_handler = AppHandler::new(brain_msg_rx, daemon_msg_tx.clone()); let brain_url = container_handler.config.brain_url.clone(); match grpc::register_node(&container_handler.config).await { diff --git a/src/utils.rs b/src/utils.rs index d456e74..c50e2ac 100644 --- a/src/utils.rs +++ b/src/utils.rs @@ -10,7 +10,7 @@ use tokio::io::AsyncWriteExt; use tokio::net::TcpListener; use tokio::{fs, fs::File}; -use crate::{PACKAGE_ARCHIVE_DIR_PATH, PACKAGE_ARCHIVE_POSTFIX, PACKAGE_DIR_PATH}; +use crate::global::{PACKAGE_ARCHIVE_DIR_PATH, PACKAGE_ARCHIVE_POSTFIX, PACKAGE_DIR_PATH}; pub static IP_INFO: LazyLock = LazyLock::new(|| get_ip_info().unwrap());