+Wed Apr 15 22:40:50 CEST 2009 Daniel Veillard <veillard@redhat.com>
+
+ * docs/Makefile.am docs/api.html docs/api.html.in docs/archdomain.html
+ docs/archnetwork.html docs/archnode.html docs/archstorage.html
+ docs/goals.html docs/intro.html
+ docs/libvirt-daemon-arch.fig docs/libvirt-daemon-arch.png
+ docs/libvirt-driver-arch.fig docs/libvirt-driver-arch.png
+ docs/libvirt-object-model.fig docs/libvirt-object-model.png
+ docs/page.xsl docs/sitemap.html docs/sitemap.html.in:
+ adding a new api page, extending the stylesheet to allow references
+ and including images from Dan Berrange
+
Wed Apr 15 22:08:12 CEST 2009 Daniel Veillard <veillard@redhat.com>
* src/virsh.c: fix for virsh ttyconsole return value bug #495954
libvirtLogo.png \
libvirt-net-logical.png \
libvirt-net-physical.png \
+ libvirt-daemon-arch.png \
+ libvirt-driver-arch.png \
+ libvirt-object-model.png \
madeWith.png \
windows-cygwin-1.png \
windows-cygwin-2.png \
fig = \
libvirt-net-logical.fig \
- libvirt-net-physical.fig
+ libvirt-net-physical.fig \
+ libvirt-daemon-arch.fig \
+ libvirt-driver-arch.fig \
+ libvirt-object-model.fig
EXTRA_DIST= \
libvirt-api.xml libvirt-refs.xml apibuild.py \
name=`echo $@ | sed -e 's/.tmp//'`; \
$(XSLTPROC) --nonet $(top_srcdir)/docs/ChangeLog.xsl $< > $@ || (rm $@ && exit 1) ; fi )
+%.png: %.fig
+ convert -rotate 90 $< $@
+
%.html.tmp: %.html.in site.xsl page.xsl sitemap.html.in
@(if [ -x $(XSLTPROC) ] ; then \
echo "Generating $@"; \
--- /dev/null
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<!--
+ This file is autogenerated from api.html.in
+ Do not edit this file. Changes will be lost.
+ -->
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
+ <link rel="stylesheet" type="text/css" href="main.css" />
+ <link rel="SHORTCUT ICON" href="32favicon.png" />
+ <title>libvirt: The libvirt API concepts</title>
+ <meta name="description" content="libvirt, virtualization, virtualization API" />
+ </head>
+ <body>
+ <div id="header">
+ <div id="headerLogo"></div>
+ <div id="headerSearch">
+ <form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><div>
+ <input id="query" name="query" type="text" size="12" value="" />
+ <input id="submit" name="submit" type="submit" value="Search" />
+ </div></form>
+ </div>
+ </div>
+ <div id="body">
+ <div id="menu">
+ <ul class="l0"><li>
+ <div>
+ <a title="Front page of the libvirt website" class="inactive" href="index.html">Home</a>
+ </div>
+ </li><li>
+ <div>
+ <a title="Details of new features and bugs fixed in each release" class="inactive" href="news.html">News</a>
+ </div>
+ </li><li>
+ <div>
+ <a title="Get the latest source releases, binary builds and get access to the source repository" class="inactive" href="downloads.html">Downloads</a>
+ </div>
+ </li><li>
+ <div>
+ <a title="Information for users, administrators and developers" class="active" href="docs.html">Documentation</a>
+ <ul class="l1"><li>
+ <div>
+ <a title="Information about deploying and using libvirt" class="inactive" href="deployment.html">Deployment</a>
+ </div>
+ </li><li>
+ <div>
+ <a title="Overview of the logical subsystems in the libvirt API" class="active" href="intro.html">Architecture</a>
+ <ul class="l2"><li>
+ <div>
+ <a title="Terminology and goals of libvirt API" class="inactive" href="goals.html">Goals</a>
+ </div>
+ </li><li>
+ <div>
+ <span class="active">API concepts</span>
+ </div>
+ </li><li>
+ <div>
+ <a title="Managing virtual machines" class="inactive" href="archdomain.html">Domains</a>
+ </div>
+ </li><li>
+ <div>
+ <a title="Providing isolated networks and NAT based network connectivity" class="inactive" href="archnetwork.html">Network</a>
+ </div>
+ </li><li>
+ <div>
+ <a title="Managing storage pools and volumes" class="inactive" href="archstorage.html">Storage</a>
+ </div>
+ </li><li>
+ <div>
+ <a title="Enumerating host node devices" class="inactive" href="archnode.html">Node Devices</a>
+ </div>
+ </li></ul>
+ </div>
+ </li><li>
+ <div>
+ <a title="Description of the XML formats used in libvirt" class="inactive" href="format.html">XML format</a>
+ </div>
+ </li><li>
+ <div>
+ <a title="Hypervisor specific driver information" class="inactive" href="drivers.html">Drivers</a>
+ </div>
+ </li><li>
+ <div>
+ <a title="Reference manual for the C public API" class="inactive" href="html/index.html">API reference</a>
+ </div>
+ </li><li>
+ <div>
+ <a title="Bindings of the libvirt API for other languages" class="inactive" href="bindings.html">Language bindings</a>
+ </div>
+ </li></ul>
+ </div>
+ </li><li>
+ <div>
+ <a title="User contributed content" class="inactive" href="http://wiki.libvirt.org">Wiki</a>
+ </div>
+ </li><li>
+ <div>
+ <a title="Frequently asked questions" class="inactive" href="FAQ.html">FAQ</a>
+ </div>
+ </li><li>
+ <div>
+ <a title="How and where to report bugs and request features" class="inactive" href="bugs.html">Bug reports</a>
+ </div>
+ </li><li>
+ <div>
+ <a title="How to contact the developers via email and IRC" class="inactive" href="contact.html">Contact</a>
+ </div>
+ </li><li>
+ <div>
+ <a title="Miscellaneous links of interest related to libvirt" class="inactive" href="relatedlinks.html">Related Links</a>
+ </div>
+ </li><li>
+ <div>
+ <a title="Overview of all content on the website" class="inactive" href="sitemap.html">Sitemap</a>
+ </div>
+ </li></ul>
+ </div>
+ <div id="content">
+ <h1>The libvirt API concepts</h1>
+ <p> This page describes the main principles and architecture choices
+ behind the definition of the libvirt API:
+ </p>
+ <ul><li>
+ <a href="#Objects">Objects exposed</a>
+ </li><li>
+ <a href="#Functions">Functions and naming conventions</a>
+ </li><li>
+ <a href="#Driver">The drivers</a>
+ </li><li>
+ <a href="#Remote">Daemon and remote access</a>
+ </li></ul>
+ <h2>
+ <a name="Objects" id="Objects">Objects exposed</a>
+ </h2>
+ <p> As defined in the <a href="goals.html">goals section</a>, libvirt
+ API need to expose all the resources needed to manage the virtualization
+ support of recent operating systems. The first object manipulated though
+ the API is <code>virConnectPtr</code> which represent a connection to
+ an hypervisor. Any application using libvirt is likely to start using the
+ API by calling one of <a href="html/libvirt-libvirt.html#virConnectOpen">the virConnectOpen functions</a>. You will note that those functions take
+ a name argument which is actually an URI to select the right hypervisor to
+ open, this is needed to allow remote connections and also select between
+ different possible hypervisors (for example on a Linux system it may be
+ possible to use both KVM and LinuxContainers on the same node). A NULL
+ name will default to a preselected hypervisor but it's probably not a
+ wise thing to do in most cases. See the <a href="uri.html">connection
+ URI</a> page for a full descriptions of the values allowed.</p>
+ <p>
+ </p>
+ <p> Once the application obtained a <a href="html/libvirt-libvirt.html#virConnectPtr"><code>virConnectPtr</code></a>
+ connection to the
+ hypervisor it can then use it to manage domains and related resources
+ available for virtualization like storage and networking. All those are
+ exposed as first class objects, and connected to the hypervisor connection
+ (and the node or cluster where it is available).</p>
+ <p class="image">
+ <img alt="first class objects exposed by the API" src="libvirt-object-model.png" /></p>
+ <p> The figure above shows the five main objects exported by the API:</p>
+ <ul><li>virConnectPtr: represent a connection to an hypervisor.</li><li>virDomainPtr: represent one domain either active or defined (i.e.
+ existing as permanent config file and storage but not currently running
+ on that node). The function <a href="html/libvirt-libvirt.html#virConnectListDomains"><code>virConnectListDomains</code></a>
+ allows to list all the IDs for the domains active on this hypervisor.</li><li>virNetworkPtr: represent one network either active or defined (i.e.
+ existing as permanent config file and storage but not currently activated.
+ The function <a href="html/libvirt-libvirt.html#virConnectListNetworks"><code>virConnectListNetworks</code></a>
+ allows to list all the virtualization networks actived on this node.</li><li>virStorageVolPtr: represent one storage volume, usually this is used
+ as a block device available to one of the domains. The function
+ <a href="html/libvirt-libvirt.html#virStorageVolLookupByPath"><code>virStorageVolLookupByPath</code></a> allows to find
+ the object based on its path on the node.</li><li>virStoragePoolPtr: represent a storage pool, i.e. a logical area
+ which can be used to allocate and store storage volumes. The function
+ <a href="html/libvirt-libvirt.html#virStoragePoolLookupByVolume"><code>virStoragePoolLookupByVolume</code></a> allows to find
+ the storage pool containing a given storage volume.</li></ul>
+ <p> Most object manipulated by the library can also be represented using
+ XML descriptions. This is used primarily to create those object, but is
+ also helpful to modify or save their description back.</p>
+ <p> Domains, network and storage pools can be either <code>active</code>
+ i.e. either running or available for immediate use, or
+ <code>defined</code> in which case they are inactive but there is
+ a permanent definition available in the system for them. Based on this
+ thay can be activated dynamically in order to be used.</p>
+ <p> Most kind of object can also be named in various ways:</p>
+ <p>
+ </p>
+ <ul><li>by their <code>name</code>, an user friendly identifier but
+ whose unicity cannot be garanteed between two nodes.</li><li>by their <code>ID</code>, which is a runtime unique identifier
+ provided by the hypervisor for one given activation of the object,
+ but it becomes invalid once the resource is deactivated.</li><li>by their <code>UUID</code>, a 16 bytes unique identifier
+ as defined in <a href="http://www.ietf.org/rfc/rfc4122.txt">RFC 4122</a>,
+ which is garanteed to be unique for long term usage and across a
+ set of nodes.</li></ul>
+ <h2>
+ <a name="Functions" id="Functions">Functions and naming
+ conventions</a>
+ </h2>
+ <p> The naming of the functions present in the library is usually
+ made of a prefix describing the object associated to the function
+ and a verb describing the action on that object.</p>
+ <p> For each first class object you will find apis
+ for the following actions:</p>
+ <ul><li><b>Lookup</b>:...LookupByName,
+ </li><li><b>Enumeration</b>:virConnectList... and virConnectNumOf...:
+ those are used to enumerate a set of object available to an given
+ hypervisor connection like:
+ <a href="html/libvirt-libvirt.html#virConnectListDomains"><code>virConnectListDomains</code></a>,
+ <a href="html/libvirt-libvirt.html#virConnectNumOfDomains"><code>virConnectNumOfDomains</code></a>,
+ <a href="html/libvirt-libvirt.html#virConnectListNetworks"><code>virConnectListNetworks</code></a>,
+ <a href="html/libvirt-libvirt.html#virConnectListStoragePools"><code>virConnectListStoragePools</code></a>, etc.</li><li><b>Description</b>: ...GetInfo: those are generic accessor providing
+ a set of informations about an object, they are
+ <a href="html/libvirt-libvirt.html#virNodeGetInfo"><code>virNodeGetInfo</code></a>,
+ <a href="html/libvirt-libvirt.html#virDomainGetInfo"><code>virDomainGetInfo</code></a>,
+ <a href="html/libvirt-libvirt.html#virStoragePoolGetInfo"><code>virStoragePoolGetInfo</code></a>,
+ <a href="html/libvirt-libvirt.html#virStorageVolGetInfo"><code>virStorageVolGetInfo</code></a>.</li><li><b>Accessors</b>: ...Get... and ...Set...: those are more specific
+ accessors to query or modify the given object, like
+ <a href="html/libvirt-libvirt.html#virConnectGetType"><code>virConnectGetType</code></a>,
+ <a href="html/libvirt-libvirt.html#virDomainGetMaxMemory"><code>virDomainGetMaxMemory</code></a>,
+ <a href="html/libvirt-libvirt.html#virDomainSetMemory"><code>virDomainSetMemory</code></a>,
+ <a href="html/libvirt-libvirt.html#virDomainGetVcpus"><code>virDomainGetVcpus</code></a>,
+ <a href="html/libvirt-libvirt.html#virStoragePoolSetAutostart"><code>virStoragePoolSetAutostart</code></a>,
+ <a href="html/libvirt-libvirt.html#virNetworkGetBridgeName"><code>virNetworkGetBridgeName</code></a>, etc.</li><li><b>Creation</b>: </li><li><b>Destruction</b>: ... </li></ul>
+ <p> For more in-depth details of the storage related APIs see
+ <a href="storage.html">the storage management page</a>,
+ </p>
+ <h2>
+ <a name="Driver" id="Driver">The libvirt drivers</a>
+ </h2>
+ <p></p>
+ <p class="image">
+ <img alt="The libvirt driver architecture" src="libvirt-driver-arch.png" /></p>
+ <h2>
+ <a name="Remote" id="Remote">Daemon and remote access</a>
+ </h2>
+ <p></p>
+ <p class="image">
+ <img alt="The libvirt daemon and remote architecture" src="libvirt-daemon-arch.png" /></p>
+ </div>
+ </div>
+ <div id="footer">
+ <p id="sponsor">
+ Sponsored by:<br /><a href="http://et.redhat.com/"><img src="et.png" alt="Project sponsored by Red Hat Emerging Technology" /></a></p>
+ </div>
+ </body>
+</html>
--- /dev/null
+<?xml version="1.0"?>
+<html>
+ <body>
+ <h1>The libvirt API concepts</h1>
+
+ <p> This page describes the main principles and architecture choices
+ behind the definition of the libvirt API:
+ <ul>
+ <li>
+ <a href="#Objects">Objects exposed</a>
+ </li>
+ <li>
+ <a href="#Functions">Functions and naming conventions</a>
+ </li>
+ <li>
+ <a href="#Driver">The drivers</a>
+ </li>
+ <li>
+ <a href="#Remote">Daemon and remote access</a>
+ </li>
+ </ul>
+ <h2><a name="Objects" id="Objects">Objects exposed</a></h2>
+ <p> As defined in the <a href="goals.html">goals section</a>, libvirt
+ API need to expose all the resources needed to manage the virtualization
+ support of recent operating systems. The first object manipulated though
+ the API is <code>virConnectPtr</code> which represent a connection to
+ an hypervisor. Any application using libvirt is likely to start using the
+ API by calling one of <a href="html/libvirt-libvirt.html#virConnectOpen"
+ >the virConnectOpen functions</a>. You will note that those functions take
+ a name argument which is actually an URI to select the right hypervisor to
+ open, this is needed to allow remote connections and also select between
+ different possible hypervisors (for example on a Linux system it may be
+ possible to use both KVM and LinuxContainers on the same node). A NULL
+ name will default to a preselected hypervisor but it's probably not a
+ wise thing to do in most cases. See the <a href="uri.html">connection
+ URI</a> page for a full descriptions of the values allowed.<p>
+ <p> Once the application obtained a <code class='docref'>virConnectPtr</code>
+ connection to the
+ hypervisor it can then use it to manage domains and related resources
+ available for virtualization like storage and networking. All those are
+ exposed as first class objects, and connected to the hypervisor connection
+ (and the node or cluster where it is available).</p>
+ <p class="image">
+ <img alt="first class objects exposed by the API"
+ src="libvirt-object-model.png"/>
+ </p>
+ <p> The figure above shows the five main objects exported by the API:</p>
+ <ul>
+ <li>virConnectPtr: represent a connection to an hypervisor.</li>
+ <li>virDomainPtr: represent one domain either active or defined (i.e.
+ existing as permanent config file and storage but not currently running
+ on that node). The function <code class='docref'>virConnectListDomains</code>
+ allows to list all the IDs for the domains active on this hypervisor.</li>
+ <li>virNetworkPtr: represent one network either active or defined (i.e.
+ existing as permanent config file and storage but not currently activated.
+ The function <code class='docref'>virConnectListNetworks</code>
+ allows to list all the virtualization networks actived on this node.</li>
+ <li>virStorageVolPtr: represent one storage volume, usually this is used
+ as a block device available to one of the domains. The function
+ <code class="docref">virStorageVolLookupByPath</code> allows to find
+ the object based on its path on the node.</li>
+ <li>virStoragePoolPtr: represent a storage pool, i.e. a logical area
+ which can be used to allocate and store storage volumes. The function
+ <code class="docref">virStoragePoolLookupByVolume</code> allows to find
+ the storage pool containing a given storage volume.</li>
+ </ul>
+ <p> Most object manipulated by the library can also be represented using
+ XML descriptions. This is used primarily to create those object, but is
+ also helpful to modify or save their description back.</p>
+ <p> Domains, network and storage pools can be either <code>active</code>
+ i.e. either running or available for immediate use, or
+ <code>defined</code> in which case they are inactive but there is
+ a permanent definition available in the system for them. Based on this
+ thay can be activated dynamically in order to be used.</p>
+ <p> Most kind of object can also be named in various ways:<p>
+ <ul>
+ <li>by their <code>name</code>, an user friendly identifier but
+ whose unicity cannot be garanteed between two nodes.</li>
+ <li>by their <code>ID</code>, which is a runtime unique identifier
+ provided by the hypervisor for one given activation of the object,
+ but it becomes invalid once the resource is deactivated.</li >
+ <li>by their <code>UUID</code>, a 16 bytes unique identifier
+ as defined in <a href="http://www.ietf.org/rfc/rfc4122.txt">RFC 4122</a>,
+ which is garanteed to be unique for long term usage and across a
+ set of nodes.</li>
+ </ul>
+
+ <h2><a name="Functions" id="Functions">Functions and naming
+ conventions</a></h2>
+ <p> The naming of the functions present in the library is usually
+ made of a prefix describing the object associated to the function
+ and a verb describing the action on that object.</p>
+ <p> For each first class object you will find apis
+ for the following actions:</p>
+ <ul>
+ <li><b>Lookup</b>:...LookupByName,
+ <li><b>Enumeration</b>:virConnectList... and virConnectNumOf...:
+ those are used to enumerate a set of object available to an given
+ hypervisor connection like:
+ <code class='docref'>virConnectListDomains</code>,
+ <code class='docref'>virConnectNumOfDomains</code>,
+ <code class='docref'>virConnectListNetworks</code>,
+ <code class='docref'>virConnectListStoragePools</code>, etc.</li>
+ <li><b>Description</b>: ...GetInfo: those are generic accessor providing
+ a set of informations about an object, they are
+ <code class='docref'>virNodeGetInfo</code>,
+ <code class='docref'>virDomainGetInfo</code>,
+ <code class='docref'>virStoragePoolGetInfo</code>,
+ <code class='docref'>virStorageVolGetInfo</code>.</li>
+ <li><b>Accessors</b>: ...Get... and ...Set...: those are more specific
+ accessors to query or modify the given object, like
+ <code class='docref'>virConnectGetType</code>,
+ <code class='docref'>virDomainGetMaxMemory</code>,
+ <code class='docref'>virDomainSetMemory</code>,
+ <code class='docref'>virDomainGetVcpus</code>,
+ <code class='docref'>virStoragePoolSetAutostart</code>,
+ <code class='docref'>virNetworkGetBridgeName</code>, etc.</li>
+ <li><b>Creation</b>: </li>
+ <li><b>Destruction</b>: ... </li>
+ </ul>
+ <p> For more in-depth details of the storage related APIs see
+ <a href="storage.html">the storage management page</a>,
+ <h2><a name="Driver" id="Driver">The libvirt drivers</a></h2>
+ <p></p>
+ <p class="image">
+ <img alt="The libvirt driver architecture"
+ src="libvirt-driver-arch.png"/>
+ </p>
+ <h2><a name="Remote" id="Remote">Daemon and remote access</a></h2>
+ <p></p>
+ <p class="image">
+ <img alt="The libvirt daemon and remote architecture"
+ src="libvirt-daemon-arch.png"/>
+ </p>
+ </body>
+</html>
<div>
<a title="Terminology and goals of libvirt API" class="inactive" href="goals.html">Goals</a>
</div>
+ </li><li>
+ <div>
+ <a title="The libvirt API concepts" class="inactive" href="api.html">API concepts</a>
+ </div>
</li><li>
<div>
<span class="active">Domains</span>
<div>
<a title="Terminology and goals of libvirt API" class="inactive" href="goals.html">Goals</a>
</div>
+ </li><li>
+ <div>
+ <a title="The libvirt API concepts" class="inactive" href="api.html">API concepts</a>
+ </div>
</li><li>
<div>
<a title="Managing virtual machines" class="inactive" href="archdomain.html">Domains</a>
<div>
<a title="Terminology and goals of libvirt API" class="inactive" href="goals.html">Goals</a>
</div>
+ </li><li>
+ <div>
+ <a title="The libvirt API concepts" class="inactive" href="api.html">API concepts</a>
+ </div>
</li><li>
<div>
<a title="Managing virtual machines" class="inactive" href="archdomain.html">Domains</a>
<div>
<a title="Terminology and goals of libvirt API" class="inactive" href="goals.html">Goals</a>
</div>
+ </li><li>
+ <div>
+ <a title="The libvirt API concepts" class="inactive" href="api.html">API concepts</a>
+ </div>
</li><li>
<div>
<a title="Managing virtual machines" class="inactive" href="archdomain.html">Domains</a>
<div>
<span class="active">Goals</span>
</div>
+ </li><li>
+ <div>
+ <a title="The libvirt API concepts" class="inactive" href="api.html">API concepts</a>
+ </div>
</li><li>
<div>
<a title="Managing virtual machines" class="inactive" href="archdomain.html">Domains</a>
<div>
<a title="Terminology and goals of libvirt API" class="inactive" href="goals.html">Goals</a>
</div>
+ </li><li>
+ <div>
+ <a title="The libvirt API concepts" class="inactive" href="api.html">API concepts</a>
+ </div>
</li><li>
<div>
<a title="Managing virtual machines" class="inactive" href="archdomain.html">Domains</a>
--- /dev/null
+#FIG 3.2 Produced by xfig version 3.2.5
+Landscape
+Center
+Inches
+Letter
+100.00
+Single
+-2
+1200 2
+6 75 150 13050 5100
+6 4425 764 5938 1150
+2 2 0 1 0 7 50 -1 -1 4.000 0 0 7 0 0 5
+ 4425 764 5938 764 5938 1150 4425 1150 4425 764
+4 0 0 50 -1 16 15 0.0000 4 131 415 4519 1053 xen\001
+-6
+6 4425 1246 5938 1631
+2 2 0 1 0 7 50 -1 -1 4.000 0 0 7 0 0 5
+ 4425 1246 5938 1246 5938 1631 4425 1631 4425 1246
+4 0 0 50 -1 16 15 0.0000 4 178 640 4519 1535 qemu\001
+-6
+6 4425 1728 5938 2113
+2 2 0 1 0 7 50 -1 -1 4.000 0 0 7 0 0 5
+ 4425 1728 5938 1728 5938 2113 4425 2113 4425 1728
+4 0 0 50 -1 16 15 0.0000 4 178 829 4519 2017 openvz\001
+-6
+6 4425 2210 5938 2595
+2 2 0 1 0 7 50 -1 -1 4.000 0 0 7 0 0 5
+ 4425 2210 5938 2210 5938 2595 4425 2595 4425 2210
+4 0 0 50 -1 16 15 0.0000 4 178 320 4519 2499 lxc\001
+-6
+6 4425 2691 5938 3077
+2 2 0 1 0 7 50 -1 -1 4.000 0 0 7 0 0 5
+ 4425 2691 5938 2691 5938 3077 4425 3077 4425 2691
+4 0 0 50 -1 16 15 0.0000 4 166 415 4519 2980 test\001
+-6
+6 4425 3173 5938 3559
+2 2 0 1 0 7 50 -1 -1 4.000 0 0 7 0 0 5
+ 4425 3173 5938 3173 5938 3559 4425 3559 4425 3173
+4 0 0 50 -1 16 15 0.0000 4 166 794 4519 3462 remote\001
+-6
+6 11328 764 12842 1150
+2 2 0 1 0 7 50 -1 -1 4.000 0 0 7 0 0 5
+ 11328 764 12842 764 12842 1150 11328 1150 11328 764
+4 0 0 50 -1 16 15 0.0000 4 131 415 11423 1053 xen\001
+-6
+6 11328 1246 12842 1631
+2 2 0 1 0 7 50 -1 -1 4.000 0 0 7 0 0 5
+ 11328 1246 12842 1246 12842 1631 11328 1631 11328 1246
+4 0 0 50 -1 16 15 0.0000 4 178 640 11423 1535 qemu\001
+-6
+6 11328 1728 12842 2113
+2 2 0 1 0 7 50 -1 -1 4.000 0 0 7 0 0 5
+ 11328 1728 12842 1728 12842 2113 11328 2113 11328 1728
+4 0 0 50 -1 16 15 0.0000 4 178 829 11423 2017 openvz\001
+-6
+6 11328 2210 12842 2595
+2 2 0 1 0 7 50 -1 -1 4.000 0 0 7 0 0 5
+ 11328 2210 12842 2210 12842 2595 11328 2595 11328 2210
+4 0 0 50 -1 16 15 0.0000 4 178 320 11423 2499 lxc\001
+-6
+6 11328 2691 12842 3077
+2 2 0 1 0 7 50 -1 -1 4.000 0 0 7 0 0 5
+ 11328 2691 12842 2691 12842 3077 11328 3077 11328 2691
+4 0 0 50 -1 16 15 0.0000 4 166 415 11423 2980 test\001
+-6
+6 11328 3173 12842 3559
+2 2 0 1 0 7 50 -1 -1 4.000 0 0 7 0 0 5
+ 11328 3173 12842 3173 12842 3559 11328 3559 11328 3173
+4 0 0 50 -1 16 15 0.0000 4 166 794 11423 3462 remote\001
+-6
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+ 75 1342 1587 1342 1587 2113 75 2113 75 1342
+2 1 0 1 0 7 50 -1 -1 4.000 0 0 -1 1 0 2
+ 0 0 1.00 76.37 152.74
+ 1587 1728 3101 1728
+2 1 0 1 0 7 50 -1 -1 4.000 0 0 -1 1 0 4
+ 0 0 1.00 76.37 152.74
+ 5938 3365 6883 3365 7262 1728 7640 1728
+2 1 0 1 0 7 50 -1 -1 4.000 0 0 -1 1 0 4
+ 0 0 1.00 76.37 152.74
+ 3101 1728 3858 1728 4141 3365 4425 3365
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+ 3101 572 6127 572 6127 3751 3101 3751 3101 572
+2 1 0 5 0 7 50 -1 -1 12.000 0 0 -1 0 0 2
+ 3101 572 3101 3751
+2 1 2 5 0 7 50 -1 -1 3.000 0 0 -1 0 0 2
+ 3858 572 3858 3751
+2 1 0 1 0 7 50 -1 -1 4.000 0 0 -1 1 0 2
+ 0 0 1.00 76.37 152.74
+ 9154 1728 10004 1728
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+ 7640 1342 9154 1342 9154 2113 7640 2113 7640 1342
+2 1 0 1 0 7 50 -1 -1 4.000 0 0 -1 1 0 4
+ 0 0 1.00 76.37 152.74
+ 10004 1728 10760 1728 10950 2402 11328 2402
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+ 10004 572 13030 572 13030 3751 10004 3751 10004 572
+2 1 0 5 0 7 50 -1 -1 12.000 0 0 -1 0 0 2
+ 10004 572 10004 3751
+2 1 2 5 0 7 50 -1 -1 3.000 0 0 -1 0 0 2
+ 10760 572 10760 3751
+4 0 0 50 -1 16 15 0.0000 4 225 1256 170 1728 Application\001
+4 0 0 50 -1 16 13 0.0000 4 154 367 1966 1631 URI\001
+4 0 0 50 -1 16 15 5.3233 4 178 1149 3763 4040 Driver API\001
+4 0 0 50 -1 16 15 5.3233 4 178 1173 3101 4040 Public API\001
+4 0 0 50 -1 16 15 5.3233 4 225 1233 4992 4040 Driver Impl\001
+4 0 0 50 -1 16 18 0.0000 4 213 652 3763 379 libvirt\001
+4 0 0 50 -1 16 13 0.0000 4 154 901 1966 2017 lxc://host/\001
+4 0 0 50 -1 16 15 0.0000 4 178 747 7734 1728 libvirtd\001
+4 0 0 50 -1 16 15 5.3233 4 178 1149 10666 4040 Driver API\001
+4 0 0 50 -1 16 15 5.3233 4 178 1173 10004 4040 Public API\001
+4 0 0 50 -1 16 15 5.3233 4 225 1233 11896 4040 Driver Impl\001
+4 0 0 50 -1 16 18 0.0000 4 213 652 10666 379 libvirt\001
+-6
--- /dev/null
+#FIG 3.2 Produced by xfig version 3.2.5
+Landscape
+Center
+Inches
+Letter
+100.00
+Single
+-2
+1200 2
+6 1200 225 10950 8147
+6 8208 1291 10646 1900
+2 2 0 1 0 7 50 -1 -1 4.000 0 0 7 0 0 5
+ 8208 1291 10646 1291 10646 1900 8208 1900 8208 1291
+4 0 0 50 -1 16 24 0.0000 4 214 639 8360 1748 xen\001
+-6
+6 8208 2054 10646 2662
+2 2 0 1 0 7 50 -1 -1 4.000 0 0 7 0 0 5
+ 8208 2054 10646 2054 10646 2662 8208 2662 8208 2054
+4 0 0 50 -1 16 24 0.0000 4 305 975 8360 2510 qemu\001
+-6
+6 8208 2815 10646 3424
+2 2 0 1 0 7 50 -1 -1 4.000 0 0 7 0 0 5
+ 8208 2815 10646 2815 10646 3424 8208 3424 8208 2815
+4 0 0 50 -1 16 24 0.0000 4 305 1280 8360 3272 openvz\001
+-6
+6 8208 3577 10646 4187
+2 2 0 1 0 7 50 -1 -1 4.000 0 0 7 0 0 5
+ 8208 3577 10646 3577 10646 4187 8208 4187 8208 3577
+4 0 0 50 -1 16 24 0.0000 4 304 518 8360 4033 lxc\001
+-6
+6 8208 4339 10646 4948
+2 2 0 1 0 7 50 -1 -1 4.000 0 0 7 0 0 5
+ 8208 4339 10646 4339 10646 4948 8208 4948 8208 4339
+4 0 0 50 -1 16 24 0.0000 4 274 670 8360 4795 test\001
+-6
+6 8208 5100 10646 5710
+2 2 0 1 0 7 50 -1 -1 4.000 0 0 7 0 0 5
+ 8208 5100 10646 5100 10646 5710 8208 5710 8208 5100
+4 0 0 50 -1 16 24 0.0000 4 274 1219 8360 5557 remote\001
+-6
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+ 1200 2206 3637 2206 3637 3424 1200 3424 1200 2206
+2 1 0 1 0 7 50 -1 -1 4.000 0 0 -1 1 0 2
+ 0 0 1.00 121.88 243.75
+ 3637 2815 6075 2815
+2 1 0 1 0 7 50 -1 -1 4.000 0 0 -1 1 0 4
+ 0 0 1.00 121.88 243.75
+ 6075 2815 7294 2815 7598 3881 8208 3881
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+ 6075 987 10950 987 10950 6014 6075 6014 6075 987
+2 1 0 5 0 7 50 -1 -1 12.000 0 0 -1 0 0 2
+ 6075 987 6075 6014
+2 1 2 5 0 7 50 -1 -1 3.000 0 0 -1 0 0 2
+ 7294 987 7294 6014
+4 0 0 50 -1 16 24 0.0000 4 395 1950 1352 2815 Application\001
+4 0 0 50 -1 16 20 0.0000 4 244 579 4246 2662 URI\001
+4 0 0 50 -1 16 20 0.0000 4 244 792 4246 3272 lxc:///\001
+4 0 0 50 -1 16 24 5.3233 4 304 1828 7142 6472 Driver API\001
+4 0 0 50 -1 16 24 5.3233 4 304 1889 6075 6472 Public API\001
+4 0 0 50 -1 16 24 5.3233 4 395 1920 9121 6472 Driver Impl\001
+4 0 0 50 -1 16 28 0.0000 4 366 1157 7142 682 libvirt\001
+-6
--- /dev/null
+#FIG 3.2 Produced by xfig version 3.2.5
+Landscape
+Center
+Inches
+Letter
+100.00
+Single
+-2
+1200 2
+6 1200 1200 10274 6975
+6 4500 1200 6974 2025
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+ 4500 1200 6974 1200 6974 2025 4500 2025 4500 1200
+4 0 0 50 -1 16 17 0.0000 4 202 1679 4603 1613 virConnectPtr\001
+-6
+6 1200 3675 3675 4500
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+ 1200 3675 3675 3675 3675 4500 1200 4500 1200 3675
+4 0 0 50 -1 16 17 0.0000 4 202 1595 1303 4087 virDomainPtr\001
+-6
+6 1200 6150 3675 6975
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+ 1200 6150 3675 6150 3675 6975 1200 6975 1200 6150
+4 0 0 50 -1 16 17 0.0000 4 202 1667 1303 6562 virNetworkPtr\001
+-6
+6 7799 3675 10274 4500
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+ 7799 3675 10274 3675 10274 4500 7799 4500 7799 3675
+4 0 0 50 -1 16 17 0.0000 4 262 2155 7902 4087 virStoragePoolPtr\001
+-6
+6 7799 6150 10274 6975
+2 2 0 1 0 7 50 -1 -1 0.000 0 0 -1 0 0 5
+ 7799 6150 10274 6150 10274 6975 7799 6975 7799 6150
+4 0 0 50 -1 16 17 0.0000 4 262 2000 7902 6562 virStorageVolPtr\001
+-6
+3 0 0 1 0 7 50 -1 -1 0.000 0 1 0 3
+ 0 0 1.00 82.50 164.99
+ 4706 2025 4706 4087 3675 4087
+ 0.000 1.000 0.000
+3 0 0 1 0 7 50 -1 -1 0.000 0 1 0 3
+ 0 0 1.00 82.50 164.99
+ 6768 2025 6768 4087 7799 4087
+ 0.000 1.000 0.000
+3 0 0 1 0 7 50 -1 -1 0.000 0 1 0 3
+ 0 0 1.00 82.50 164.99
+ 6562 2025 6562 6562 7799 6562
+ 0.000 1.000 0.000
+3 0 0 1 0 7 50 -1 -1 0.000 0 1 0 3
+ 0 0 1.00 82.50 164.99
+ 4912 2025 4912 6562 3675 6562
+ 0.000 1.000 0.000
+3 0 0 1 0 7 50 -1 -1 0.000 0 1 0 2
+ 0 0 1.00 82.50 164.99
+ 8933 4500 8933 6150
+ 0.000 0.000
+4 0 0 50 -1 16 17 0.0000 4 143 155 3881 3985 n\001
+4 0 0 50 -1 16 17 0.0000 4 143 155 3881 6459 n\001
+4 0 0 50 -1 16 17 0.0000 4 143 155 7387 6459 n\001
+4 0 0 50 -1 16 17 0.0000 4 143 155 7387 3985 n\001
+4 0 0 50 -1 16 17 0.0000 4 143 155 8727 5944 n\001
+-6
<!-- The sitemap.html.in page contains the master navigation structure -->\r
<xsl:variable name="sitemap" select="document('sitemap.html.in')/html/body/div[@id='sitemap']"/>\r
\r
+ <xsl:template match="code[@class='docref']" mode="content">\r
+ <xsl:variable name="name"><xsl:value-of select="."/></xsl:variable>\r
+ <a href="html/libvirt-libvirt.html#{$name}"><code><xsl:value-of select="$name"/></code></a>\r
+ </xsl:template>\r
+\r
+ <xsl:template match="node() | @*" mode="content">\r
+ <xsl:copy>\r
+ <xsl:apply-templates select="node() | @*" mode="content"/>\r
+ </xsl:copy>\r
+ </xsl:template>\r
+\r
+\r
+ <xsl:template match="ul[@id='toc']" mode="content">\r
+ <xsl:call-template name="toc"/>\r
+ </xsl:template>\r
+\r
<!-- This processes the sitemap to form a context sensitive\r
navigation menu for the current page -->\r
<xsl:template match="ul" mode="menu">\r
</xsl:apply-templates>\r
</div>\r
<div id="content">\r
- <xsl:for-each select="html/body/*">\r
- <xsl:choose>\r
- <xsl:when test="name() = 'ul' and @id = 'toc'">\r
- <xsl:call-template name="toc"/>\r
- </xsl:when>\r
- <xsl:otherwise>\r
- <xsl:copy-of select="."/>\r
- </xsl:otherwise>\r
- </xsl:choose>\r
- </xsl:for-each>\r
+ <xsl:apply-templates select="/html/body/*" mode="content"/>\r
</div>\r
</div>\r
<div id="footer">\r
<ul><li>
<a href="goals.html">Goals</a>
<span>Terminology and goals of libvirt API</span>
+ </li><li>
+ <a href="api.html">API concepts</a>
+ <span>The libvirt API concepts</span>
</li><li>
<a href="archdomain.html">Domains</a>
<span>Managing virtual machines</span>
<a href="goals.html">Goals</a>
<span>Terminology and goals of libvirt API</span>
</li>
+ <li>
+ <a href="api.html">API concepts</a>
+ <span>The libvirt API concepts</span>
+ </li>
<li>
<a href="archdomain.html">Domains</a>
<span>Managing virtual machines</span>