mirror of
				https://github.com/edera-dev/krata.git
				synced 2025-11-03 23:29:39 +00:00 
			
		
		
		
	hypha: implement basic networking support
This commit is contained in:
		@ -3,7 +3,8 @@ use env_logger::Env;
 | 
			
		||||
use hypha::container::init::ContainerInit;
 | 
			
		||||
use std::env;
 | 
			
		||||
 | 
			
		||||
fn main() -> Result<()> {
 | 
			
		||||
#[tokio::main]
 | 
			
		||||
async fn main() -> Result<()> {
 | 
			
		||||
    env::set_var("RUST_BACKTRACE", "1");
 | 
			
		||||
    env_logger::Builder::from_env(Env::default().default_filter_or("warn")).init();
 | 
			
		||||
    if env::var("HYPHA_UNSAFE_ALWAYS_ALLOW_INIT").unwrap_or("0".to_string()) != "1" {
 | 
			
		||||
@ -18,6 +19,6 @@ fn main() -> Result<()> {
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    let mut container = ContainerInit::new();
 | 
			
		||||
    container.init()?;
 | 
			
		||||
    container.init().await?;
 | 
			
		||||
    Ok(())
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
@ -110,12 +110,13 @@ fn main() -> Result<()> {
 | 
			
		||||
        Commands::List { .. } => {
 | 
			
		||||
            let containers = controller.list()?;
 | 
			
		||||
            let mut table = cli_tables::Table::new();
 | 
			
		||||
            let header = vec!["domain", "uuid", "image"];
 | 
			
		||||
            let header = vec!["domain", "uuid", "ipv4", "image"];
 | 
			
		||||
            table.push_row(&header)?;
 | 
			
		||||
            for container in containers {
 | 
			
		||||
                let row = vec![
 | 
			
		||||
                    container.domid.to_string(),
 | 
			
		||||
                    container.uuid.to_string(),
 | 
			
		||||
                    container.ipv4,
 | 
			
		||||
                    container.image,
 | 
			
		||||
                ];
 | 
			
		||||
                table.push_row_string(&row)?;
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										20
									
								
								hypha/bin/network.rs
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								hypha/bin/network.rs
									
									
									
									
									
										Normal file
									
								
							@ -0,0 +1,20 @@
 | 
			
		||||
use anyhow::Result;
 | 
			
		||||
use clap::Parser;
 | 
			
		||||
use env_logger::Env;
 | 
			
		||||
use hypha::network::HyphaNetwork;
 | 
			
		||||
 | 
			
		||||
#[derive(Parser, Debug)]
 | 
			
		||||
struct NetworkArgs {
 | 
			
		||||
    #[arg(short, long)]
 | 
			
		||||
    interface: String,
 | 
			
		||||
    #[arg(short, long, default_value = "192.168.42.1/24")]
 | 
			
		||||
    network: String,
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
fn main() -> Result<()> {
 | 
			
		||||
    env_logger::Builder::from_env(Env::default().default_filter_or("warn")).init();
 | 
			
		||||
    let args = NetworkArgs::parse();
 | 
			
		||||
    let mut network = HyphaNetwork::new(&args.interface, &[&args.network])?;
 | 
			
		||||
    network.run()?;
 | 
			
		||||
    Ok(())
 | 
			
		||||
}
 | 
			
		||||
		Reference in New Issue
	
	Block a user