X-Git-Url: http://git.annexia.org/?p=virt-top.git;a=blobdiff_plain;f=README;h=0e562181622c2f9e622fcc96f17818068dbc4be6;hp=02be231d653a1edf727a1a2ecee42e6957159a33;hb=2a8acd07005f2e8cdc43a6cc2a4e6f3d66f9fc4d;hpb=b858ee135c0814f1781cc16802a7b538d5f047a7 diff --git a/README b/README index 02be231..0e56218 100644 --- 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, examples, and mlvirsh (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 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) - -To build a Windows installer (optional): - - NSIS (http://nsis.sf.net) - -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,128 +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), examples, mlvirsh and -mlvirtmanager 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. - -You should make sure that your $PATH (environment variable) contains -the names of the directories containing all required DLLs, in -particular you will require: - - libvirt-*.dll (from libvirt) - libgnutls-*.dll (from GnuTLS) - libgcrypt-*.dll - libgpg-error-*.dll - libtasn1-*.dll - libxdr.dll (from libxdr) - libxml2-*.dll (from libxml2) - and, a multitude of DLLs from GTK if you want to run mlvirtmanager - -You can use a tool such as Dependency Walker to find/check the -locations of dependent libraries. - -To build the Windows installer, you will need NSIS. Then do: - - ./configure --with-nsis=/c/Progra~1/NSIS - make all opt - make wininstaller - -This should build a Windows binary installer called -ocaml-libvirt-$VERSION.exe which includes the bindings, all required -DLLs and all programs that can be built under Windows. - - -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'.