X-Git-Url: http://git.annexia.org/?p=virt-top.git;a=blobdiff_plain;f=README;h=0e562181622c2f9e622fcc96f17818068dbc4be6;hp=6be1cf4aa5c5346fb8ff89bec17c9f3789aaa703;hb=2a8acd07005f2e8cdc43a6cc2a4e6f3d66f9fc4d;hpb=d9efc66ec4fd75d3e0f89433de9fe20e93ed16c9 diff --git a/README b/README old mode 100755 new mode 100644 index 6be1cf4..0e56218 --- a/README +++ b/README @@ -1,66 +1,17 @@ -ocaml-libvirt +virt-top ---------------------------------------------------------------------- -Copyright (C) 2007 Richard W.M. Jones, Red Hat Inc. +Copyright (C) 2007-2009 Richard W.M. Jones, Red Hat Inc. +http://et.redhat.com/~rjones/virt-top/ http://libvirt.org/ocaml/ http://libvirt.org/ -This is a complete set of OCaml bindings around libvirt, exposing all -known functionality to OCaml programs. +virt-top is a top-like utility for showing stats of virtualized +domains. Many keys and command line options are the same as for +ordinary top. - -Requirements ----------------------------------------------------------------------- - -To build the bindings (required): - - GNU make, gcc - libvirt >= 0.2.1 (from http://libvirt.org/, - get the latest version if you can) - ocaml >= 3.08 (from http://caml.inria.fr/) - -Optional, but highly recommended: - - findlib (from http://www.ocaml-programming.de/packages/) - -To build the OCaml interface documentation (optional): - - ocamldoc (part of OCaml itself) - -To build mlvirsh (optional): - - Extlib (from http://ocaml-lib.sourceforge.net/) - -To build virt-top (optional): - - ocaml-curses (from http://www.nongnu.org/ocaml-tmk/) - Extlib (from http://ocaml-lib.sourceforge.net/) - xml-light (from http://tech.motion-twin.com/doc/xml-light/) - ocaml CSV library (from http://merjis.com/developers/csv) - ocaml-calendar (http://www.lri.fr/~signoles/prog.en.html) - - [Only ocaml-curses and Extlib are required for building virt-top. - The other packages are not required, but you will get reduced - functionality]. - -To build mlvirtmanager (optional): - - GTK2 (from http://gtk.org/) - lablgtk2 (from http://wwwfun.kurims.kyoto-u.ac.jp/soft/lsl/lablgtk.html) - -To build the manpages (optional): - - perldoc (part of Perl) - -OCaml packages are available for Fedora 7 and above (ocaml, -ocaml-findlib, ocaml-findlib-devel, ocaml-ocamldoc, ocaml-extlib, -ocaml-extlib-devel, ocaml-lablgtk, ocaml-lablgtk-devel, ocaml-curses, -ocaml-xml-light, ocaml-csv). - - http://www.annexia.org/tmp/ocaml/ - http://fedoraproject.org/wiki/SIGs/OCaml - -Debian/Ubuntu have all the packages you require. +It uses libvirt so it capable of showing stats across a variety of +different virtualization systems. Building @@ -68,102 +19,7 @@ Building ./configure # Checks that you have all the required bits. - make all # Builds the bytecode version of libs/programs. - make opt # Builds the native code version of libs/programs. - - make install # Install in OCaml directory, and the binaries - # in $prefix/bin. - - make doc # Build HTML documentation in html/ subdirectory. - -Then have a look at the programs 'mlvirsh.opt' and 'mlvirtmanager.opt'. - -Note: If you want to run the programs without first installing, you -may need to set your $LD_LIBRARY_PATH environment variable so it -contains the build directory. eg: - - LD_LIBRARY_PATH=libvirt/ mlvirsh/mlvirsh.opt - - -Windows ----------------------------------------------------------------------- - -I have built libvirt (the bindings) and examples on Windows using the -MinGW port of OCaml. It's quite likely that it will also work under -VC++, but I have not tested this. - - -mlvirsh ----------------------------------------------------------------------- - -'mlvirsh' is an almost complete reimplementation of virsh, which is -mostly command compatible (there are a very few commands missing, and -some commands have a slightly different syntax, but broadly speaking -they are equivalent programs except that one is written in C and the -other in OCaml). - -At the time of writing: - - wc -c wc -l - - virsh 126,056 4,641 - mlvirsh 19,427 598 - - % size 15% 13% - - -mlvirtmanager ----------------------------------------------------------------------- - -'mlvirtmanager' is a demonstration implementation of virt-manager in -OCaml. It is not feature-complete by any means, but does allow you to -show the running domains and start and stop defined domains. The main -functionality _missing_ is the ability to define new virtual machines, -change the resources allocated to domains, or show the machine -console. - - -Programming ----------------------------------------------------------------------- - -The interface is described in 'libvirt.mli'. The main modules are -Libvirt.Connect, Libvirt.Domain and Libvirt.Network, corresponding -respectively to the virConnect*, virDomain*, and virNetwork* -functions. For brevity I usually rename these modules like this: - - module C = Libvirt.Connect - module D = Libvirt.Domain - module N = Libvirt.Network - -To get a connection handle, do: - - let name = "xen:///" - let conn = C.connect ~name () - -To list domains, do: - - let n = C.num_of_domains conn - let ids = C.list_domains conn n - let domains = Array.map (D.lookup_by_id conn) ids - let () = - Array.iter ( - fun dom -> - printf "%5d %s\n" (D.get_id dom) (D.get_name dom) - ) domains - -(See also the program list_domains.ml). - -For documentation on these bindings, read libvirt.mli and/or 'make -doc' and browse the HTML documentation in the html/ subdirectory. - -For documentation on libvirt itself, see http://libvirt.org/html/ - - -Subdirectories ----------------------------------------------------------------------- + make all # Builds the bytecode version of the program. + make opt # Builds the native code version of the program. -libvirt/ The OCaml bindings. -examples/ Some example programs using the bindings. -mlvirsh/ 'mlvirsh' command line tool. -mlvirtmanager/ 'mlvirtmanager' graphical tool. -virt-top/ 'virt-top' tool. +Then have a look at the program 'virt-top/virt-top.opt'.