]> xenbits.xensource.com Git - libvirt.git/commitdiff
Api documentation
authorDaniel Veillard <veillard@redhat.com>
Wed, 15 Apr 2009 20:42:50 +0000 (20:42 +0000)
committerDaniel Veillard <veillard@redhat.com>
Wed, 15 Apr 2009 20:42:50 +0000 (20:42 +0000)
* 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
daniel

19 files changed:
ChangeLog
docs/Makefile.am
docs/api.html [new file with mode: 0644]
docs/api.html.in [new file with mode: 0644]
docs/archdomain.html
docs/archnetwork.html
docs/archnode.html
docs/archstorage.html
docs/goals.html
docs/intro.html
docs/libvirt-daemon-arch.fig [new file with mode: 0644]
docs/libvirt-daemon-arch.png [new file with mode: 0644]
docs/libvirt-driver-arch.fig [new file with mode: 0644]
docs/libvirt-driver-arch.png [new file with mode: 0644]
docs/libvirt-object-model.fig [new file with mode: 0644]
docs/libvirt-object-model.png [new file with mode: 0644]
docs/page.xsl
docs/sitemap.html
docs/sitemap.html.in

index 5d1d869f1987d702cdfb0f594ca0639e9b3af170..5b6b343db40af18fe347c68f3cdafde830fd57bd 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,15 @@
+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
index abb05291528de1bee0984cc06d96f24a73e574c4..4a559652136091d2de487b59c2808ae55806a75d 100644 (file)
@@ -29,6 +29,9 @@ png = \
   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 \
@@ -54,7 +57,10 @@ xml = \
 
 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 \
@@ -83,6 +89,9 @@ ChangeLog.html.in: ChangeLog.xml ChangeLog.xsl
          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 $@"; \
diff --git a/docs/api.html b/docs/api.html
new file mode 100644 (file)
index 0000000..e799e51
--- /dev/null
@@ -0,0 +1,242 @@
+<?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>
diff --git a/docs/api.html.in b/docs/api.html.in
new file mode 100644 (file)
index 0000000..0b9ffd3
--- /dev/null
@@ -0,0 +1,136 @@
+<?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>
index a6b65b8e95984ceb419e3e592acdb88905c7cf71..a404c25d433bf10ef9d333829802f5fd7f45586c 100644 (file)
                         <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>
index 7498da7b5f8bd1f2ab7df0e5f513cb0a81a24251..6f4f8c1a3771092174154bf33491c8f672dc0c21 100644 (file)
                         <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>
index ee75ee98cd18baf7a56b36fa6d4465b356ab66a2..d2e4cdfcf0ab0bb3eab341481e05b50fc847b845 100644 (file)
                         <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>
index f3e6b54cd19a98d056cd86ac9699a59a7a3de567..cc33db8b590afcaaeb40db46caf4ff99b16e0c8f 100644 (file)
                         <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>
index 1f45e2d520417a17bc0c817e05f63941007ac436..5e24327f2a6dddab11c9aa38c17f3ff4fc0f5976 100644 (file)
                         <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>
index 3a453859c624bc429d03445b5bb9f31845a7f74e..c02e5bd985f5f9e2ba5862a1ca7af406441b2c69 100644 (file)
                         <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>
diff --git a/docs/libvirt-daemon-arch.fig b/docs/libvirt-daemon-arch.fig
new file mode 100644 (file)
index 0000000..cd9a4cf
--- /dev/null
@@ -0,0 +1,114 @@
+#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
diff --git a/docs/libvirt-daemon-arch.png b/docs/libvirt-daemon-arch.png
new file mode 100644 (file)
index 0000000..b7ed2f6
Binary files /dev/null and b/docs/libvirt-daemon-arch.png differ
diff --git a/docs/libvirt-driver-arch.fig b/docs/libvirt-driver-arch.fig
new file mode 100644 (file)
index 0000000..c1964a5
--- /dev/null
@@ -0,0 +1,62 @@
+#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
diff --git a/docs/libvirt-driver-arch.png b/docs/libvirt-driver-arch.png
new file mode 100644 (file)
index 0000000..a7e9678
Binary files /dev/null and b/docs/libvirt-driver-arch.png differ
diff --git a/docs/libvirt-object-model.fig b/docs/libvirt-object-model.fig
new file mode 100644 (file)
index 0000000..11ddaf9
--- /dev/null
@@ -0,0 +1,61 @@
+#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
diff --git a/docs/libvirt-object-model.png b/docs/libvirt-object-model.png
new file mode 100644 (file)
index 0000000..6cb1aa3
Binary files /dev/null and b/docs/libvirt-object-model.png differ
index 88b2fa7929a744b98c069b7bbf14b74e2655242a..4f1c92f911c9637c5dfa438373aa86a009a9be3b 100644 (file)
@@ -8,6 +8,22 @@
   <!-- 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
index a3f1792e6d87b68ce3b70d11a84c2ce7d873422d..78abebce718d04dfc9d561bae2b43bccf4f4f921 100644 (file)
             <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>
index db8a3649b8f3a18d344c522a8ea5a1d805a31db3..cabcdf0d789a65e91bb29d4ece80819ebb27c441 100644 (file)
                 <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>