(* Simple demo program showing node info. Usage: node_info [URI] (C) Copyright 2007 Richard W.M. Jones, Red Hat Inc. http://libvirt.org/ *) open Printf module C = Libvirt.Connect let () = try let name = if Array.length Sys.argv >= 2 then Some (Sys.argv.(1)) else None in let conn = C.connect_readonly ?name () in (* Get node_info, hostname, etc. *) let node_info = C.get_node_info conn in printf "model = %s\n" node_info.C.model; printf "memory = %Ld K\n" node_info.C.memory; printf "cpus = %d\n" node_info.C.cpus; printf "mhz = %d\n" node_info.C.mhz; printf "nodes = %d\n" node_info.C.nodes; printf "sockets = %d\n" node_info.C.sockets; printf "cores = %d\n" node_info.C.cores; printf "threads = %d\n%!" node_info.C.threads; let hostname = C.get_hostname conn in printf "hostname = %s\n%!" hostname; let uri = C.get_uri conn in printf "uri = %s\n%!" uri with Libvirt.Virterror err -> eprintf "error: %s\n" (Libvirt.Virterror.to_string err) let () = (* Run the garbage collector which is a good way to check for * memory corruption errors and reference counting issues in libvirt. *) Gc.compact ()