hypha: implement basic networking support

This commit is contained in:
Alex Zenla
2024-02-05 12:45:45 +00:00
parent 70dc2f943f
commit 21c6a27097
14 changed files with 233 additions and 18 deletions

View File

@ -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(())
}

View File

@ -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
View 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(())
}