Refactor code structure by introducing global configuration and updating imports
This commit is contained in:
parent
d5667e4cd1
commit
83fa4728c6
12
src/config.rs
Normal file
12
src/config.rs
Normal file
@ -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 }
|
||||
}
|
||||
}
|
6
src/global.rs
Normal file
6
src/global.rs
Normal file
@ -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";
|
@ -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,
|
||||
|
36
src/main.rs
36
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<BrainMessageApp>,
|
||||
pub sender: Sender<DaemonMessageApp>,
|
||||
pub config: Config,
|
||||
pub data: DaemonState,
|
||||
}
|
||||
|
||||
impl ContainerHandler {
|
||||
impl AppHandler {
|
||||
pub fn new(receiver: Receiver<BrainMessageApp>, sender: Sender<DaemonMessageApp>) -> Self {
|
||||
Self {
|
||||
receiver,
|
||||
@ -163,7 +145,7 @@ async fn main() -> Result<(), Box<dyn std::error::Error>> {
|
||||
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 {
|
||||
|
@ -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<IPInfo> = LazyLock::new(|| get_ip_info().unwrap());
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user