cleanup 2

This commit is contained in:
Maxime Van Hees
2025-09-09 14:25:09 +02:00
parent 182b0edeb7
commit f8436a726e
5 changed files with 273 additions and 31 deletions

View File

@@ -230,6 +230,21 @@ pub fn cloudhv_display_network_info(vm_id: &str, ipv4: Dynamic, ipv6: Dynamic) {
println!(" cloudhv_vm_delete(\"{}\", true);", vm_id);
}
/// High-level network discovery that avoids hardcoded MAC/paths.
/// Returns a Rhai map with fields: ipv4, ipv6, mac, bridge, lease.
pub fn cloudhv_vm_network_info(id: &str, timeout_secs: i64) -> Result<Map, Box<EvalAltResult>> {
let (ipv4, ipv6, mac, bridge, lease) =
hv_to_rhai(cloudhv::vm_network_info(id, timeout_secs as u64))?;
let mut m = Map::new();
m.insert("vm_id".into(), id.to_string().into());
m.insert("ipv4".into(), ipv4.map(Into::into).unwrap_or(Dynamic::UNIT));
m.insert("ipv6".into(), ipv6.map(Into::into).unwrap_or(Dynamic::UNIT));
m.insert("mac".into(), mac.map(Into::into).unwrap_or(Dynamic::UNIT));
m.insert("bridge".into(), bridge.map(Into::into).unwrap_or(Dynamic::UNIT));
m.insert("lease".into(), lease.map(Into::into).unwrap_or(Dynamic::UNIT));
Ok(m)
}
// Module registration
pub fn register_cloudhv_module(engine: &mut Engine) -> Result<(), Box<EvalAltResult>> {
@@ -239,6 +254,7 @@ pub fn register_cloudhv_module(engine: &mut Engine) -> Result<(), Box<EvalAltRes
engine.register_fn("cloudhv_vm_delete", cloudhv_vm_delete);
engine.register_fn("cloudhv_vm_list", cloudhv_vm_list);
engine.register_fn("cloudhv_vm_info", cloudhv_vm_info);
engine.register_fn("cloudhv_vm_network_info", cloudhv_vm_network_info);
engine.register_fn("cloudhv_discover_ipv4_from_leases", cloudhv_discover_ipv4_from_leases);
engine.register_fn("cloudhv_discover_ipv6_on_bridge", cloudhv_discover_ipv6_on_bridge);
engine.register_fn("cloudhv_display_network_info", cloudhv_display_network_info);