diff options
author | rjones@localhost <rjones@localhost> | 2007-08-30 17:38:09 +0100 |
---|---|---|
committer | rjones@localhost <rjones@localhost> | 2007-08-30 17:38:09 +0100 |
commit | a8b837d5018c488a130fcbea425904817a862210 (patch) | |
tree | 44fc8f4a58d6e1651053c4c40d32b3816add43fa /examples/list_domains.ml | |
download | virt-top-a8b837d5018c488a130fcbea425904817a862210.tar.gz virt-top-a8b837d5018c488a130fcbea425904817a862210.tar.xz virt-top-a8b837d5018c488a130fcbea425904817a862210.zip |
Initial import from CVS.
Diffstat (limited to 'examples/list_domains.ml')
-rw-r--r-- | examples/list_domains.ml | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/examples/list_domains.ml b/examples/list_domains.ml new file mode 100644 index 0000000..f752754 --- /dev/null +++ b/examples/list_domains.ml @@ -0,0 +1,47 @@ +(* Simple demo program showing how to list out domains. + Usage: list_domains [URI] + (C) Copyright 2007 Richard W.M. Jones, Red Hat Inc. + http://libvirt.org/ + $Id: list_domains.ml,v 1.1 2007/08/06 10:16:53 rjones Exp $ + *) + +open Printf + +module C = Libvirt.Connect +module D = Libvirt.Domain +module N = Libvirt.Network + +let () = + try + let name = + if Array.length Sys.argv >= 2 then + Some (Sys.argv.(1)) + else + None in + let conn = C.connect ?name () in + + (* List running domains. *) + let n = C.num_of_domains conn in + let ids = C.list_domains conn n in + let domains = Array.map (D.lookup_by_id conn) ids in + Array.iter ( + fun dom -> + printf "%8d %s\n%!" (D.get_id dom) (D.get_name dom) + ) domains; + + (* List inactive domains. *) + let n = C.num_of_defined_domains conn in + let names = C.list_defined_domains conn n in + Array.iter ( + fun name -> + printf "inactive %s\n%!" name + ) names; + 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 () |