libvirt/libvirt_version.ml
examples/list_domains
mlvirsh/mlvirsh
-mlvirtmanager/mlvirtmanager
+virt-ctrl/virt-ctrl
virt-top/virt-top
virt-df/virt-df
wininstaller.nsis
\ No newline at end of file
2008-01-07 Richard Jones <rjones@redhat.com>
+ mlvirtmanager renamed as virt-ctrl.
+ * .hgignore, Makefile.in, configure.ac: Rename
+ mlvirtmanager as virt-ctrl to avoid any confusion with
+ the real virt-manager.
+ * mlvirtmanager/, virt-ctrl/: Subdirectory moved.
+ * README: Supporting documentation updated.
+
Include mlvirtmanager in the Windows installer.
* wininstaller.nsis.in: Include mlvirtmanager in the Windows
installer.
mlvirsh/.depend
mlvirsh/Makefile.in
mlvirsh/mlvirsh.ml
-mlvirtmanager/.depend
-mlvirtmanager/Makefile.in
-mlvirtmanager/mlvirtmanager_connections.ml
-mlvirtmanager/mlvirtmanager_connections.mli
-mlvirtmanager/mlvirtmanager_domain_ops.ml
-mlvirtmanager/mlvirtmanager_domain_ops.mli
-mlvirtmanager/mlvirtmanager_helpers.ml
-mlvirtmanager/mlvirtmanager_helpers.mli
-mlvirtmanager/mlvirtmanager_mainwindow.ml
-mlvirtmanager/mlvirtmanager_mainwindow.mli
-mlvirtmanager/mlvirtmanager.ml
+virt-ctrl/.depend
+virt-ctrl/Makefile.in
+virt-ctrl/vc_connections.ml
+virt-ctrl/vc_connections.mli
+virt-ctrl/vc_domain_ops.ml
+virt-ctrl/vc_domain_ops.mli
+virt-ctrl/vc_helpers.ml
+virt-ctrl/vc_helpers.mli
+virt-ctrl/vc_mainwindow.ml
+virt-ctrl/vc_mainwindow.mli
+virt-ctrl/virt_ctrl.ml
README
TODO.libvirt
TODO.virt-top
done
rm -f examples/list_domains
rm -f mlvirsh/mlvirsh
- rm -f mlvirtmanager/mlvirtmanager
+ rm -f virt-ctrl/virt-ctrl
rm -f virt-top/virt-top
rm -f virt-df/virt-df
rm -f libvirt/Makefile
rm -f examples/Makefile
rm -f mlvirsh/Makefile
- rm -f mlvirtmanager/Makefile
+ rm -f virt-ctrl/Makefile
rm -f virt-top/Makefile
rm -f virt-df/Makefile
The other packages are not required, but you will get reduced
functionality].
-To build mlvirtmanager (optional):
+To build virt-ctrl (optional):
GTK2 (from http://gtk.org/)
lablgtk2 (from http://wwwfun.kurims.kyoto-u.ac.jp/soft/lsl/lablgtk.html)
make doc # Build HTML documentation in html/ subdirectory.
-Then have a look at the programs 'mlvirsh.opt' and 'mlvirtmanager.opt'.
+Then have a look at the programs 'mlvirsh.opt' and 'virt-ctrl.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
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.
+I have built libvirt (the bindings), examples, mlvirsh and virt-ctrl
+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
libtasn1-*.dll
libxdr.dll (from libxdr)
libxml2-*.dll (from libxml2)
- and, a multitude of DLLs from GTK if you want to run mlvirtmanager
+ and, a multitude of DLLs from GTK if you want to run virt-ctrl
You can use a tool such as Dependency Walker to find/check the
locations of dependent libraries.
% size 15% 13%
-mlvirtmanager
+virt-ctrl
----------------------------------------------------------------------
-'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.
+'virt-ctrl' (originally called 'mlvirtmanager') is a reimplementation
+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
libvirt/ The OCaml bindings.
examples/ Some example programs using the bindings.
mlvirsh/ 'mlvirsh' command line tool.
-mlvirtmanager/ 'mlvirtmanager' graphical tool.
+virt-ctrl/ 'virt-ctrl' graphical tool.
virt-top/ 'virt-top' tool.
+virt-df/ 'virt-df' tool.
\ No newline at end of file
dnl Which subpackages (== subdirs) will we build?
subdirs="libvirt examples mlvirsh"
if test "x$pkg_lablgtk2" != "xno"; then
- subdirs="$subdirs mlvirtmanager"
+ subdirs="$subdirs virt-ctrl"
fi
if test "x$pkg_extlib" != "xno" -a "x$pkg_curses" != "xno"; then
subdirs="$subdirs virt-top"
libvirt/Makefile
examples/Makefile
mlvirsh/Makefile
- mlvirtmanager/Makefile
+ virt-ctrl/Makefile
virt-top/Makefile
virt-df/Makefile
])
+++ /dev/null
-mlvirtmanager_connections.cmi: ../libvirt/libvirt.cmi
-mlvirtmanager_domain_ops.cmi: mlvirtmanager_connections.cmi
-mlvirtmanager_helpers.cmi: ../libvirt/libvirt.cmi
-mlvirtmanager_mainwindow.cmi: mlvirtmanager_connections.cmi
-mlvirtmanager_connections.cmo: mlvirtmanager_helpers.cmi \
- ../libvirt/libvirt.cmi mlvirtmanager_connections.cmi
-mlvirtmanager_connections.cmx: mlvirtmanager_helpers.cmx \
- ../libvirt/libvirt.cmx mlvirtmanager_connections.cmi
-mlvirtmanager_domain_ops.cmo: mlvirtmanager_connections.cmi \
- ../libvirt/libvirt.cmi mlvirtmanager_domain_ops.cmi
-mlvirtmanager_domain_ops.cmx: mlvirtmanager_connections.cmx \
- ../libvirt/libvirt.cmx mlvirtmanager_domain_ops.cmi
-mlvirtmanager_helpers.cmo: ../libvirt/libvirt.cmi mlvirtmanager_helpers.cmi
-mlvirtmanager_helpers.cmx: ../libvirt/libvirt.cmx mlvirtmanager_helpers.cmi
-mlvirtmanager_mainwindow.cmo: mlvirtmanager_connections.cmi \
- ../libvirt/libvirt.cmi mlvirtmanager_mainwindow.cmi
-mlvirtmanager_mainwindow.cmx: mlvirtmanager_connections.cmx \
- ../libvirt/libvirt.cmx mlvirtmanager_mainwindow.cmi
-mlvirtmanager.cmo: mlvirtmanager_mainwindow.cmi mlvirtmanager_domain_ops.cmi \
- mlvirtmanager_connections.cmi
-mlvirtmanager.cmx: mlvirtmanager_mainwindow.cmx mlvirtmanager_domain_ops.cmx \
- mlvirtmanager_connections.cmx
--- /dev/null
+vc_connections.cmi: ../libvirt/libvirt.cmi
+vc_domain_ops.cmi: vc_connections.cmi
+vc_helpers.cmi: ../libvirt/libvirt.cmi
+vc_mainwindow.cmi: vc_connections.cmi
+vc_connections.cmo: vc_helpers.cmi ../libvirt/libvirt.cmi vc_connections.cmi
+vc_connections.cmx: vc_helpers.cmx ../libvirt/libvirt.cmx vc_connections.cmi
+vc_domain_ops.cmo: vc_connections.cmi ../libvirt/libvirt.cmi \
+ vc_domain_ops.cmi
+vc_domain_ops.cmx: vc_connections.cmx ../libvirt/libvirt.cmx \
+ vc_domain_ops.cmi
+vc_helpers.cmo: ../libvirt/libvirt.cmi vc_helpers.cmi
+vc_helpers.cmx: ../libvirt/libvirt.cmx vc_helpers.cmi
+vc_mainwindow.cmo: vc_connections.cmi ../libvirt/libvirt.cmi \
+ vc_mainwindow.cmi
+vc_mainwindow.cmx: vc_connections.cmx ../libvirt/libvirt.cmx \
+ vc_mainwindow.cmi
+virt_ctrl.cmo: vc_mainwindow.cmi vc_domain_ops.cmi vc_connections.cmi
+virt_ctrl.cmx: vc_mainwindow.cmx vc_domain_ops.cmx vc_connections.cmx
-# mlvirtmanager
+# virt-ctrl (originally called mlvirtmanager)
# Copyright (C) 2007 Red Hat Inc., Richard W.M. Jones
#
# This program is free software; you can redistribute it and/or modify
export LIBRARY_PATH=../libvirt
export LD_LIBRARY_PATH=../libvirt
-BYTE_TARGETS := mlvirtmanager
-OPT_TARGETS := mlvirtmanager.opt
+BYTE_TARGETS := virt-ctrl
+OPT_TARGETS := virt-ctrl.opt
-VIRTMANAGER_OBJS := \
- mlvirtmanager_helpers.cmo \
- mlvirtmanager_connections.cmo \
- mlvirtmanager_domain_ops.cmo \
- mlvirtmanager_mainwindow.cmo \
- mlvirtmanager.cmo
+OBJS := \
+ vc_helpers.cmo \
+ vc_connections.cmo \
+ vc_domain_ops.cmo \
+ vc_mainwindow.cmo \
+ virt_ctrl.cmo
-VIRTMANAGER_XOBJS := $(VIRTMANAGER_OBJS:.cmo=.cmx)
+XOBJS := $(OBJS:.cmo=.cmx)
all: $(BYTE_TARGETS)
opt: $(OPT_TARGETS)
ifneq ($(OCAMLFIND),)
-mlvirtmanager: $(VIRTMANAGER_OBJS)
+virt-ctrl: $(OBJS)
$(OCAMLFIND) ocamlc $(OCAMLCPACKAGES) $(OCAMLCFLAGS) $(OCAMLCLIBS) \
../libvirt/mllibvirt.cma gtkInit.cmo -o $@ $^
-mlvirtmanager.opt: $(VIRTMANAGER_XOBJS)
+virt-ctrl.opt: $(XOBJS)
$(OCAMLFIND) ocamlopt \
$(OCAMLOPTPACKAGES) $(OCAMLOPTFLAGS) $(OCAMLOPTLIBS) \
../libvirt/mllibvirt.cmxa gtkInit.cmx -o $@ $^
else
-mlvirtmanager: $(VIRTMANAGER_OBJS)
+virt-ctrl: $(OBJS)
$(OCAMLC) $(OCAMLCINCS) $(OCAMLCFLAGS) $(OCAMLCLIBS) \
../libvirt/mllibvirt.cma gtkInit.cmo -o $@ $^
-mlvirtmanager.opt: $(VIRTMANAGER_XOBJS)
+virt-ctrl.opt: $(XOBJS)
$(OCAMLOPT) -verbose $(OCAMLOPTINCS) $(OCAMLOPTFLAGS) $(OCAMLOPTLIBS) \
-cclib "$(LDFLAGS)" \
../libvirt/mllibvirt.cmxa gtkInit.cmx -o $@ $^
endif
install:
- if [ -x mlvirtmanager.opt ]; then \
+ if [ -x virt-ctrl.opt ]; then \
mkdir -p $(DESTDIR)$(bindir); \
- $(INSTALL) -m 0755 mlvirtmanager.opt $(DESTDIR)$(bindir)/mlvirtmanager; \
+ $(INSTALL) -m 0755 virt-ctrl.opt $(DESTDIR)$(bindir)/virt-ctrl; \
fi
include ../Make.rules
module D = Libvirt.Domain
module N = Libvirt.Network
-open Mlvirtmanager_helpers
+open Vc_helpers
(* List of currently open connections. Actually it's a list of
* (id, Libvirt.Connect.t) so that we can easily identify
(* Get the selected domain (if there is one) or return None. *)
let get_domain (tree : GTree.view) (model : GTree.tree_store)
- (columns : Mlvirtmanager_connections.columns) =
+ (columns : Vc_connections.columns) =
let path, _ = tree#get_cursor () in
match path with
| None -> None (* No row at all selected. *)
let (_, col_domname, _, _, _, col_id) = columns in
let conn_id = model#get ~row:parent ~column:col_id in
let conn =
- List.assoc conn_id (Mlvirtmanager_connections.get_conns ()) in
+ List.assoc conn_id (Vc_connections.get_conns ()) in
let domid = model#get ~row ~column:col_id in
if domid = -1 then ( (* Inactive domain. *)
let domname = model#get ~row ~column:col_domname in
Domain operations buttons.
*)
-val start_domain : GTree.view -> GTree.tree_store -> Mlvirtmanager_connections.columns -> unit -> unit
-val pause_domain : GTree.view -> GTree.tree_store -> Mlvirtmanager_connections.columns -> unit -> unit
-val resume_domain : GTree.view -> GTree.tree_store -> Mlvirtmanager_connections.columns -> unit -> unit
-val shutdown_domain : GTree.view -> GTree.tree_store -> Mlvirtmanager_connections.columns -> unit -> unit
+val start_domain : GTree.view -> GTree.tree_store -> Vc_connections.columns -> unit -> unit
+val pause_domain : GTree.view -> GTree.tree_store -> Vc_connections.columns -> unit -> unit
+val resume_domain : GTree.view -> GTree.tree_store -> Vc_connections.columns -> unit -> unit
+val shutdown_domain : GTree.view -> GTree.tree_store -> Vc_connections.columns -> unit -> unit
(* The treeview. *)
let (tree, model, columns, initial_state) =
- Mlvirtmanager_connections.make_treeview
+ Vc_connections.make_treeview
~packing:(vbox#pack ~expand:true ~fill:true) () in
ignore (start_button#connect#clicked
(* Make a timeout function which is called once per second. *)
let state = ref initial_state in
let callback () =
- state := Mlvirtmanager_connections.repopulate tree model columns !state;
+ state := Vc_connections.repopulate tree model columns !state;
true
in
let timeout_id = GMain.Timeout.add ~ms:1000 ~callback in
callback functions to wire everything up.
*)
val make : open_connection:(unit -> unit) ->
- start_domain:(GTree.view -> GTree.tree_store -> Mlvirtmanager_connections.columns -> unit -> unit) ->
- pause_domain:(GTree.view -> GTree.tree_store -> Mlvirtmanager_connections.columns -> unit -> unit) ->
- resume_domain:(GTree.view -> GTree.tree_store -> Mlvirtmanager_connections.columns -> unit -> unit) ->
- shutdown_domain:(GTree.view -> GTree.tree_store -> Mlvirtmanager_connections.columns -> unit -> unit) -> unit
+ start_domain:(GTree.view -> GTree.tree_store -> Vc_connections.columns -> unit -> unit) ->
+ pause_domain:(GTree.view -> GTree.tree_store -> Vc_connections.columns -> unit -> unit) ->
+ resume_domain:(GTree.view -> GTree.tree_store -> Vc_connections.columns -> unit -> unit) ->
+ shutdown_domain:(GTree.view -> GTree.tree_store -> Vc_connections.columns -> unit -> unit) -> unit
let () =
(* Build the main window and wire up the buttons to the callback functions *)
- Mlvirtmanager_mainwindow.make
- ~open_connection:Mlvirtmanager_connections.open_connection
- ~start_domain:Mlvirtmanager_domain_ops.start_domain
- ~pause_domain:Mlvirtmanager_domain_ops.pause_domain
- ~resume_domain:Mlvirtmanager_domain_ops.resume_domain
- ~shutdown_domain:Mlvirtmanager_domain_ops.shutdown_domain;
+ Vc_mainwindow.make
+ ~open_connection:Vc_connections.open_connection
+ ~start_domain:Vc_domain_ops.start_domain
+ ~pause_domain:Vc_domain_ops.pause_domain
+ ~resume_domain:Vc_domain_ops.resume_domain
+ ~shutdown_domain:Vc_domain_ops.shutdown_domain;
(* Enter the Gtk main loop. *)
GMain.main ()
Section "Programs (recommended)"\r
SetOutPath $INSTDIR\r
File "/oname=mlvirsh.exe" "mlvirsh\mlvirsh.opt"\r
- File "/oname=mlvirtmanager.exe" "mlvirsh\mlvirtmanager.opt"\r
+ File "/oname=virt-ctrl.exe" "mlvirsh\virt-ctrl.opt"\r
SectionEnd\r
\r
Section "OCaml Libvirt bindings (for developers only)"\r
CreateDirectory "$SMPROGRAMS\${PACKAGE}"\r
CreateShortCut "$SMPROGRAMS\${PACKAGE}\Uninstall.lnk" "$INSTDIR\Uninstall ${PACKAGE}.exe" "" "$INSTDIR\Uninstall ${PACKAGE}.exe" 0\r
CreateShortCut "$SMPROGRAMS\${PACKAGE}\Virt Shell.lnk" "$INSTDIR\mlvirsh.exe" "" "$INSTDIR\mlvirsh.exe" 0\r
- CreateShortCut "$SMPROGRAMS\${PACKAGE}\Virt Control.lnk" "$INSTDIR\mlvirtmanager.exe" "" "$INSTDIR\mlvirtmanager.exe" 0\r
+ CreateShortCut "$SMPROGRAMS\${PACKAGE}\Virt Control.lnk" "$INSTDIR\virt-ctrlr.exe" "" "$INSTDIR\virt-ctrl.exe" 0\r
SectionEnd\r
\r
Section "Desktop Icons"\r
CreateShortCut "$DESKTOP\Virt Shell.lnk" "$INSTDIR\mlvirsh.exe" "" "$INSTDIR\mlvirsh.exe" 0\r
- CreateShortCut "$DESKTOP\Virt Control.lnk" "$INSTDIR\mlvirtmanager.exe" "" "$INSTDIR\mlvirtmanager.exe" 0\r
+ CreateShortCut "$DESKTOP\Virt Control.lnk" "$INSTDIR\virt-ctrl.exe" "" "$INSTDIR\virt-ctrl.exe" 0\r
SectionEnd\r
\r
Section "Uninstall"\r