cleanup 2
This commit is contained in:
@@ -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);
|
||||
|
Reference in New Issue
Block a user