config directory (Daniel Berrange and Mark McLoughlin), memory leak in qemud (Mark), various fixes on network support (Mark), avoid Xen domain zombies on device hotplug errors (Daniel Berrange), various fixes on qemud (Mark),
config directory (Daniel Berrange and Mark McLoughlin), memory leak
Berrange), pointer/int mismatch (Richard Jones), configure time
selection of drivers, libvirt spec hacking (Daniel Berrange)
- Add support for network autostart and init scripts (Mark McLoughlin)
- Add support for network autostart and init scripts (Mark McLoughlin)
- New API virConnectGetCapabilities() to detect the virtualization
- New API virConnectGetCapabilities() to detect the virtualization
capabilities of a host (Richard Jones)
capabilities of a host (Richard Jones)
...
@@ -27,14 +38,14 @@ Releases
...
@@ -27,14 +38,14 @@ Releases
0.2.0: Feb 14 2007:
0.2.0: Feb 14 2007:
- Various internal cleanups (Mark McLoughlin, Richard Jones,Daniel
- Various internal cleanups (Mark McLoughlin, Richard Jones,
Berrange, Karel Zak)
Daniel Berrange, Karel Zak)
- Bug fixes: avoid a crash in connect (Daniel Berrange), virsh
- Bug fixes: avoid a crash in connect (Daniel Berrange), virsh args
argsparsing (Richard Jones)
parsing (Richard Jones)
- Add support for QEmu and KVM virtualization (Daniel Berrange)
- Add support for QEmu and KVM virtualization (Daniel Berrange)
- Add support for network configuration (Mark McLoughlin)
- Add support for network configuration (Mark McLoughlin)
- Minor improvements: regression testing (Daniel Berrange),localization
- Minor improvements: regression testing (Daniel Berrange),
string updates
localization string updates
0.1.11: Jan 22 2007:
0.1.11: Jan 22 2007:
...
@@ -46,18 +57,12 @@ Releases
...
@@ -46,18 +57,12 @@ Releases
0.1.10: Dec 20 2006:
0.1.10: Dec 20 2006:
- more localizations
- more localizations
- bug fixes: VCPU info breakages on xen 3.0.3, xenDaemonListDomains
- bug fixes: VCPU info breakages on xen 3.0.3, xenDaemonListDomains buffer overflow (Daniel Berrange), reference count bug when creating Xen domains (Daniel Berrange).
buffer overflow (Daniel Berrange), reference count bug when creating Xen
- improvements: support graphic framebuffer for Xen paravirt (Daniel Berrange), VNC listen IP range support (Daniel Berrange), support for default Xen config files and inactive domains of 3.0.4 (Daniel Berrange).
domains (Daniel Berrange).
- improvements: support graphic framebuffer for Xen paravirt (Daniel
Berrange), VNC listen IP range support (Daniel Berrange), support for
default Xen config files and inactive domains of 3.0.4 (Daniel
Berrange).
0.1.9: Nov 29 2006:
0.1.9: Nov 29 2006:
- python bindings: release interpeter lock when calling C (Daniel
- python bindings: release interpeter lock when calling C (Daniel Berrange)
Berrange)
- don't raise HTTP error when looking informations for a domain
- don't raise HTTP error when looking informations for a domain
- some refactoring to use the driver for all entry points
- some refactoring to use the driver for all entry points
- better error reporting (Daniel Berrange)
- better error reporting (Daniel Berrange)
...
@@ -65,20 +70,15 @@ Releases
...
@@ -65,20 +70,15 @@ Releases
- provide XML parsing errors
- provide XML parsing errors
- extension of the test framework (Daniel Berrange)
- extension of the test framework (Daniel Berrange)
- fix the reconnect regression test
- fix the reconnect regression test
- python bindings: Domain instances now link to the Connect to avoid
- python bindings: Domain instances now link to the Connect to avoid garbage collection and disconnect
garbage collection and disconnect
- separate the notion of maximum memory and current use at the XML level
- separate the notion of maximum memory and current use at the XML
level
- Fix a memory leak (Daniel Berrange)
- Fix a memory leak (Daniel Berrange)
- add support for shareable drives
- add support for shareable drives
- add support for non-bridge style networking configs for guests(Daniel
- add support for non-bridge style networking configs for guests(Daniel Berrange)
Berrange)
- python bindings: fix unsigned long marshalling (Daniel Berrange)
- python bindings: fix unsigned long marshalling (Daniel Berrange)
- new config APIs virConfNew() and virConfSetValue() to build configs
- new config APIs virConfNew() and virConfSetValue() to build configs from scratch
from scratch
- hot plug device support based on Michel Ponceau patch
- hot plug device support based on Michel Ponceau patch
- added support for inactive domains, new APIs, various associated
- added support for inactive domains, new APIs, various associated cleanup (Daniel Berrange)
cleanup (Daniel Berrange)
- special device model for HVM guests (Daniel Berrange)
- special device model for HVM guests (Daniel Berrange)
- add API to dump core of domains (but requires a patched xend)
- add API to dump core of domains (but requires a patched xend)
- pygrub bootloader informations take over <os> informations
- pygrub bootloader informations take over <os> informations
...
@@ -86,78 +86,72 @@ Releases
...
@@ -86,78 +86,72 @@ Releases
0.1.8: Oct 16 2006:
0.1.8: Oct 16 2006:
- Bug for system with page size != 4k
- Bug for system with page size != 4k
- vcpu number initialization (Philippe Berthault)
- vcpu number initialization (Philippe Berthault)
- don't label crashed domains as shut off (Peter Vetere)
- don't label crashed domains as shut off (Peter Vetere)
- fix virsh man page (Noriko Mizumoto)
- fix virsh man page (Noriko Mizumoto)
- blktapdd support for alternate drivers like blktap (Daniel
- blktapdd support for alternate drivers like blktap (Daniel Berrange)
Berrange)
- memory leak fixes (xend interface and XML parsing) (Daniel Berrange)
- memory leak fixes (xend interface and XML parsing) (Daniel
- compile fix
Berrange)
- mlock/munlock size fixes (Daniel Berrange)
- compile fix
- improve error reporting
- mlock/munlock size fixes (Daniel Berrange)
- improve error reporting
0.1.7: Sep 29 2006:
0.1.7: Sep 29 2006:
- fix a memory bug on getting vcpu informations from xend (Daniel
- fix a memory bug on getting vcpu informations from xend (Daniel Berrange)
Berrange)
- fix another problem in the hypercalls change in Xen changeset
- fix another problem in the hypercalls change in Xen
86d26e6ec89b when getting domain informations (Daniel Berrange)
changeset86d26e6ec89b when getting domain informations (Daniel
Berrange)
0.1.6: Sep 22 2006:
0.1.6: Sep 22 2006:
- Support for localization of strings using gettext (Daniel Berrange)
- Support for localization of strings using gettext (Daniel Berrange)
- Support for new Xen-3.0.3 cdrom and disk configuration (Daniel
- Support for new Xen-3.0.3 cdrom and disk configuration (Daniel Berrange)
Berrange)
- Support for setting VNC port when creating domains with new
- Support for setting VNC port when creating domains with newxend config
xend config files (Daniel Berrange)
files (Daniel Berrange)
- Fix bug when running against xen-3.0.2 hypercalls (Jim Fehlig)
- Fix bug when running against xen-3.0.2 hypercalls (Jim Fehlig)
- Fix reconnection problem when talking directly to http xend
- Fix reconnection problem when talking directly to http xend
0.1.5: Sep 5 2006:
0.1.5: Sep 5 2006:
- Support for new hypercalls change in Xen changeset 86d26e6ec89b
- Support for new hypercalls change in Xen changeset 86d26e6ec89b
- bug fixes: virParseUUID() was wrong, netwoking for paravirt
- bug fixes: virParseUUID() was wrong, netwoking for paravirt guestsi
guestsi(Daniel Berrange), virsh on non-existent domains (Daniel
(Daniel Berrange), virsh on non-existent domains (Daniel Berrange),
Berrange),string cast bug when handling error in python (Pete Vetere),
string cast bug when handling error in python (Pete Vetere), HTTP
HTTP500 xend error code handling (Pete Vetere and Daniel Berrange)
500 xend error code handling (Pete Vetere and Daniel Berrange)
- improvements: test suite for SEXPR <-> XML format conversions
- improvements: test suite for SEXPR <-> XML format conversions (Daniel
(DanielBerrange), virsh output regression suite (Daniel Berrange), new
Berrange), virsh output regression suite (Daniel Berrange), new environ
environvariable VIRSH_DEFAULT_CONNECT_URI for the default URI when
variable VIRSH_DEFAULT_CONNECT_URI for the default URI when connecting
connecting(Daniel Berrange), graphical console support for paravirt
(Daniel Berrange), graphical console support for paravirt guests
guests(Jeremy Katz), parsing of simple Xen config files (with Daniel
(Jeremy Katz), parsing of simple Xen config files (with Daniel Berrange),
Berrange),early work on defined (not running) domains (Daniel
early work on defined (not running) domains (Daniel Berrange),
</ol><h3><aname="Developer"id="Developer">Developer</a>corner</h3><ol><li><em>Troubles compiling or linking programs using libvirt</em>
</ol><h3><aname="Developer"id="Developer">Developer</a>corner</h3><ol><li><em>Troubles compiling or linking programs using libvirt</em>
<p>To simplify the process of reusing the library, libvirt comes
<p>To simplify the process of reusing the library, libvirt comes with
withpkgconfig support, which can be used directly from autoconf support
pkgconfig support, which can be used directly from autoconf support or
orvia the pkg-config command line tool, like:</p>
via the pkg-config command line tool, like:</p>
<p><code>pkg-config libvirt --libs</code></p>
<p><code>pkg-config libvirt --libs</code></p>
</li>
</li>
</ol></div></div><divclass="linkList2"><divclass="llinks2"><h3class="links2"><span>main menu</span></h3><ul><li><ahref="index.html">Home</a></li><li><ahref="news.html">Releases</a></li><li><ahref="intro.html">Introduction</a></li><li><ahref="architecture.html">libvirt architecture</a></li><li><ahref="downloads.html">Downloads</a></li><li><ahref="format.html">XML Formats</a></li><li><ahref="python.html">Binding for Python</a></li><li><ahref="errors.html">Handling of errors</a></li><li><ahref="FAQ.html">FAQ</a></li><li><ahref="bugs.html">Reporting bugs and getting help</a></li><li><ahref="html/index.html">API Menu</a></li><li><ahref="examples/index.html">C code examples</a></li><li><ahref="ChangeLog.html">Recent Changes</a></li></ul></div><divclass="llinks2"><h3class="links2"><span>related links</span></h3><ul><li><ahref="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><ahref="https://bugzilla.redhat.com/bugzilla/buglist.cgi?product=Fedora+Core&component=libvirt&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=MODIFIED&short_desc_type=allwordssubstr&short_desc=&long_desc_type=allwordssubstr">Open bugs</a></li><li><ahref="http://virt-manager.et.redhat.com/">virt-manager</a></li><li><ahref="http://search.cpan.org/~danberr/Sys-Virt-0.1.0/">Perl bindings</a></li><li><ahref="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><formaction="search.php"enctype="application/x-www-form-urlencoded"method="get"><inputname="query"type="text"size="12"value="Search..."/><inputname="submit"type="submit"value="Go"/></form></li><li><ahref="http://xmlsoft.org/"><imgsrc="Libxml2-Logo-90x34.gif"alt="Made with Libxml2 Logo"/></a></li></ul><pclass="credits">Graphics and design by <ahref="mail:dfong@redhat.com">Diana Fong</a></p></div></div><divid="bottom"><pclass="p1"></p></div></div></body></html>
</ol></div></div><divclass="linkList2"><divclass="llinks2"><h3class="links2"><span>main menu</span></h3><ul><li><ahref="index.html">Home</a></li><li><ahref="news.html">Releases</a></li><li><ahref="intro.html">Introduction</a></li><li><ahref="architecture.html">libvirt architecture</a></li><li><ahref="downloads.html">Downloads</a></li><li><ahref="format.html">XML Format</a></li><li><ahref="python.html">Binding for Python</a></li><li><ahref="errors.html">Handling of errors</a></li><li><ahref="FAQ.html">FAQ</a></li><li><ahref="bugs.html">Reporting bugs and getting help</a></li><li><ahref="html/index.html">API Menu</a></li><li><ahref="examples/index.html">C code examples</a></li><li><ahref="ChangeLog.html">Recent Changes</a></li></ul></div><divclass="llinks2"><h3class="links2"><span>related links</span></h3><ul><li><ahref="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><ahref="https://bugzilla.redhat.com/bugzilla/buglist.cgi?product=Fedora+Core&component=libvirt&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=MODIFIED&short_desc_type=allwordssubstr&short_desc=&long_desc_type=allwordssubstr">Open bugs</a></li><li><ahref="http://virt-manager.et.redhat.com/">virt-manager</a></li><li><ahref="http://search.cpan.org/~danberr/Sys-Virt-0.1.0/">Perl bindings</a></li><li><ahref="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><formaction="search.php"enctype="application/x-www-form-urlencoded"method="get"><inputname="query"type="text"size="12"value="Search..."/><inputname="submit"type="submit"value="Go"/></form></li><li><ahref="http://xmlsoft.org/"><imgsrc="Libxml2-Logo-90x34.gif"alt="Made with Libxml2 Logo"/></a></li></ul><pclass="credits">Graphics and design by <ahref="mail:dfong@redhat.com">Diana Fong</a></p></div></div><divid="bottom"><pclass="p1"></p></div></div></body></html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml"><head><metahttp-equiv="Content-Type"content="text/html; charset=ISO-8859-1"/><linkrel="stylesheet"type="text/css"href="libvirt.css"/><linkrel="SHORTCUT ICON"href="/32favicon.png"/><title>libvirt architecture</title></head><body><divid="container"><divid="intro"><divid="adjustments"></div><divid="pageHeader"></div><divid="content2"><h1class="style1">libvirt architecture</h1><p>Currently libvirt supports 2 kind of virtualization, and its
<htmlxmlns="http://www.w3.org/1999/xhtml"><head><metahttp-equiv="Content-Type"content="text/html; charset=ISO-8859-1"/><linkrel="stylesheet"type="text/css"href="libvirt.css"/><linkrel="SHORTCUT ICON"href="/32favicon.png"/><title>libvirt architecture</title></head><body><divid="container"><divid="intro"><divid="adjustments"></div><divid="pageHeader"></div><divid="content2"><h1class="style1">libvirt architecture</h1><p>Currently libvirt supports 2 kind of virtualization, and its
internalstructure is based on a driver model which simplifies adding new
internalstructure is based on a driver model which simplifies adding new
</ul><h3><aname="Xen"id="Xen">Libvirt Xen support</a></h3><p>When running in a Xen environment, programs using libvirt have to
</ul><h3><aname="Xen"id="Xen">Libvirt Xen support</a></h3><p>When running in a Xen environment, programs using libvirt have to execute
executein "Domain 0", which is the primary Linux OS loaded on the machine.
in "Domain 0", which is the primary Linux OS loaded on the machine. That OS
That OSkernel provides most if not all of the actual drivers used by the set
kernel provides most if not all of the actual drivers used by the set of
ofdomains. It also runs the Xen Store, a database of informations shared by
domains. It also runs the Xen Store, a database of informations shared by the
thehypervisor, the kernels, the drivers and the xen daemon. Xend. The xen
hypervisor, the kernels, the drivers and the xen daemon. Xend. The xen daemon
daemonsupervise the control and execution of the sets of domains. The
supervise the control and execution of the sets of domains. The hypervisor,
hypervisor,drivers, kernels and daemons communicate though a shared system
drivers, kernels and daemons communicate though a shared system bus
busimplemented in the hypervisor. The figure below tries to provide a view
implemented in the hypervisor. The figure below tries to provide a view of
ofthis environment:</p><imgsrc="architecture.gif"alt="The Xen architecture"/><p>The library can be initialized in 2 ways depending on the level
this environment:</p><imgsrc="architecture.gif"alt="The Xen architecture"/><p>The library can be initialized in 2 ways depending on the level of
ofpriviledge of the embedding program. If it runs with root
priviledge of the embedding program. If it runs with root access,
access,virConnectOpen() can be used, it will use different ways to connect
virConnectOpen() can be used, it will use three different ways to connect to
tothe Xen infrastructure:</p><ul><li>a connection to the Xen Daemon though an HTTP RPC layer</li>
the Xen infrastructure:</p><ul><li>a connection to the Xen Daemon though an HTTP RPC layer</li>
<li>a read/write connection to the Xen Store</li>
<li>a read/write connection to the Xen Store</li>
<li>use Xen Hypervisor calls</li>
<li>use Xen Hypervisor calls</li>
<li>when used as non-root libvirt connect to a proxy daemon runningas root
<li>when used as non-root libvirt connect to a proxy daemon running
and providing read-only support</li>
as root and providing read-only support</li>
</ul><p>The library will usually interact with the Xen daemon for any
</ul><p>The library will usually interact with the Xen daemon for any operation
operationchanging the state of the system, but for performance and accuracy
changing the state of the system, but for performance and accuracy reasons
reasonsmay talk directly to the hypervisor when gathering state informations
may talk directly to the hypervisor when gathering state informations at
atleast when possible (i.e. when the running program using libvirt has
least when possible (i.e. when the running program using libvirt has root
rootpriviledge access).</p><p>If it runs without root access virConnectOpenReadOnly() should be used
priviledge access).</p><p>If it runs without root access virConnectOpenReadOnly() should be used to
toconnect to initialize the library. It will then fork a libvirt_proxy
connect to initialize the library. It will then fork a libvirt_proxy
programrunning as root and providing read_only access to the API, this is
program running as root and providing read_only access to the API, this is
thenonly useful for reporting and monitoring.</p><h3><aname="QEmu"id="QEmu">Libvirt QEmu and KVM support</a></h3><p>The model for QEmu and KVM is completely similar, basically KVM isbased on
then only useful for reporting and monitoring.</p><h3><aname="QEmu"id="QEmu">Libvirt QEmu and KVM support</a></h3><p>The model for QEmu and KVM is completely similar, basically KVM is based
QEmu for the process controlling a new domain, only small detailsdiffers
on QEmu for the process controlling a new domain, only small details differs
between the two. In both case the libvirt API is providedby a controlling
between the two. In both case the libvirt API is provided by a controlling
process forked by libvirt in the background andwhich launch and control the
process forked by libvirt in the background and which launch and control the
QEmu or KVM process. That program calledlibvirt_qemud talks though a specific
QEmu or KVM process. That program called libvirt_qemud talks though a specific
protocol to the library, andconnects to the console of the QEmu process in
protocol to the library, and connects to the console of the QEmu process in
order to control andreport on its status. Libvirt tries to expose all the
order to control and report on its status. Libvirt tries to expose all the
emulationsmodels of QEmu, the selection is done when creating the new
emulations models of QEmu, the selection is done when creating the new
domain,by specifying the architecture and machine type targetted.</p><p>The code controlling the QEmu process is available in
domain, by specifying the architecture and machine type targetted.</p><p>The code controlling the QEmu process is available in the
the<code>qemud/</code>subdirectory.</p><h3><aname="drivers"id="drivers">the driver based architecture</a></h3><p>As the previous section explains, libvirt can communicate using
<code>qemud/</code> directory.</p><h3><aname="drivers"id="drivers">the driver based architecture</a></h3><p>As the previous section explains, libvirt can communicate using different
differentchannels with the Xen hypervisor, and is also able to use different
channels with the current hypervisor, and should also be able to use
kindof hypervisor. To simplify the internal design, code, easemaintainance
different kind of hypervisor. To simplify the internal design, code, ease
and simplify the support of other virtualization engine theinternals have
maintainance and simplify the support of other virtualization engine the
been structured as one core component, the libvirt.c moduleacting as a
internals have been structured as one core component, the libvirt.c module
front-end for the library API and a set of hypvisor driversdefining a common
acting as a front-end for the library API and a set of hypvisor drivers
set of routines. That way the Xen Daemon accces, the XenStore one, the
defining a common set of routines. That way the Xen Daemon accces, the Xen
Hypervisor hypercall are all isolated in separate C modulesimplementing at
Store one, the Hypervisor hypercall are all isolated in separate C modules
least a subset of the common operations defined by thedrivers present in
implementing at least a subset of the common operations defined by the
driver.h. The driver architecture is used to add supportfor other
drivers present in driver.h:</p><ul><li>xend_internal: implements the driver functions though the Xen
virtualization engines and</p><ul><li>xend_internal: implements the driver functions though the
Daemon</li>
XenDaemon.</li>
<li>xs_internal: implements the subset of the driver availble though the
<li>xs_internal: implements the subset of the driver availble though theXen
Xen Store</li>
Store.</li>
<li>xen_internal: provide the implementation of the functions possible via
<li>xen_internal: provide the implementation of the functions possible
direct hypervisor access</li>
viadirect Xen hypervisor access.</li>
<li>proxy_internal: provide read-only Xen access via a proxy, the proxy code
<li>proxy_internal: provide read-only Xen access via a proxy, the proxycode
is in the <code>proxy/</code>directory.</li>
is in the <code>proxy/</code>sub directory.</li>
<li>xm_internal: provide support for Xen defined but not running
<li>xm_internal: provide support for Xen defined but not running
domains.</li>
domains.</li>
<li>qemu_internal: implement the driver functions for QEmu and
<li>qemu_internal: implement the driver functions for QEmu and
KVMvirtualization engines. It also uses a qemud/ specific daemon
KVMvirtualization engines. It also uses a qemud/ specific daemon
whichinterracts with the QEmu process to implement libvirt API.</li>
whichinterracts with the QEmu process to implement libvirt API.</li>
<li>test: this is a test driver useful for regression tests of thefront-end
<li>test: this is a test driver useful for regression tests of the
part of libvirt.</li>
front-end part of libvirt.</li>
</ul><p>Note that a given driver may only implement a subset of those
</ul><p>Note that a given driver may only implement a subset of those functions,
functions,for example saving a Xen domain state to disk and restoring it is
(for example saving a Xen domain state to disk and restoring it is only
only possiblethough the Xen Daemon, in that case the driver entry points are
possible though the Xen Daemon), in that case the driver entry points for
initialized toNULL.</p><p></p></div></div><divclass="linkList2"><divclass="llinks2"><h3class="links2"><span>main menu</span></h3><ul><li><ahref="index.html">Home</a></li><li><ahref="news.html">Releases</a></li><li><ahref="intro.html">Introduction</a></li><li><ahref="architecture.html">libvirt architecture</a></li><li><ahref="downloads.html">Downloads</a></li><li><ahref="format.html">XML Formats</a></li><li><ahref="python.html">Binding for Python</a></li><li><ahref="errors.html">Handling of errors</a></li><li><ahref="FAQ.html">FAQ</a></li><li><ahref="bugs.html">Reporting bugs and getting help</a></li><li><ahref="html/index.html">API Menu</a></li><li><ahref="examples/index.html">C code examples</a></li><li><ahref="ChangeLog.html">Recent Changes</a></li></ul></div><divclass="llinks2"><h3class="links2"><span>related links</span></h3><ul><li><ahref="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><ahref="https://bugzilla.redhat.com/bugzilla/buglist.cgi?product=Fedora+Core&component=libvirt&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=MODIFIED&short_desc_type=allwordssubstr&short_desc=&long_desc_type=allwordssubstr">Open bugs</a></li><li><ahref="http://virt-manager.et.redhat.com/">virt-manager</a></li><li><ahref="http://search.cpan.org/~danberr/Sys-Virt-0.1.0/">Perl bindings</a></li><li><ahref="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><formaction="search.php"enctype="application/x-www-form-urlencoded"method="get"><inputname="query"type="text"size="12"value="Search..."/><inputname="submit"type="submit"value="Go"/></form></li><li><ahref="http://xmlsoft.org/"><imgsrc="Libxml2-Logo-90x34.gif"alt="Made with Libxml2 Logo"/></a></li></ul><pclass="credits">Graphics and design by <ahref="mail:dfong@redhat.com">Diana Fong</a></p></div></div><divid="bottom"><pclass="p1"></p></div></div></body></html>
unsupported functions are initialized to NULL.</p><p></p></div></div><divclass="linkList2"><divclass="llinks2"><h3class="links2"><span>main menu</span></h3><ul><li><ahref="index.html">Home</a></li><li><ahref="news.html">Releases</a></li><li><ahref="intro.html">Introduction</a></li><li><ahref="architecture.html">libvirt architecture</a></li><li><ahref="downloads.html">Downloads</a></li><li><ahref="format.html">XML Format</a></li><li><ahref="python.html">Binding for Python</a></li><li><ahref="errors.html">Handling of errors</a></li><li><ahref="FAQ.html">FAQ</a></li><li><ahref="bugs.html">Reporting bugs and getting help</a></li><li><ahref="html/index.html">API Menu</a></li><li><ahref="examples/index.html">C code examples</a></li><li><ahref="ChangeLog.html">Recent Changes</a></li></ul></div><divclass="llinks2"><h3class="links2"><span>related links</span></h3><ul><li><ahref="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><ahref="https://bugzilla.redhat.com/bugzilla/buglist.cgi?product=Fedora+Core&component=libvirt&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=MODIFIED&short_desc_type=allwordssubstr&short_desc=&long_desc_type=allwordssubstr">Open bugs</a></li><li><ahref="http://virt-manager.et.redhat.com/">virt-manager</a></li><li><ahref="http://search.cpan.org/~danberr/Sys-Virt-0.1.0/">Perl bindings</a></li><li><ahref="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><formaction="search.php"enctype="application/x-www-form-urlencoded"method="get"><inputname="query"type="text"size="12"value="Search..."/><inputname="submit"type="submit"value="Go"/></form></li><li><ahref="http://xmlsoft.org/"><imgsrc="Libxml2-Logo-90x34.gif"alt="Made with Libxml2 Logo"/></a></li></ul><pclass="credits">Graphics and design by <ahref="mail:dfong@redhat.com">Diana Fong</a></p></div></div><divid="bottom"><pclass="p1"></p></div></div></body></html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml"><head><metahttp-equiv="Content-Type"content="text/html; charset=ISO-8859-1"/><linkrel="stylesheet"type="text/css"href="libvirt.css"/><linkrel="SHORTCUT ICON"href="/32favicon.png"/><title>Reporting bugs and getting help</title></head><body><divid="container"><divid="intro"><divid="adjustments"></div><divid="pageHeader"></div><divid="content2"><h1class="style1">Reporting bugs and getting help</h1><p>There is a mailing-list <ahref="mailto:libvir-list@redhat.com">libvir-list@redhat.com</a>for
<htmlxmlns="http://www.w3.org/1999/xhtml"><head><metahttp-equiv="Content-Type"content="text/html; charset=ISO-8859-1"/><linkrel="stylesheet"type="text/css"href="libvirt.css"/><linkrel="SHORTCUT ICON"href="/32favicon.png"/><title>Reporting bugs and getting help</title></head><body><divid="container"><divid="intro"><divid="adjustments"></div><divid="pageHeader"></div><divid="content2"><h1class="style1">Reporting bugs and getting help</h1><p>There is a mailing-list <ahref="mailto:libvir-list@redhat.com">libvir-list@redhat.com</a> for libvirt,
libvirt,with an <ahref="https://www.redhat.com/archives/libvir-list/">on-linearchive</a>.
with an <ahref="https://www.redhat.com/archives/libvir-list/">on-line
Please subscribe to this list before posting by visiting the <ahref="https://www.redhat.com/mailman/listinfo/libvir-list">associated
archive</a>. Please subscribe to this list before posting by visiting the <ahref="https://www.redhat.com/mailman/listinfo/libvir-list">associated Web</a>
Web</a>page and follow the instructions. Patches with explanations and
page and follow the instructions. Patches with explanations and provided as
provided asattachments are really appreciated and will be discussed on the
attachments are really appreciated and will be discussed on the mailing list.
mailing list.If possible generate the patches by using cvs diff -u in a CVS
If possible generate the patches by using cvs diff -u in a CVS checkout.</p><p>We use Red Hat Bugzilla to track bugs to libvirt. If you want to report a
checkout.</p><p>We use Red Hat Bugzilla to track bugs to libvirt. If you want to report
bug, please check <ahref="http://bugzilla.redhat.com/bugzilla/buglist.cgi?component=libvirt&component=libvirt-devel&component=libvirt-python&bug_status=ASSIGNED&bug_status=INVESTIGATE&bug_status=NEW&bug_status=REOPENED&bug_status=VERIFIED&short_desc_type=allwordssubstr&short_desc=&long_desc_type=allwordssubstr&long_desc=&Search=Search">the existing open bugs</a>, then if yours isn't a duplicate of
an existing bug, <ahref="http://bugzilla.redhat.com/bugzilla/enter_bug.cgi?product=Fedora%20Core&component=libvirt">log a new bug</a>. It may be good
existing open bugs</a>, then if yours isn't a duplicate ofan existing bug, <ahref="http://bugzilla.redhat.com/bugzilla/enter_bug.cgi?product=Fedora%20Core&component=libvirt">log
to post to the <ahref="mailto:libvir-list@redhat.com">mailing-list</a>
a new bug</a>. It may be goodto post to the <ahref="mailto:libvir-list@redhat.com">mailing-list</a>too if the issue looks
too if the issue looks serious, thanks !</p></div></div><divclass="linkList2"><divclass="llinks2"><h3class="links2"><span>main menu</span></h3><ul><li><ahref="index.html">Home</a></li><li><ahref="news.html">Releases</a></li><li><ahref="intro.html">Introduction</a></li><li><ahref="architecture.html">libvirt architecture</a></li><li><ahref="downloads.html">Downloads</a></li><li><ahref="format.html">XML Format</a></li><li><ahref="python.html">Binding for Python</a></li><li><ahref="errors.html">Handling of errors</a></li><li><ahref="FAQ.html">FAQ</a></li><li><ahref="bugs.html">Reporting bugs and getting help</a></li><li><ahref="html/index.html">API Menu</a></li><li><ahref="examples/index.html">C code examples</a></li><li><ahref="ChangeLog.html">Recent Changes</a></li></ul></div><divclass="llinks2"><h3class="links2"><span>related links</span></h3><ul><li><ahref="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><ahref="https://bugzilla.redhat.com/bugzilla/buglist.cgi?product=Fedora+Core&component=libvirt&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=MODIFIED&short_desc_type=allwordssubstr&short_desc=&long_desc_type=allwordssubstr">Open bugs</a></li><li><ahref="http://virt-manager.et.redhat.com/">virt-manager</a></li><li><ahref="http://search.cpan.org/~danberr/Sys-Virt-0.1.0/">Perl bindings</a></li><li><ahref="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><formaction="search.php"enctype="application/x-www-form-urlencoded"method="get"><inputname="query"type="text"size="12"value="Search..."/><inputname="submit"type="submit"value="Go"/></form></li><li><ahref="http://xmlsoft.org/"><imgsrc="Libxml2-Logo-90x34.gif"alt="Made with Libxml2 Logo"/></a></li></ul><pclass="credits">Graphics and design by <ahref="mail:dfong@redhat.com">Diana Fong</a></p></div></div><divid="bottom"><pclass="p1"></p></div></div></body></html>
serious, thanks !</p></div></div><divclass="linkList2"><divclass="llinks2"><h3class="links2"><span>main menu</span></h3><ul><li><ahref="index.html">Home</a></li><li><ahref="news.html">Releases</a></li><li><ahref="intro.html">Introduction</a></li><li><ahref="architecture.html">libvirt architecture</a></li><li><ahref="downloads.html">Downloads</a></li><li><ahref="format.html">XML Formats</a></li><li><ahref="python.html">Binding for Python</a></li><li><ahref="errors.html">Handling of errors</a></li><li><ahref="FAQ.html">FAQ</a></li><li><ahref="bugs.html">Reporting bugs and getting help</a></li><li><ahref="html/index.html">API Menu</a></li><li><ahref="examples/index.html">C code examples</a></li><li><ahref="ChangeLog.html">Recent Changes</a></li></ul></div><divclass="llinks2"><h3class="links2"><span>related links</span></h3><ul><li><ahref="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><ahref="https://bugzilla.redhat.com/bugzilla/buglist.cgi?product=Fedora+Core&component=libvirt&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=MODIFIED&short_desc_type=allwordssubstr&short_desc=&long_desc_type=allwordssubstr">Open bugs</a></li><li><ahref="http://virt-manager.et.redhat.com/">virt-manager</a></li><li><ahref="http://search.cpan.org/~danberr/Sys-Virt-0.1.0/">Perl bindings</a></li><li><ahref="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><formaction="search.php"enctype="application/x-www-form-urlencoded"method="get"><inputname="query"type="text"size="12"value="Search..."/><inputname="submit"type="submit"value="Go"/></form></li><li><ahref="http://xmlsoft.org/"><imgsrc="Libxml2-Logo-90x34.gif"alt="Made with Libxml2 Logo"/></a></li></ul><pclass="credits">Graphics and design by <ahref="mail:dfong@redhat.com">Diana Fong</a></p></div></div><divid="bottom"><pclass="p1"></p></div></div></body></html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml"><head><metahttp-equiv="Content-Type"content="text/html; charset=ISO-8859-1"/><linkrel="stylesheet"type="text/css"href="libvirt.css"/><linkrel="SHORTCUT ICON"href="/32favicon.png"/><title>Downloads</title></head><body><divid="container"><divid="intro"><divid="adjustments"></div><divid="pageHeader"></div><divid="content2"><h1class="style1">Downloads</h1><p>The latest versions of libvirt can be found on the <ahref="ftp://libvirt.org/libvirt/">libvirt.org</a>server ( <ahref="http://libvirt.org/sources/">HTTP</a>, <ahref="ftp://libvirt.org/libvirt/">FTP</a>). You will find there the
<htmlxmlns="http://www.w3.org/1999/xhtml"><head><metahttp-equiv="Content-Type"content="text/html; charset=ISO-8859-1"/><linkrel="stylesheet"type="text/css"href="libvirt.css"/><linkrel="SHORTCUT ICON"href="/32favicon.png"/><title>Downloads</title></head><body><divid="container"><divid="intro"><divid="adjustments"></div><divid="pageHeader"></div><divid="content2"><h1class="style1">Downloads</h1><p>The latest versions of libvirt can be found on the <ahref="ftp://libvirt.org/libvirt/">libvirt.org</a> server ( <ahref="http://libvirt.org/sources/">HTTP</a>, <ahref="ftp://libvirt.org/libvirt/">FTP</a>). You will find there the released
releasedversions as well as <ahref="http://libvirt.org/sources/libvirt-cvs-snapshot.tar.gz">snapshottarballs</a>updated
versions as well as <ahref="http://libvirt.org/sources/libvirt-cvs-snapshot.tar.gz">snapshot
from CVS head every hour</p><p>Anonymous <ahref="http://ximbiot.com/cvs/cvshome/docs/">CVS</a>is
tarballs</a> updated from CVS head every hour</p><p>Anonymous <ahref="http://ximbiot.com/cvs/cvshome/docs/">CVS</a> is also
alsoavailable, first register onto the server:</p><p><code>cvs -d :pserver:anoncvs@libvirt.org:2401/data/cvs login</code></p><p>it will request a password, enter <strong>anoncvs</strong>. Then you
available, first register onto the server:</p><p><code>cvs -d :pserver:anoncvs@libvirt.org:2401/data/cvs login</code></p><p>it will request a password, enter <strong>anoncvs</strong>. Then you can
cancheckout the development tree with:</p><p><code>cvs -d :pserver:anoncvs@libvirt.org:2401/data/cvs
checkout the development tree with:</p><p><code>cvs -d :pserver:anoncvs@libvirt.org:2401/data/cvs co
colibvirt</code></p><p>Use ./autogen.sh to configure the local checkout, then
libvirt</code></p><p>Use ./autogen.sh to configure the local checkout, then <code>make</code>
<code>make</code>and <code>make install</code>, as usual. All normal cvs
and <code>make install</code>, as usual. All normal cvs commands are now
commands are nowavailable except commiting to the base.</p></div></div><divclass="linkList2"><divclass="llinks2"><h3class="links2"><span>main menu</span></h3><ul><li><ahref="index.html">Home</a></li><li><ahref="news.html">Releases</a></li><li><ahref="intro.html">Introduction</a></li><li><ahref="architecture.html">libvirt architecture</a></li><li><ahref="downloads.html">Downloads</a></li><li><ahref="format.html">XML Formats</a></li><li><ahref="python.html">Binding for Python</a></li><li><ahref="errors.html">Handling of errors</a></li><li><ahref="FAQ.html">FAQ</a></li><li><ahref="bugs.html">Reporting bugs and getting help</a></li><li><ahref="html/index.html">API Menu</a></li><li><ahref="examples/index.html">C code examples</a></li><li><ahref="ChangeLog.html">Recent Changes</a></li></ul></div><divclass="llinks2"><h3class="links2"><span>related links</span></h3><ul><li><ahref="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><ahref="https://bugzilla.redhat.com/bugzilla/buglist.cgi?product=Fedora+Core&component=libvirt&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=MODIFIED&short_desc_type=allwordssubstr&short_desc=&long_desc_type=allwordssubstr">Open bugs</a></li><li><ahref="http://virt-manager.et.redhat.com/">virt-manager</a></li><li><ahref="http://search.cpan.org/~danberr/Sys-Virt-0.1.0/">Perl bindings</a></li><li><ahref="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><formaction="search.php"enctype="application/x-www-form-urlencoded"method="get"><inputname="query"type="text"size="12"value="Search..."/><inputname="submit"type="submit"value="Go"/></form></li><li><ahref="http://xmlsoft.org/"><imgsrc="Libxml2-Logo-90x34.gif"alt="Made with Libxml2 Logo"/></a></li></ul><pclass="credits">Graphics and design by <ahref="mail:dfong@redhat.com">Diana Fong</a></p></div></div><divid="bottom"><pclass="p1"></p></div></div></body></html>
available except commiting to the base.</p></div></div><divclass="linkList2"><divclass="llinks2"><h3class="links2"><span>main menu</span></h3><ul><li><ahref="index.html">Home</a></li><li><ahref="news.html">Releases</a></li><li><ahref="intro.html">Introduction</a></li><li><ahref="architecture.html">libvirt architecture</a></li><li><ahref="downloads.html">Downloads</a></li><li><ahref="format.html">XML Format</a></li><li><ahref="python.html">Binding for Python</a></li><li><ahref="errors.html">Handling of errors</a></li><li><ahref="FAQ.html">FAQ</a></li><li><ahref="bugs.html">Reporting bugs and getting help</a></li><li><ahref="html/index.html">API Menu</a></li><li><ahref="examples/index.html">C code examples</a></li><li><ahref="ChangeLog.html">Recent Changes</a></li></ul></div><divclass="llinks2"><h3class="links2"><span>related links</span></h3><ul><li><ahref="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><ahref="https://bugzilla.redhat.com/bugzilla/buglist.cgi?product=Fedora+Core&component=libvirt&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=MODIFIED&short_desc_type=allwordssubstr&short_desc=&long_desc_type=allwordssubstr">Open bugs</a></li><li><ahref="http://virt-manager.et.redhat.com/">virt-manager</a></li><li><ahref="http://search.cpan.org/~danberr/Sys-Virt-0.1.0/">Perl bindings</a></li><li><ahref="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><formaction="search.php"enctype="application/x-www-form-urlencoded"method="get"><inputname="query"type="text"size="12"value="Search..."/><inputname="submit"type="submit"value="Go"/></form></li><li><ahref="http://xmlsoft.org/"><imgsrc="Libxml2-Logo-90x34.gif"alt="Made with Libxml2 Logo"/></a></li></ul><pclass="credits">Graphics and design by <ahref="mail:dfong@redhat.com">Diana Fong</a></p></div></div><divid="bottom"><pclass="p1"></p></div></div></body></html>
<htmlxmlns="http://www.w3.org/1999/xhtml"><head><metahttp-equiv="Content-Type"content="text/html; charset=ISO-8859-1"/><linkrel="stylesheet"type="text/css"href="libvirt.css"/><linkrel="SHORTCUT ICON"href="/32favicon.png"/><title>Handling of errors</title></head><body><divid="container"><divid="intro"><divid="adjustments"></div><divid="pageHeader"></div><divid="content2"><h1class="style1">Handling of errors</h1><p>The main goals of libvirt when it comes to error handling are:</p><ul><li>provide as much detail as possible</li>
<htmlxmlns="http://www.w3.org/1999/xhtml"><head><metahttp-equiv="Content-Type"content="text/html; charset=ISO-8859-1"/><linkrel="stylesheet"type="text/css"href="libvirt.css"/><linkrel="SHORTCUT ICON"href="/32favicon.png"/><title>Handling of errors</title></head><body><divid="container"><divid="intro"><divid="adjustments"></div><divid="pageHeader"></div><divid="content2"><h1class="style1">Handling of errors</h1><p>The main goals of libvirt when it comes to error handling are:</p><ul><li>provide as much detail as possible</li>
<li>provide the informations as soon as possible</li>
<li>provide the informations as soon as possible</li>
<li>dont force the library user into one style of error handling</li>
<li>dont force the library user into one style of error handling</li>
</ul><p>As result the library provide both synchronous, callback based
</ul><p>As result the library provide both synchronous, callback based and
andasynchronous error reporting. When an error happens in the library code
asynchronous error reporting. When an error happens in the library code the
theerror is logged, allowing to retrieve it later and if the user registered
error is logged, allowing to retrieve it later and if the user registered an
anerror callback it will be called synchronously. Once the call to libvirt
error callback it will be called synchronously. Once the call to libvirt ends
endsthe error can be detected by the return value and the full information
the error can be detected by the return value and the full information for
forthe last logged error can be retrieved.</p><p>To avoid as much as prossible troubles with a global variable in
the last logged error can be retrieved.</p><p>To avoid as much as prossible troubles with a global variable in a
amultithreaded environment, libvirt will associate when possible the errors
multithreaded environment, libvirt will associate when possible the errors to
tothe current connection they are related to, that way the error is stored in
the current connection they are related to, that way the error is stored in a
adynamic structure which can be made thread specific. Error callback can
dynamic structure which can be made thread specific. Error callback can be
beset specifically to a connection with</p><p>So error handling in the code is the following:</p><ol><li>if the error can be associated to a connection for example when
set specifically to a connection with</p><p>So error handling in the code is the following:</p><ol><li>if the error can be associated to a connection for example when failing
failingto look up a domain
to look up a domain
<ol><li>if there is a callback associated to the connection set with <ahref="html/libvirt-virterror.html#virConnSetErrorFunc">virConnSetErrorFunc</a>,call
<ol><li>if there is a callback associated to the connection set with <ahref="html/libvirt-virterror.html#virConnSetErrorFunc">virConnSetErrorFunc</a>,
it with the error informations</li>
call it with the error informations</li>
<li>otherwise if there is a global callback set with <ahref="html/libvirt-virterror.html#virSetErrorFunc">virSetErrorFunc</a>,call
<li>otherwise if there is a global callback set with <ahref="html/libvirt-virterror.html#virSetErrorFunc">virSetErrorFunc</a>,
with <ahref="html/libvirt-virterror.html#virConnSetErrorFunc">virConnSetErrorFunc</a>,
the value of the code value, take appropriate action, if needed letlibvirt
chech the value of the code value, take appropriate action, if needed let
print the error on stderr by calling <ahref="html/libvirt-virterror.html#virDefaultErrorFunc">virDefaultErrorFunc</a>.For
libvirt print the error on stderr by calling <ahref="html/libvirt-virterror.html#virDefaultErrorFunc">virDefaultErrorFunc</a>.
asynchronous error handing, set such a function doing nothing to avoidthe
For asynchronous error handing, set such a function doing nothing to avoid
error being reported on stderr, and call virConnGetLastError
the error being reported on stderr, and call virConnGetLastError or
orvirGetLastError when an API call returned an error value. It can be a
virGetLastError when an API call returned an error value. It can be a good
goodidea to use <ahref="html/libvirt-virterror.html#virResetLastError">virResetError</a>or <ahref="html/libvirt-virterror.html#virConnResetLastError">virConnResetLastError</a>once
idea to use <ahref="html/libvirt-virterror.html#virResetLastError">virResetError</a> or <ahref="html/libvirt-virterror.html#virConnResetLastError">virConnResetLastError</a>
an error has been processed fully.</p><p>At the python level, there only a global reporting callback function
once an error has been processed fully.</p><p>At the python level, there only a global reporting callback function at
atthis point, see the error.py example about it:</p><pre>def handler(ctxt, err):
this point, see the error.py example about it:</p><pre>def handler(ctxt, err):
global errno
global errno
#print "handler(%s, %s)" % (ctxt, err)
#print "handler(%s, %s)" % (ctxt, err)
errno = err
errno = err
libvirt.registerErrorHandler(handler, 'context') </pre><p>the second argument to the registerErrorHandler function is passed as
libvirt.registerErrorHandler(handler, 'context') </pre><p>the second argument to the registerErrorHandler function is passed as the
thefist argument of the callback like in the C version. The error is a
fist argument of the callback like in the C version. The error is a tuple
tuplecontaining the same field as a virError in C, but cast to Python.</p></div></div><divclass="linkList2"><divclass="llinks2"><h3class="links2"><span>main menu</span></h3><ul><li><ahref="index.html">Home</a></li><li><ahref="news.html">Releases</a></li><li><ahref="intro.html">Introduction</a></li><li><ahref="architecture.html">libvirt architecture</a></li><li><ahref="downloads.html">Downloads</a></li><li><ahref="format.html">XML Formats</a></li><li><ahref="python.html">Binding for Python</a></li><li><ahref="errors.html">Handling of errors</a></li><li><ahref="FAQ.html">FAQ</a></li><li><ahref="bugs.html">Reporting bugs and getting help</a></li><li><ahref="html/index.html">API Menu</a></li><li><ahref="examples/index.html">C code examples</a></li><li><ahref="ChangeLog.html">Recent Changes</a></li></ul></div><divclass="llinks2"><h3class="links2"><span>related links</span></h3><ul><li><ahref="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><ahref="https://bugzilla.redhat.com/bugzilla/buglist.cgi?product=Fedora+Core&component=libvirt&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=MODIFIED&short_desc_type=allwordssubstr&short_desc=&long_desc_type=allwordssubstr">Open bugs</a></li><li><ahref="http://virt-manager.et.redhat.com/">virt-manager</a></li><li><ahref="http://search.cpan.org/~danberr/Sys-Virt-0.1.0/">Perl bindings</a></li><li><ahref="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><formaction="search.php"enctype="application/x-www-form-urlencoded"method="get"><inputname="query"type="text"size="12"value="Search..."/><inputname="submit"type="submit"value="Go"/></form></li><li><ahref="http://xmlsoft.org/"><imgsrc="Libxml2-Logo-90x34.gif"alt="Made with Libxml2 Logo"/></a></li></ul><pclass="credits">Graphics and design by <ahref="mail:dfong@redhat.com">Diana Fong</a></p></div></div><divid="bottom"><pclass="p1"></p></div></div></body></html>
containing the same field as a virError in C, but cast to Python.</p></div></div><divclass="linkList2"><divclass="llinks2"><h3class="links2"><span>main menu</span></h3><ul><li><ahref="index.html">Home</a></li><li><ahref="news.html">Releases</a></li><li><ahref="intro.html">Introduction</a></li><li><ahref="architecture.html">libvirt architecture</a></li><li><ahref="downloads.html">Downloads</a></li><li><ahref="format.html">XML Format</a></li><li><ahref="python.html">Binding for Python</a></li><li><ahref="errors.html">Handling of errors</a></li><li><ahref="FAQ.html">FAQ</a></li><li><ahref="bugs.html">Reporting bugs and getting help</a></li><li><ahref="html/index.html">API Menu</a></li><li><ahref="examples/index.html">C code examples</a></li><li><ahref="ChangeLog.html">Recent Changes</a></li></ul></div><divclass="llinks2"><h3class="links2"><span>related links</span></h3><ul><li><ahref="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><ahref="https://bugzilla.redhat.com/bugzilla/buglist.cgi?product=Fedora+Core&component=libvirt&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=MODIFIED&short_desc_type=allwordssubstr&short_desc=&long_desc_type=allwordssubstr">Open bugs</a></li><li><ahref="http://virt-manager.et.redhat.com/">virt-manager</a></li><li><ahref="http://search.cpan.org/~danberr/Sys-Virt-0.1.0/">Perl bindings</a></li><li><ahref="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><formaction="search.php"enctype="application/x-www-form-urlencoded"method="get"><inputname="query"type="text"size="12"value="Search..."/><inputname="submit"type="submit"value="Go"/></form></li><li><ahref="http://xmlsoft.org/"><imgsrc="Libxml2-Logo-90x34.gif"alt="Made with Libxml2 Logo"/></a></li></ul><pclass="credits">Graphics and design by <ahref="mail:dfong@redhat.com">Diana Fong</a></p></div></div><divid="bottom"><pclass="p1"></p></div></div></body></html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml"><head><metahttp-equiv="Content-Type"content="text/html; charset=ISO-8859-1"/><linkrel="stylesheet"type="text/css"href="libvirt.css"/><linkrel="SHORTCUT ICON"href="/32favicon.png"/><title>XML Formats</title></head><body><divid="container"><divid="intro"><divid="adjustments"></div><divid="pageHeader"></div><divid="content2"><h1class="style1">XML Formats</h1><p>This section describes the XML formats used mostly to represent domains,
<htmlxmlns="http://www.w3.org/1999/xhtml"><head><metahttp-equiv="Content-Type"content="text/html; charset=ISO-8859-1"/><linkrel="stylesheet"type="text/css"href="libvirt.css"/><linkrel="SHORTCUT ICON"href="/32favicon.png"/><title>XML Format</title></head><body><divid="container"><divid="intro"><divid="adjustments"></div><divid="pageHeader"></div><divid="content2"><h1class="style1">XML Format</h1><p>This section describes the XML format used to represent domains, there are
there are variations on the format based on the kind of domains run and the
variations on the format based on the kind of domains run and the options
options used to launch them:</p><ul><li><ahref="#Normal1">Normal paravirtualized Xen domains</a></li>
used to launch them:</p><ul><li><ahref="#Normal1">Normal paravirtualized Xen domains</a></li>
</ul><p>The formats try as much as possible to follow the same structure and reuse
</ul><p>The formats try as much as possible to follow the same structure and reuse
elements and attributes where it makes sense.</p><h3id="Normal"><aname="Normal1"id="Normal1">Normal paravirtualized
elements and attributes where it makes sense.</p><h3id="Normal"><aname="Normal1"id="Normal1">Normal paravirtualized Xen
Xendomains</a>:</h3><p>The library use an XML format to describe domains, as input to <ahref="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux()</a>and
guests</a>:</h3><p>The library use an XML format to describe domains, as input to <ahref="html/libvirt-libvirt.html#virDomainCreateLinux">virDomainCreateLinux()</a>
as the output of <ahref="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc()</a>,the
and as the output of <ahref="html/libvirt-libvirt.html#virDomainGetXMLDesc">virDomainGetXMLDesc()</a>,
following is an example of the format as returned by the shell
the following is an example of the format as returned by the shell command
command<code>virsh xmldump fc4</code>, where fc4 was one of the running
<code>virsh xmldump fc4</code> , where fc4 was one of the running domains:</p><pre><domain type='xen' <spanstyle="color: #0071FF; background-color: #FFFFFF">id='18'</span>>
</domain></pre><p>There is a few things to notice specifically for HVM domains:</p><ul><li>the optional <code><features></code>block is used to
</domain></pre><p>There is a few things to notice specifically for HVM domains:</p><ul><li>the optional <code><features></code> block is used to enable
enablecertain guest CPU / system features. For HVM guests the
certain guest CPU / system features. For HVM guests the following
<li>the <code><os></code>block description is very different, firstit
<li>the <code><os></code> block description is very different, first
indicates that the type is 'hvm' for hardware virtualization, theninstead
it indicates that the type is 'hvm' for hardware virtualization, then
of a kernel, boot and command line arguments, it points to an osboot
instead of a kernel, boot and command line arguments, it points to an os
loader which will extract the boot informations from the boot
boot loader which will extract the boot informations from the boot device
devicespecified in a separate boot element. The <code>dev</code>attribute
specified in a separate boot element. The <code>dev</code> attribute on
onthe <code>boot</code>tag can be one of:
the <code>boot</code>tag can be one of:
<ul><li><code>fd</code>- boot from first floppy device</li>
<ul><li><code>fd</code>- boot from first floppy device</li>
<li><code>hd</code>- boot from first harddisk device</li>
<li><code>hd</code>- boot from first harddisk device</li>
<li><code>cdrom</code>- boot from first cdrom device</li>
<li><code>cdrom</code>- boot from first cdrom device</li>
</ul></li>
</ul></li>
<li>the <code><devices></code>section includes an emulator
<li>the <code><devices></code> section includes an emulator entry
entrypointing to an additional program in charge of emulating the
pointing to an additional program in charge of emulating the devices</li>
devices</li>
<li>the disk entry indicates in the dev target section that the emulation
<li>the disk entry indicates in the dev target section that the
for the drive is the first IDE disk device hda. The list of device names
emulationfor the drive is the first IDE disk device hda. The list of
supported is dependant on the Hypervisor, but for Xen it can be any IDE
device namessupported is dependant on the Hypervisor, but for Xen it can
device <code>hda</code>-<code>hdd</code>, or a floppy device
be any IDEdevice <code>hda</code>-<code>hdd</code>, or a floppy
<code>fda</code>, <code>fdb</code>. The <code><disk></code> element
device<code>fda</code>, <code>fdb</code>. The
also supports a 'device' attribute to indicate what kinda of hardware to
<code><disk></code>elementalso supports a 'device' attribute to
emulate. The following values are supported:
indicate what kinda of hardware toemulate. The following values are
<ul><li><code>floppy</code> - a floppy disk controller</li>
supported:
<li><code>disk</code> - a generic hard drive (the default it
<ul><li><code>floppy</code>- a floppy disk controller</li>
omitted)</li>
<li><code>disk</code>- a generic hard drive (the default itomitted)</li>
<li><code>cdrom</code> - a CDROM device</li>
<li><code>cdrom</code>- a CDROM device</li>
</ul>
</ul>
For Xen 3.0.2 and earlier a CDROM device can only be emulated on
For Xen 3.0.2 and earlier a CDROM device can only be emulated on the
the<code>hdc</code>channel, while for 3.0.3 and later, it can be
<code>hdc</code> channel, while for 3.0.3 and later, it can be emulated
emulatedon any IDE channel.</li>
on any IDE channel.</li>
<li>the <code><devices></code>section also include at least oneentry
<li>the <code><devices></code> section also include at least one
for the graphic device used to render the os. Currently there isjust 2
entry for the graphic device used to render the os. Currently there is
types possible 'vnc' or 'sdl'. If the type is 'vnc', then anadditional
just 2 types possible 'vnc' or 'sdl'. If the type is 'vnc', then an
<code>port</code>attribute will be present indicating the TCPport on
additional <code>port</code> attribute will be present indicating the TCP
which the VNC server is accepting client connections.</li>
port on which the VNC server is accepting client connections.</li>
</ul><p>It is likely that the HVM description gets additional optional elementsand
</ul><p>It is likely that the HVM description gets additional optional elements
attributes as the support for fully virtualized domain expands,especially for
and attributes as the support for fully virtualized domain expands,
the variety of devices emulated and the graphic supportoptions offered.</p><h3><aname="KVM1"id="KVM1">KVM domain (added in 0.2.0)</a></h3><p>Support for the <ahref="http://kvm.qumranet.com/">KVM virtualization</a>
especially for the variety of devices emulated and the graphic support
options offered.</p><h3><aname="KVM1"id="KVM1">KVM domain (added in 0.2.0)</a></h3><p>Support for the <ahref="http://kvm.qumranet.com/">KVM virtualization</a>
is provided in recent Linux kernels (2.6.20 and onward). This requires
is provided in recent Linux kernels (2.6.20 and onward). This requires
specific hardware with acceleration support and the availability of the
specific hardware with acceleration support and the availability of the
special version of the <ahref="http://fabrice.bellard.free.fr/qemu/">QEmu</a> binary. Since this
special version of the <ahref="http://fabrice.bellard.free.fr/qemu/">QEmu</a> binary. Since this
...
@@ -415,4 +412,4 @@ Xen support, you will see the os_type of xen to indicate a paravirtual
...
@@ -415,4 +412,4 @@ Xen support, you will see the os_type of xen to indicate a paravirtual
kernel, then architecture informations and potential features.</p><p>The third block (in green) gives similar informations but when running a
kernel, then architecture informations and potential features.</p><p>The third block (in green) gives similar informations but when running a
32 bit OS fully virtualized with Xen using the hvm support.</p><p>This section is likely to be updated and augmented in the future, see <ahref="https://www.redhat.com/archives/libvir-list/2007-March/msg00215.html">the
32 bit OS fully virtualized with Xen using the hvm support.</p><p>This section is likely to be updated and augmented in the future, see <ahref="https://www.redhat.com/archives/libvir-list/2007-March/msg00215.html">the
discussion</a> which led to the capabilities format in the mailing-list
discussion</a> which led to the capabilities format in the mailing-list
archives.</p></div></div><divclass="linkList2"><divclass="llinks2"><h3class="links2"><span>main menu</span></h3><ul><li><ahref="index.html">Home</a></li><li><ahref="news.html">Releases</a></li><li><ahref="intro.html">Introduction</a></li><li><ahref="architecture.html">libvirt architecture</a></li><li><ahref="downloads.html">Downloads</a></li><li><ahref="format.html">XML Formats</a></li><li><ahref="python.html">Binding for Python</a></li><li><ahref="errors.html">Handling of errors</a></li><li><ahref="FAQ.html">FAQ</a></li><li><ahref="bugs.html">Reporting bugs and getting help</a></li><li><ahref="html/index.html">API Menu</a></li><li><ahref="examples/index.html">C code examples</a></li><li><ahref="ChangeLog.html">Recent Changes</a></li></ul></div><divclass="llinks2"><h3class="links2"><span>related links</span></h3><ul><li><ahref="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><ahref="https://bugzilla.redhat.com/bugzilla/buglist.cgi?product=Fedora+Core&component=libvirt&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=MODIFIED&short_desc_type=allwordssubstr&short_desc=&long_desc_type=allwordssubstr">Open bugs</a></li><li><ahref="http://virt-manager.et.redhat.com/">virt-manager</a></li><li><ahref="http://search.cpan.org/~danberr/Sys-Virt-0.1.0/">Perl bindings</a></li><li><ahref="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><formaction="search.php"enctype="application/x-www-form-urlencoded"method="get"><inputname="query"type="text"size="12"value="Search..."/><inputname="submit"type="submit"value="Go"/></form></li><li><ahref="http://xmlsoft.org/"><imgsrc="Libxml2-Logo-90x34.gif"alt="Made with Libxml2 Logo"/></a></li></ul><pclass="credits">Graphics and design by <ahref="mail:dfong@redhat.com">Diana Fong</a></p></div></div><divid="bottom"><pclass="p1"></p></div></div></body></html>
archives.</p></div></div><divclass="linkList2"><divclass="llinks2"><h3class="links2"><span>main menu</span></h3><ul><li><ahref="index.html">Home</a></li><li><ahref="news.html">Releases</a></li><li><ahref="intro.html">Introduction</a></li><li><ahref="architecture.html">libvirt architecture</a></li><li><ahref="downloads.html">Downloads</a></li><li><ahref="format.html">XML Format</a></li><li><ahref="python.html">Binding for Python</a></li><li><ahref="errors.html">Handling of errors</a></li><li><ahref="FAQ.html">FAQ</a></li><li><ahref="bugs.html">Reporting bugs and getting help</a></li><li><ahref="html/index.html">API Menu</a></li><li><ahref="examples/index.html">C code examples</a></li><li><ahref="ChangeLog.html">Recent Changes</a></li></ul></div><divclass="llinks2"><h3class="links2"><span>related links</span></h3><ul><li><ahref="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><ahref="https://bugzilla.redhat.com/bugzilla/buglist.cgi?product=Fedora+Core&component=libvirt&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=MODIFIED&short_desc_type=allwordssubstr&short_desc=&long_desc_type=allwordssubstr">Open bugs</a></li><li><ahref="http://virt-manager.et.redhat.com/">virt-manager</a></li><li><ahref="http://search.cpan.org/~danberr/Sys-Virt-0.1.0/">Perl bindings</a></li><li><ahref="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><formaction="search.php"enctype="application/x-www-form-urlencoded"method="get"><inputname="query"type="text"size="12"value="Search..."/><inputname="submit"type="submit"value="Go"/></form></li><li><ahref="http://xmlsoft.org/"><imgsrc="Libxml2-Logo-90x34.gif"alt="Made with Libxml2 Logo"/></a></li></ul><pclass="credits">Graphics and design by <ahref="mail:dfong@redhat.com">Diana Fong</a></p></div></div><divid="bottom"><pclass="p1"></p></div></div></body></html>
<h3>what is <spanclass="style1">libvirt?</span></h3>
<h3>what is <spanclass="style1">libvirt?</span></h3>
<p>Libvirt is a C toolkit to interact with the virtualization capabilitiesof
<p>Libvirt is a C toolkit to interact with the virtualization capabilities
recent versions of Linux (and other OSes). It is free software availableunder
of recent versions of Linux (and other OSes). It is free software available
the <ahref="http://www.opensource.org/licenses/lgpl-license.html">GNULesser
under the <ahref="http://www.opensource.org/licenses/lgpl-license.html">GNU
General Public License</a>. Virtualization of the Linux OperatingSystem means
Lesser General Public License</a>. Virtualization of the Linux Operating
the ability to run multiple instances of Operating Systemsconcurently on a
System means the ability to run multiple instances of Operating Systems
single hardware system where the basic resources are drivenby a Linux
concurently on a single hardware system where the basic resources are driven
instance. The library aim at providing long term stable C APIinitially for
by a Linux instance. The library aim at providing long term stable C API
the <ahref="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xenparavirtualization</a>but
initially for the <ahref="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen
should be able to integrate other virtualizationmechanisms if needed.</p>
paravirtualization</a> but should be able to integrate other
virtualization mechanisms, it currently also support <ahref="http://fabrice.bellard.free.fr/qemu/">QEmu</a> and <ahref="http://kvm.qumranet.com/">KVM</a>.</p>
</div>
</div>
</div>
</div>
<divclass="linkList">
<divclass="linkList">
...
@@ -46,7 +47,7 @@ should be able to integrate other virtualizationmechanisms if needed.</p>
...
@@ -46,7 +47,7 @@ should be able to integrate other virtualizationmechanisms if needed.</p>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml"><head><metahttp-equiv="Content-Type"content="text/html; charset=ISO-8859-1"/><linkrel="stylesheet"type="text/css"href="libvirt.css"/><linkrel="SHORTCUT ICON"href="/32favicon.png"/><title>Introduction</title></head><body><divid="container"><divid="intro"><divid="adjustments"></div><divid="pageHeader"></div><divid="content2"><h1class="style1">Introduction</h1><p>Libvirt is a C toolkit to interact with the virtualization capabilities
<htmlxmlns="http://www.w3.org/1999/xhtml"><head><metahttp-equiv="Content-Type"content="text/html; charset=ISO-8859-1"/><linkrel="stylesheet"type="text/css"href="libvirt.css"/><linkrel="SHORTCUT ICON"href="/32favicon.png"/><title>Introduction</title></head><body><divid="container"><divid="intro"><divid="adjustments"></div><divid="pageHeader"></div><divid="content2"><h1class="style1">Introduction</h1><p>Libvirt is a C toolkit to interact with the virtualization capabilities of
ofrecent versions of Linux (and other OSes), but libvirt won't try to
recent versions of Linux (and other OSes), but libvirt won't try to provide
provideall possible interfaces for interacting with the virtualization
all possible interfaces for interacting with the virtualization features.</p><p>To avoid ambiguity about the terms used here here are the definitions for
features.</p><p>To avoid ambiguity about the terms used here here are the definitions
some of the specific concepts used in libvirt documentation:</p><ul><li>a <strong>node</strong> is a single physical machine</li>
forsome of the specific concepts used in libvirt documentation:</p><ul><li>a <strong>node</strong>is a single physical machine</li>
<li>an <strong>hypervisor</strong> is a layer of software allowing to
<li>an <strong>hypervisor</strong>is a layer of software allowing
virtualize a node in a set of virtual machines with possibly different
tovirtualize a node in a set of virtual machines with possibly
configurations than the node itself</li>
differentconfigurations than the node itself</li>
<li>a <strong>domain</strong> is an instance of an operating system running
<li>a <strong>domain</strong>is an instance of an operating system
on a virtualized machine provided by the hypervisor</li>
runningon a virtualized machine provided by the hypervisor</li>
</ul><pstyle="text-align: center"><imgalt="Hypervisor and domains running on a node"src="node.gif"/></p><p>Now we can define the goal of libvirt: to provide the lowest possible
</ul><pstyle="text-align: center"><imgalt="Hypervisor and domains running on a node"src="node.gif"/></p><p>Now we can define the goal of libvirt: to provide the lowest
generic and stable layer to manage domains on a node.</p><p>This implies the following:</p><ul><li>the API should not be targetted to a single virtualization environment
possiblegeneric and stable layer to manage domains on a node.</p><p>This implies the following:</p><ul><li>the API is not targetted to a single virtualization environment,
though Xen is the current default, which also means that some very
itcurrently supports Xen and QEmu/KVM. This also implies that some
specific capabilities which are not generic enough may not be provided as
veryspecific capabilities which are not generic enough may not be
libvirt APIs</li>
provided aslibvirt APIs</li>
<li>the API should allow to do efficiently and cleanly all the operations
<li>the API should allow to do efficiently and cleanly all the
needed to manage domains on a node</li>
operationsneeded to manage domains on a node</li>
<li>the API will not try to provide hight level multi-nodes management
<li>the API will not try to provide hight level multi-nodes
features like load balancing, though they could be implemented on top of
managementfeatures like load balancing, though they could be implemented
libvirt</li>
on top oflibvirt</li>
<li>stability of the API is a big concern, libvirt should isolate
<li>stability of the API is a big concern, libvirt should
applications from the frequent changes expected at the lower level of the
isolateapplications from the frequent changes expected at the lower level
virtualization framework</li>
of thevirtualization framework</li>
</ul><p>So libvirt should be a building block for higher level management tools
</ul><p>So libvirt should be a building block for higher level management toolsand
and for applications focusing on virtualization of a single node (the only
for applications focusing on virtualization of a single node (the
exception being domain migration between node capabilities which may need to
onlyexception being domain migration between node capabilities which may need
be added at the libvirt level). Where possible libvirt should be extendable
tobe added at the libvirt level). Where possible libvirt should be
to be able to provide the same API for remote nodes, however this is not the
extendableto be able to provide the same API for remote nodes, however this
case at the moment, the code currently handle only local node accesses
is not thecase at the moment, the code currently handle only local node
(extension for remote access support is being worked on, see <ahref="bugs.html">the mailing list</a> discussions about it).</p></div></div><divclass="linkList2"><divclass="llinks2"><h3class="links2"><span>main menu</span></h3><ul><li><ahref="index.html">Home</a></li><li><ahref="news.html">Releases</a></li><li><ahref="intro.html">Introduction</a></li><li><ahref="architecture.html">libvirt architecture</a></li><li><ahref="downloads.html">Downloads</a></li><li><ahref="format.html">XML Format</a></li><li><ahref="python.html">Binding for Python</a></li><li><ahref="errors.html">Handling of errors</a></li><li><ahref="FAQ.html">FAQ</a></li><li><ahref="bugs.html">Reporting bugs and getting help</a></li><li><ahref="html/index.html">API Menu</a></li><li><ahref="examples/index.html">C code examples</a></li><li><ahref="ChangeLog.html">Recent Changes</a></li></ul></div><divclass="llinks2"><h3class="links2"><span>related links</span></h3><ul><li><ahref="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><ahref="https://bugzilla.redhat.com/bugzilla/buglist.cgi?product=Fedora+Core&component=libvirt&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=MODIFIED&short_desc_type=allwordssubstr&short_desc=&long_desc_type=allwordssubstr">Open bugs</a></li><li><ahref="http://virt-manager.et.redhat.com/">virt-manager</a></li><li><ahref="http://search.cpan.org/~danberr/Sys-Virt-0.1.0/">Perl bindings</a></li><li><ahref="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><formaction="search.php"enctype="application/x-www-form-urlencoded"method="get"><inputname="query"type="text"size="12"value="Search..."/><inputname="submit"type="submit"value="Go"/></form></li><li><ahref="http://xmlsoft.org/"><imgsrc="Libxml2-Logo-90x34.gif"alt="Made with Libxml2 Logo"/></a></li></ul><pclass="credits">Graphics and design by <ahref="mail:dfong@redhat.com">Diana Fong</a></p></div></div><divid="bottom"><pclass="p1"></p></div></div></body></html>
accesses(extension for remote access support is being worked on, see<ahref="bugs.html">the mailing list</a>discussions about it).</p></div></div><divclass="linkList2"><divclass="llinks2"><h3class="links2"><span>main menu</span></h3><ul><li><ahref="index.html">Home</a></li><li><ahref="news.html">Releases</a></li><li><ahref="intro.html">Introduction</a></li><li><ahref="architecture.html">libvirt architecture</a></li><li><ahref="downloads.html">Downloads</a></li><li><ahref="format.html">XML Formats</a></li><li><ahref="python.html">Binding for Python</a></li><li><ahref="errors.html">Handling of errors</a></li><li><ahref="FAQ.html">FAQ</a></li><li><ahref="bugs.html">Reporting bugs and getting help</a></li><li><ahref="html/index.html">API Menu</a></li><li><ahref="examples/index.html">C code examples</a></li><li><ahref="ChangeLog.html">Recent Changes</a></li></ul></div><divclass="llinks2"><h3class="links2"><span>related links</span></h3><ul><li><ahref="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><ahref="https://bugzilla.redhat.com/bugzilla/buglist.cgi?product=Fedora+Core&component=libvirt&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=MODIFIED&short_desc_type=allwordssubstr&short_desc=&long_desc_type=allwordssubstr">Open bugs</a></li><li><ahref="http://virt-manager.et.redhat.com/">virt-manager</a></li><li><ahref="http://search.cpan.org/~danberr/Sys-Virt-0.1.0/">Perl bindings</a></li><li><ahref="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><formaction="search.php"enctype="application/x-www-form-urlencoded"method="get"><inputname="query"type="text"size="12"value="Search..."/><inputname="submit"type="submit"value="Go"/></form></li><li><ahref="http://xmlsoft.org/"><imgsrc="Libxml2-Logo-90x34.gif"alt="Made with Libxml2 Logo"/></a></li></ul><pclass="credits">Graphics and design by <ahref="mail:dfong@redhat.com">Diana Fong</a></p></div></div><divid="bottom"><pclass="p1"></p></div></div></body></html>
config directory (Daniel Berrange and Mark McLoughlin), memory leak in qemud (Mark), various fixes on network support (Mark), avoid Xen domain zombies on device hotplug errors (Daniel Berrange), various fixes on qemud (Mark),
config directory (Daniel Berrange and Mark McLoughlin), memory leak
<li>bug fixes: VCPU info breakages on xen 3.0.3, xenDaemonListDomains
<li>bug fixes: VCPU info breakages on xen 3.0.3, xenDaemonListDomains buffer overflow (Daniel Berrange), reference count bug when creating Xen domains (Daniel Berrange).</li>
buffer overflow (Daniel Berrange), reference count bug when creating Xen
<li>improvements: support graphic framebuffer for Xen paravirt (Daniel Berrange), VNC listen IP range support (Daniel Berrange), support for default Xen config files and inactive domains of 3.0.4 (Daniel Berrange).</li>
domains (Daniel Berrange).</li>
<li>improvements: support graphic framebuffer for Xen paravirt (Daniel
Berrange), VNC listen IP range support (Daniel Berrange), support for
default Xen config files and inactive domains of 3.0.4 (Daniel
Berrange).</li>
</ul>
</ul>
<h3>0.1.9: Nov 29 2006</h3>
<h3>0.1.9: Nov 29 2006</h3>
<ul>
<ul>
<li>python bindings: release interpeter lock when calling C (Daniel
<li>python bindings: release interpeter lock when calling C (Daniel Berrange)</li>
Berrange)</li>
<li>don't raise HTTP error when looking informations for a domain</li>
<li>don't raise HTTP error when looking informations for a domain</li>
<li>some refactoring to use the driver for all entry points</li>
<li>some refactoring to use the driver for all entry points</li>
<li>better error reporting (Daniel Berrange)</li>
<li>better error reporting (Daniel Berrange)</li>
...
@@ -97,105 +105,90 @@ progresses.</p>
...
@@ -97,105 +105,90 @@ progresses.</p>
<li>provide XML parsing errors</li>
<li>provide XML parsing errors</li>
<li>extension of the test framework (Daniel Berrange)</li>
<li>extension of the test framework (Daniel Berrange)</li>
<li>fix the reconnect regression test</li>
<li>fix the reconnect regression test</li>
<li>python bindings: Domain instances now link to the Connect to avoid
<li>python bindings: Domain instances now link to the Connect to avoid garbage collection and disconnect</li>
garbage collection and disconnect</li>
<li>separate the notion of maximum memory and current use at the XML level</li>
<li>separate the notion of maximum memory and current use at the XML
level</li>
<li>Fix a memory leak (Daniel Berrange)</li>
<li>Fix a memory leak (Daniel Berrange)</li>
<li>add support for shareable drives</li>
<li>add support for shareable drives</li>
<li>add support for non-bridge style networking configs for guests(Daniel
<li>add support for non-bridge style networking configs for guests(Daniel Berrange)</li>
Berrange)</li>
<li>python bindings: fix unsigned long marshalling (Daniel Berrange)</li>
<li>python bindings: fix unsigned long marshalling (Daniel Berrange)</li>
<li>new config APIs virConfNew() and virConfSetValue() to build configs
<li>new config APIs virConfNew() and virConfSetValue() to build configs from scratch</li>
from scratch</li>
<li>hot plug device support based on Michel Ponceau patch</li>
<li>hot plug device support based on Michel Ponceau patch</li>
<li>added support for inactive domains, new APIs, various associated
<li>added support for inactive domains, new APIs, various associated cleanup (Daniel Berrange)</li>
cleanup (Daniel Berrange)</li>
<li>special device model for HVM guests (Daniel Berrange)</li>
<li>special device model for HVM guests (Daniel Berrange)</li>
<li>add API to dump core of domains (but requires a patched xend)</li>
<li>add API to dump core of domains (but requires a patched xend)</li>
<li>pygrub bootloader informations take over <os> informations</li>
<li>pygrub bootloader informations take over <os> informations</li>
<li>updated the localization strings</li>
<li>updated the localization strings</li>
</ul>
</ul>
<h3>0.1.8: Oct 16 2006</h3>
<h3>0.1.8: Oct 16 2006</h3>
<ul>
<ul>
<li>Bug for system with page size != 4k</li>
<li> Bug for system with page size != 4k</li>
<li>vcpu number initialization (Philippe Berthault)</li>
<li> vcpu number initialization (Philippe Berthault)</li>
<li>don't label crashed domains as shut off (Peter Vetere)</li>
<li> don't label crashed domains as shut off (Peter Vetere)</li>
<li>fix virsh man page (Noriko Mizumoto)</li>
<li> fix virsh man page (Noriko Mizumoto)</li>
<li>blktapdd support for alternate drivers like blktap (Daniel
<li> blktapdd support for alternate drivers like blktap (Daniel Berrange)</li>
Berrange)</li>
<li> memory leak fixes (xend interface and XML parsing) (Daniel Berrange)</li>
<li>memory leak fixes (xend interface and XML parsing) (Daniel
page and follow the instructions. Patches with explanations and provided as
Web</a>page and follow the instructions. Patches with explanations and
attachments are really appreciated and will be discussed on the mailing list.
provided asattachments are really appreciated and will be discussed on the
If possible generate the patches by using cvs diff -u in a CVS checkout.</p>
mailing list.If possible generate the patches by using cvs diff -u in a CVS
checkout.</p>
<p>We use Red Hat Bugzilla to track bugs to libvirt. If you want to report a
bug, please check <ahref="http://bugzilla.redhat.com/bugzilla/buglist.cgi?component=libvirt&component=libvirt-devel&component=libvirt-python&bug_status=ASSIGNED&bug_status=INVESTIGATE&bug_status=NEW&bug_status=REOPENED&bug_status=VERIFIED&short_desc_type=allwordssubstr&short_desc=&long_desc_type=allwordssubstr&long_desc=&Search=Search">the existing open bugs</a>, then if yours isn't a duplicate of
<p>We use Red Hat Bugzilla to track bugs to libvirt. If you want to report
an existing bug, <ahref="http://bugzilla.redhat.com/bugzilla/enter_bug.cgi?product=Fedora%20Core&component=libvirt">log a new bug</a>. It may be good
abug, please check <a
to post to the <ahref="mailto:libvir-list@redhat.com">mailing-list</a>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml"><head><metahttp-equiv="Content-Type"content="text/html; charset=ISO-8859-1"/><linkrel="stylesheet"type="text/css"href="libvirt.css"/><linkrel="SHORTCUT ICON"href="/32favicon.png"/><title>Releases</title></head><body><divid="container"><divid="intro"><divid="adjustments"></div><divid="pageHeader"></div><divid="content2"><h1class="style1">Releases</h1><p>Here is the list of official releases, however since it is early on in
<htmlxmlns="http://www.w3.org/1999/xhtml"><head><metahttp-equiv="Content-Type"content="text/html; charset=ISO-8859-1"/><linkrel="stylesheet"type="text/css"href="libvirt.css"/><linkrel="SHORTCUT ICON"href="/32favicon.png"/><title>Releases</title></head><body><divid="container"><divid="intro"><divid="adjustments"></div><divid="pageHeader"></div><divid="content2"><h1class="style1">Releases</h1><p>Here is the list of official releases, however since it is early on in the
thedevelopment of libvirt, it is preferable when possible to just use the <ahref="downloads.html">CVS version or snapshot</a>, contact the mailing
development of libvirt, it is preferable when possible to just use the <ahref="downloads.html">CVS version or snapshot</a>, contact the mailing list
listand check the <ahref="ChangeLog.html">ChangeLog</a>to gauge
and check the <ahref="ChangeLog.html">ChangeLog</a> to gauge progresses.</p><h3>0.2.1: Mar 16 2007</h3><ul><li>Various internal cleanups (Richard Jones,Daniel Berrange,Mark McLoughlin)</li>
progresses.</p><h3>0.2.1: Mar 16 2007</h3><ul><li>Various internal cleanups (Richard Jones,Daniel Berrange,Mark McLoughlin)</li>
config directory (Daniel Berrange and Mark McLoughlin), memory leak in qemud (Mark), various fixes on network support (Mark), avoid Xen domain zombies on device hotplug errors (Daniel Berrange), various fixes on qemud (Mark),
config directory (Daniel Berrange and Mark McLoughlin), memory leak
</ul><h3>0.1.11: Jan 22 2007</h3><ul><li>Finish XML <-> XM config files support</li>
</ul><h3>0.1.11: Jan 22 2007</h3><ul><li>Finish XML <-> XM config files support</li>
<li>Remove memory leak when freeing virConf objects</li>
<li>Remove memory leak when freeing virConf objects</li>
<li>Finishing inactive domain support (Daniel Berrange)</li>
<li>Finishing inactive domain support (Daniel Berrange)</li>
<li>Added a Relax-NG schemas to check XML instances</li>
<li>Added a Relax-NG schemas to check XML instances</li>
</ul><h3>0.1.10: Dec 20 2006</h3><ul><li>more localizations</li>
</ul><h3>0.1.10: Dec 20 2006</h3><ul><li>more localizations</li>
<li>bug fixes: VCPU info breakages on xen 3.0.3, xenDaemonListDomains
<li>bug fixes: VCPU info breakages on xen 3.0.3, xenDaemonListDomains buffer overflow (Daniel Berrange), reference count bug when creating Xen domains (Daniel Berrange).</li>
buffer overflow (Daniel Berrange), reference count bug when creating Xen
<li>improvements: support graphic framebuffer for Xen paravirt (Daniel Berrange), VNC listen IP range support (Daniel Berrange), support for default Xen config files and inactive domains of 3.0.4 (Daniel Berrange).</li>
domains (Daniel Berrange).</li>
</ul><h3>0.1.9: Nov 29 2006</h3><ul><li>python bindings: release interpeter lock when calling C (Daniel Berrange)</li>
<li>improvements: support graphic framebuffer for Xen paravirt (Daniel
Berrange), VNC listen IP range support (Daniel Berrange), support for
default Xen config files and inactive domains of 3.0.4 (Daniel
Berrange).</li>
</ul><h3>0.1.9: Nov 29 2006</h3><ul><li>python bindings: release interpeter lock when calling C (Daniel
Berrange)</li>
<li>don't raise HTTP error when looking informations for a domain</li>
<li>don't raise HTTP error when looking informations for a domain</li>
<li>some refactoring to use the driver for all entry points</li>
<li>some refactoring to use the driver for all entry points</li>
</ul><h3>0.0.1: Dec 19 2005</h3><ul><li>First release</li>
</ul><h3>0.0.1: Dec 19 2005</h3><ul><li>First release</li>
<li>Basic management of existing Xen domains</li>
<li>Basic management of existing Xen domains</li>
<li>Minimal autogenerated Python bindings</li>
<li>Minimal autogenerated Python bindings</li>
</ul></div></div><divclass="linkList2"><divclass="llinks2"><h3class="links2"><span>main menu</span></h3><ul><li><ahref="index.html">Home</a></li><li><ahref="news.html">Releases</a></li><li><ahref="intro.html">Introduction</a></li><li><ahref="architecture.html">libvirt architecture</a></li><li><ahref="downloads.html">Downloads</a></li><li><ahref="format.html">XML Formats</a></li><li><ahref="python.html">Binding for Python</a></li><li><ahref="errors.html">Handling of errors</a></li><li><ahref="FAQ.html">FAQ</a></li><li><ahref="bugs.html">Reporting bugs and getting help</a></li><li><ahref="html/index.html">API Menu</a></li><li><ahref="examples/index.html">C code examples</a></li><li><ahref="ChangeLog.html">Recent Changes</a></li></ul></div><divclass="llinks2"><h3class="links2"><span>related links</span></h3><ul><li><ahref="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><ahref="https://bugzilla.redhat.com/bugzilla/buglist.cgi?product=Fedora+Core&component=libvirt&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=MODIFIED&short_desc_type=allwordssubstr&short_desc=&long_desc_type=allwordssubstr">Open bugs</a></li><li><ahref="http://virt-manager.et.redhat.com/">virt-manager</a></li><li><ahref="http://search.cpan.org/~danberr/Sys-Virt-0.1.0/">Perl bindings</a></li><li><ahref="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><formaction="search.php"enctype="application/x-www-form-urlencoded"method="get"><inputname="query"type="text"size="12"value="Search..."/><inputname="submit"type="submit"value="Go"/></form></li><li><ahref="http://xmlsoft.org/"><imgsrc="Libxml2-Logo-90x34.gif"alt="Made with Libxml2 Logo"/></a></li></ul><pclass="credits">Graphics and design by <ahref="mail:dfong@redhat.com">Diana Fong</a></p></div></div><divid="bottom"><pclass="p1"></p></div></div></body></html>
</ul></div></div><divclass="linkList2"><divclass="llinks2"><h3class="links2"><span>main menu</span></h3><ul><li><ahref="index.html">Home</a></li><li><ahref="news.html">Releases</a></li><li><ahref="intro.html">Introduction</a></li><li><ahref="architecture.html">libvirt architecture</a></li><li><ahref="downloads.html">Downloads</a></li><li><ahref="format.html">XML Format</a></li><li><ahref="python.html">Binding for Python</a></li><li><ahref="errors.html">Handling of errors</a></li><li><ahref="FAQ.html">FAQ</a></li><li><ahref="bugs.html">Reporting bugs and getting help</a></li><li><ahref="html/index.html">API Menu</a></li><li><ahref="examples/index.html">C code examples</a></li><li><ahref="ChangeLog.html">Recent Changes</a></li></ul></div><divclass="llinks2"><h3class="links2"><span>related links</span></h3><ul><li><ahref="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><ahref="https://bugzilla.redhat.com/bugzilla/buglist.cgi?product=Fedora+Core&component=libvirt&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=MODIFIED&short_desc_type=allwordssubstr&short_desc=&long_desc_type=allwordssubstr">Open bugs</a></li><li><ahref="http://virt-manager.et.redhat.com/">virt-manager</a></li><li><ahref="http://search.cpan.org/~danberr/Sys-Virt-0.1.0/">Perl bindings</a></li><li><ahref="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><formaction="search.php"enctype="application/x-www-form-urlencoded"method="get"><inputname="query"type="text"size="12"value="Search..."/><inputname="submit"type="submit"value="Go"/></form></li><li><ahref="http://xmlsoft.org/"><imgsrc="Libxml2-Logo-90x34.gif"alt="Made with Libxml2 Logo"/></a></li></ul><pclass="credits">Graphics and design by <ahref="mail:dfong@redhat.com">Diana Fong</a></p></div></div><divid="bottom"><pclass="p1"></p></div></div></body></html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<htmlxmlns="http://www.w3.org/1999/xhtml"><head><metahttp-equiv="Content-Type"content="text/html; charset=ISO-8859-1"/><linkrel="stylesheet"type="text/css"href="libvirt.css"/><linkrel="SHORTCUT ICON"href="/32favicon.png"/><title>Binding for Python</title></head><body><divid="container"><divid="intro"><divid="adjustments"></div><divid="pageHeader"></div><divid="content2"><h1class="style1">Binding for Python</h1><p>Libvirt comes with direct support for the Python language (just make
<htmlxmlns="http://www.w3.org/1999/xhtml"><head><metahttp-equiv="Content-Type"content="text/html; charset=ISO-8859-1"/><linkrel="stylesheet"type="text/css"href="libvirt.css"/><linkrel="SHORTCUT ICON"href="/32favicon.png"/><title>Binding for Python</title></head><body><divid="container"><divid="intro"><divid="adjustments"></div><divid="pageHeader"></div><divid="content2"><h1class="style1">Binding for Python</h1><p>Libvirt comes with direct support for the Python language (just make sure
sureyou installed the libvirt-python package if not compiling from sources).
you installed the libvirt-python package if not compiling from sources). Also
Alsonote that Daniel Berrange provides <ahref="http://search.cpan.org/~danberr/Sys-Virt-0.1.0/">bindings for
note that Daniel Berrange provides <ahref="http://search.cpan.org/~danberr/Sys-Virt-0.1.0/">bindings for Perl</a>
Perl</a>too.</p><p>The Python binding should be complete and are mostly
too.</p><p>The Python binding should be complete and are mostly automatically
automaticallygenerated from the formal description of the API in xml. The
generated from the formal description of the API in xml. The bindings are
bindings arearticulated around 2 classes <code>virConnect</code>and virDomain
articulated around 2 classes <code>virConnect</code> and virDomain mapping to
mapping tothe C types. Functions in the C API taking either type as argument
the C types. Functions in the C API taking either type as argument then
thenbecomes methods for the classes, their name is just stripped from
becomes methods for the classes, their name is just stripped from the
thevirConnect or virDomain(Get) prefix and the first letter gets converted
virConnect or virDomain(Get) prefix and the first letter gets converted to
tolower case, for example the C functions:</p><p><code>int <ahref="html/libvirt-libvirt.html#virConnectNumOfDomains">virConnectNumOfDomains</a>(virConnectPtr
lower case, for example the C functions:</p><p><code>int <ahref="html/libvirt-libvirt.html#virConnectNumOfDomains">virConnectNumOfDomains</a>
domain, unsigned long memory);</code></p><p>become</p><p><code>virConn::numOfDomains(self)</code></p><p><code>virDomain::setMaxMemory(self, memory)</code></p><p>This process is fully automated, you can get a summary of the conversionin
(virDomainPtr domain, unsigned long memory);</code></p><p>become</p><p><code>virConn::numOfDomains(self)</code></p><p><code>virDomain::setMaxMemory(self, memory)</code></p><p>This process is fully automated, you can get a summary of the conversion
the file libvirtclass.txt present in the python dir or in the docs.Thereis a
in the file libvirtclass.txt present in the python dir or in the docs.There
couple of function who don't map directly to their C counterparts due
is a couple of function who don't map directly to their C counterparts due to
tospecificities in their argument conversions:</p><ul><li><code><ahref="html/libvirt-libvirt.html#virConnectListDomains">virConnectListDomains</a></code>is
specificities in their argument conversions:</p><ul><li><code><ahref="html/libvirt-libvirt.html#virConnectListDomains">virConnectListDomains</a></code>
replaced by <code>virDomain::listDomainsID(self)</code>which returnsa
is replaced by <code>virDomain::listDomainsID(self)</code> which returns
list of the integer ID for the currently running domains</li>
a list of the integer ID for the currently running domains</li>
print dom0.<spanstyle="color: #FF0080; background-color: #FFFFFF">info</span>()</pre><p>There is not much to comment about it, it really is a straight mappingfrom
print dom0.<spanstyle="color: #FF0080; background-color: #FFFFFF">info</span>()</pre><p>There is not much to comment about it, it really is a straight mapping
the C API, the only points to notice are:</p><ul><li>the import of the module called <code><spanstyle="color: #0071FF; background-color: #FFFFFF">libvirt</span></code></li>
from the C API, the only points to notice are:</p><ul><li>the import of the module called <code><spanstyle="color: #0071FF; background-color: #FFFFFF">libvirt</span></code></li>
<li>getting a connection to the hypervisor, in that case using
<li>getting a connection to the hypervisor, in that case using the
theopenReadOnly function allows the code to execute as a normal user.</li>
openReadOnly function allows the code to execute as a normal user.</li>
<li>getting an object representing the Domain 0 using <spanstyle="color: #007F00; background-color: #FFFFFF">lookupByName</span></li>
<li>getting an object representing the Domain 0 using <spanstyle="color: #007F00; background-color: #FFFFFF">lookupByName</span></li>
<li>if the domain is not found a libvirtError exception will be raised</li>
<li>if the domain is not found a libvirtError exception will be raised</li>
<li>extracting and printing some informations about the domain usingvarious
<li>extracting and printing some informations about the domain using
various <spanstyle="color: #E50073; background-color: #FFFFFF">methods</span>
to the virDomain class.</li>
associated to the virDomain class.</li>
</ul></div></div><divclass="linkList2"><divclass="llinks2"><h3class="links2"><span>main menu</span></h3><ul><li><ahref="index.html">Home</a></li><li><ahref="news.html">Releases</a></li><li><ahref="intro.html">Introduction</a></li><li><ahref="architecture.html">libvirt architecture</a></li><li><ahref="downloads.html">Downloads</a></li><li><ahref="format.html">XML Formats</a></li><li><ahref="python.html">Binding for Python</a></li><li><ahref="errors.html">Handling of errors</a></li><li><ahref="FAQ.html">FAQ</a></li><li><ahref="bugs.html">Reporting bugs and getting help</a></li><li><ahref="html/index.html">API Menu</a></li><li><ahref="examples/index.html">C code examples</a></li><li><ahref="ChangeLog.html">Recent Changes</a></li></ul></div><divclass="llinks2"><h3class="links2"><span>related links</span></h3><ul><li><ahref="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><ahref="https://bugzilla.redhat.com/bugzilla/buglist.cgi?product=Fedora+Core&component=libvirt&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=MODIFIED&short_desc_type=allwordssubstr&short_desc=&long_desc_type=allwordssubstr">Open bugs</a></li><li><ahref="http://virt-manager.et.redhat.com/">virt-manager</a></li><li><ahref="http://search.cpan.org/~danberr/Sys-Virt-0.1.0/">Perl bindings</a></li><li><ahref="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><formaction="search.php"enctype="application/x-www-form-urlencoded"method="get"><inputname="query"type="text"size="12"value="Search..."/><inputname="submit"type="submit"value="Go"/></form></li><li><ahref="http://xmlsoft.org/"><imgsrc="Libxml2-Logo-90x34.gif"alt="Made with Libxml2 Logo"/></a></li></ul><pclass="credits">Graphics and design by <ahref="mail:dfong@redhat.com">Diana Fong</a></p></div></div><divid="bottom"><pclass="p1"></p></div></div></body></html>
</ul></div></div><divclass="linkList2"><divclass="llinks2"><h3class="links2"><span>main menu</span></h3><ul><li><ahref="index.html">Home</a></li><li><ahref="news.html">Releases</a></li><li><ahref="intro.html">Introduction</a></li><li><ahref="architecture.html">libvirt architecture</a></li><li><ahref="downloads.html">Downloads</a></li><li><ahref="format.html">XML Format</a></li><li><ahref="python.html">Binding for Python</a></li><li><ahref="errors.html">Handling of errors</a></li><li><ahref="FAQ.html">FAQ</a></li><li><ahref="bugs.html">Reporting bugs and getting help</a></li><li><ahref="html/index.html">API Menu</a></li><li><ahref="examples/index.html">C code examples</a></li><li><ahref="ChangeLog.html">Recent Changes</a></li></ul></div><divclass="llinks2"><h3class="links2"><span>related links</span></h3><ul><li><ahref="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><ahref="https://bugzilla.redhat.com/bugzilla/buglist.cgi?product=Fedora+Core&component=libvirt&bug_status=NEW&bug_status=ASSIGNED&bug_status=REOPENED&bug_status=MODIFIED&short_desc_type=allwordssubstr&short_desc=&long_desc_type=allwordssubstr">Open bugs</a></li><li><ahref="http://virt-manager.et.redhat.com/">virt-manager</a></li><li><ahref="http://search.cpan.org/~danberr/Sys-Virt-0.1.0/">Perl bindings</a></li><li><ahref="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><formaction="search.php"enctype="application/x-www-form-urlencoded"method="get"><inputname="query"type="text"size="12"value="Search..."/><inputname="submit"type="submit"value="Go"/></form></li><li><ahref="http://xmlsoft.org/"><imgsrc="Libxml2-Logo-90x34.gif"alt="Made with Libxml2 Logo"/></a></li></ul><pclass="credits">Graphics and design by <ahref="mail:dfong@redhat.com">Diana Fong</a></p></div></div><divid="bottom"><pclass="p1"></p></div></div></body></html>