mirror of https://gitee.com/openkylin/libvirt.git
* TODO: updated
* python/tests/Makefile.am: fix a small PYTHONPATH bug * docs//*: fixed the xsl a bit for toc names, added doc for the python bindings, regenerated Daniel
This commit is contained in:
parent
9a2ec00a05
commit
d3a15eb303
|
@ -1,3 +1,10 @@
|
|||
Tue Feb 21 14:21:39 CET 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* TODO: updated
|
||||
* python/tests/Makefile.am: fix a small PYTHONPATH bug
|
||||
* docs//*: fixed the xsl a bit for toc names, added doc for
|
||||
the python bindings, regenerated
|
||||
|
||||
Tue Feb 21 00:06:30 CET 2006 Daniel Veillard <veillard@redhat.com>
|
||||
|
||||
* src/libvirt.c src/xend_internal.c src/xend_internal.h: move the
|
||||
|
|
2
TODO
2
TODO
|
@ -11,6 +11,8 @@ TODO:
|
|||
- API for the Node: extracting informations, selecting scheduling policy
|
||||
- better resources allocation APIs (%CPU, set memory)
|
||||
- DTD/RNG/XSD schemas for the XML Domain descriptions
|
||||
- in python bindings raise an exception if a lookup or connection fails
|
||||
to return a non-None object
|
||||
|
||||
Probable TODOs:
|
||||
- event on big domain state change (create, crashed, paused, shutdown, destroy)
|
||||
|
|
|
@ -77,4 +77,4 @@
|
|||
via the pkg-config command line tool, like:</p>
|
||||
<p><code>pkg-config libvirt --libs</code></p>
|
||||
</li>
|
||||
</ol></div></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="index.html">Home</a></li><li><a href="news.html">Releases</a></li><li><a href="intro.html">Introduction</a></li><li><a href="architecture.html">libvirt architecture</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="format.html">XML Format</a></li><li><a href="FAQ.html"> FAQ</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="html/index.html">API Menu</a></li><li><a href="examples/index.html">C code examples</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
||||
</ol></div></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="index.html">Home</a></li><li><a href="news.html">Releases</a></li><li><a href="intro.html">Introduction</a></li><li><a href="architecture.html">libvirt architecture</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="format.html">XML Format</a></li><li><a href="python.html">Binding for Python</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="html/index.html">API Menu</a></li><li><a href="examples/index.html">C code examples</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
||||
|
|
|
@ -24,4 +24,4 @@ connect to initialize the library. It will try to open the read-only socket
|
|||
<code>/var/run/xenstored/socket_ro</code> to connect to the Xen Store and
|
||||
also try to use the RPC to the Xen daemon. In this case use of hypervisor
|
||||
calls and write to the Xen Store will not be possible, restraining the amount
|
||||
of APIs available and slowing down information gathering about domains.</p></div></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="index.html">Home</a></li><li><a href="news.html">Releases</a></li><li><a href="intro.html">Introduction</a></li><li><a href="architecture.html">libvirt architecture</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="format.html">XML Format</a></li><li><a href="FAQ.html"> FAQ</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="html/index.html">API Menu</a></li><li><a href="examples/index.html">C code examples</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
||||
of APIs available and slowing down information gathering about domains.</p></div></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="index.html">Home</a></li><li><a href="news.html">Releases</a></li><li><a href="intro.html">Introduction</a></li><li><a href="architecture.html">libvirt architecture</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="format.html">XML Format</a></li><li><a href="python.html">Binding for Python</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="html/index.html">API Menu</a></li><li><a href="examples/index.html">C code examples</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
||||
|
|
|
@ -7,4 +7,4 @@ page and follow the instructions. Patches with explanations and provided as
|
|||
attachments are really appreciated and will be discussed on the mailing list.
|
||||
If possible generate the patches by using cvs diff -u in a CVS checkout.</p><p>We expect to use <a href="https://bugzilla.redhat.com/">Red Hat
|
||||
Bugzilla</a> to track bugs for libvirt, though there isn't a libvirt software
|
||||
module defined yet, in the meantime use the mailing-list, thanks !.</p></div></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="index.html">Home</a></li><li><a href="news.html">Releases</a></li><li><a href="intro.html">Introduction</a></li><li><a href="architecture.html">libvirt architecture</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="format.html">XML Format</a></li><li><a href="FAQ.html"> FAQ</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="html/index.html">API Menu</a></li><li><a href="examples/index.html">C code examples</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
||||
module defined yet, in the meantime use the mailing-list, thanks !.</p></div></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="index.html">Home</a></li><li><a href="news.html">Releases</a></li><li><a href="intro.html">Introduction</a></li><li><a href="architecture.html">libvirt architecture</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="format.html">XML Format</a></li><li><a href="python.html">Binding for Python</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="html/index.html">API Menu</a></li><li><a href="examples/index.html">C code examples</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
||||
|
|
|
@ -7,4 +7,4 @@ available, first register onto the server:</p><p><code>cvs -d :pserver:anoncvs@l
|
|||
checkout the development tree with:</p><p><code>cvs -d :pserver:anoncvs@libvirt.org:2401/data/cvs co
|
||||
libvirt</code></p><p>Use ./autogen.sh to configure the local checkout, then <code>make</code>
|
||||
and <code>make install</code>, as usual. All normal cvs commands are now
|
||||
available except commiting to the base.</p></div></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="index.html">Home</a></li><li><a href="news.html">Releases</a></li><li><a href="intro.html">Introduction</a></li><li><a href="architecture.html">libvirt architecture</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="format.html">XML Format</a></li><li><a href="FAQ.html"> FAQ</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="html/index.html">API Menu</a></li><li><a href="examples/index.html">C code examples</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
||||
available except commiting to the base.</p></div></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="index.html">Home</a></li><li><a href="news.html">Releases</a></li><li><a href="intro.html">Introduction</a></li><li><a href="architecture.html">libvirt architecture</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="format.html">XML Format</a></li><li><a href="python.html">Binding for Python</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="html/index.html">API Menu</a></li><li><a href="examples/index.html">C code examples</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
||||
|
|
|
@ -65,4 +65,4 @@ children in no specific order:</p><ul><li>source: indicating the bridge name</li
|
|||
<li>target: and optional target indicating the device name.</li>
|
||||
</ul><p>While the format may be extended in various ways as support for more
|
||||
hypervisor types and features are added, it is expected that this core subset
|
||||
will remain functional in spite of the evolution of the library. </p></div></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="index.html">Home</a></li><li><a href="news.html">Releases</a></li><li><a href="intro.html">Introduction</a></li><li><a href="architecture.html">libvirt architecture</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="format.html">XML Format</a></li><li><a href="FAQ.html"> FAQ</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="html/index.html">API Menu</a></li><li><a href="examples/index.html">C code examples</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
||||
will remain functional in spite of the evolution of the library.</p></div></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="index.html">Home</a></li><li><a href="news.html">Releases</a></li><li><a href="intro.html">Introduction</a></li><li><a href="architecture.html">libvirt architecture</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="format.html">XML Format</a></li><li><a href="python.html">Binding for Python</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="html/index.html">API Menu</a></li><li><a href="examples/index.html">C code examples</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
||||
|
|
|
@ -49,6 +49,9 @@ mechanisms if needed.</p>
|
|||
<li>
|
||||
<a href="format.html">XML Format</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="python.html">Binding for Python</a>
|
||||
</li>
|
||||
<li>
|
||||
<a href="FAQ.html">FAQ</a>
|
||||
</li>
|
||||
|
|
|
@ -27,4 +27,4 @@ and for applications focusing on virtualization of a single node (the only
|
|||
exception being domain migration between node capabilities which may need to
|
||||
be added at the libvirt level). Where possible libvirt should be extendable
|
||||
to be able to provide the same API for remote nodes, however this is not the
|
||||
case at the moment, the code currently handle only local node accesses.</p></div></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="index.html">Home</a></li><li><a href="news.html">Releases</a></li><li><a href="intro.html">Introduction</a></li><li><a href="architecture.html">libvirt architecture</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="format.html">XML Format</a></li><li><a href="FAQ.html"> FAQ</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="html/index.html">API Menu</a></li><li><a href="examples/index.html">C code examples</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
||||
case at the moment, the code currently handle only local node accesses.</p></div></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="index.html">Home</a></li><li><a href="news.html">Releases</a></li><li><a href="intro.html">Introduction</a></li><li><a href="architecture.html">libvirt architecture</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="format.html">XML Format</a></li><li><a href="python.html">Binding for Python</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="html/index.html">API Menu</a></li><li><a href="examples/index.html">C code examples</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
||||
|
|
|
@ -263,6 +263,87 @@ children in no specific order:</p>
|
|||
hypervisor types and features are added, it is expected that this core subset
|
||||
will remain functional in spite of the evolution of the library.</p>
|
||||
|
||||
<h2><a name="Python" id="Python">Binding for Python</a></h2>
|
||||
|
||||
<p>Libvirt comes with direct support for the Python language (just make sure
|
||||
you installed the libvirt-python package if not compiling from sources). The
|
||||
Python binding should be complete and are mostly automatically generated from
|
||||
the formal description of the API in xml. The bindings are articulated around
|
||||
2 classes <code>virConnect</code> and virDomain mapping to the C types.
|
||||
Functions in the C API taking either type as argument then becomes methods
|
||||
for the classes, their name is just stripped from the virConnect or
|
||||
virDomain(Get) prefix and the first letter gets converted to lower case, for
|
||||
example the C functions:</p>
|
||||
|
||||
<p><code>int <a
|
||||
href="html/libvirt-libvirt.html#virConnectNumOfDomains">virConnectNumOfDomains</a>
|
||||
(virConnectPtr conn);</code></p>
|
||||
|
||||
<p><code>int <a
|
||||
href="html/libvirt-libvirt.html#virDomainSetMaxMemory">virDomainSetMaxMemory</a>
|
||||
(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
|
||||
in the file libvirtclass.txt present in the python dir or in the docs.There
|
||||
is a couple of function who don't map directly to their C counterparts due to
|
||||
specificities in their argument conversions:</p>
|
||||
<ul>
|
||||
<li><code><a
|
||||
href="html/libvirt-libvirt.html#virConnectListDomains">virConnectListDomains</a></code>
|
||||
is replaced by <code>virDomain::listDomainsID(self)</code> which returns
|
||||
a list of the integer ID for the currently running domains</li>
|
||||
<li><code><a
|
||||
href="html/libvirt-libvirt.html#virDomainGetInfo">virDomainGetInfo</a></code>
|
||||
is replaced by <code>virDomain::info()</code> which returns a list of
|
||||
<ol>
|
||||
<li>state: one of the state values (virDomainState)</li>
|
||||
<li>maxMemory: the maximum memory used by the domain</li>
|
||||
<li>memory: the current amount of memory used by the domain</li>
|
||||
<li>nbVirtCPU: the number of virtual CPU</li>
|
||||
<li>cpuTime: the time used by the domain in nanoseconds</li>
|
||||
</ol>
|
||||
</li>
|
||||
</ul>
|
||||
|
||||
<p>So let's look at a simple example inspired from the <code>basic.py</code>
|
||||
test found in <code>python/tests/</code> in the source tree:</p>
|
||||
<pre>import <span style="color: #0071FF; background-color: #FFFFFF">libvirt</span>
|
||||
import sys
|
||||
|
||||
conn = <span style="color: #0071FF; background-color: #FFFFFF">libvirt</span>.openReadOnly(None)
|
||||
if conn == None:
|
||||
print 'Failed to open connection to the hypervisor'
|
||||
sys.exit(1)
|
||||
|
||||
dom0 = conn.<span style="color: #007F00; background-color: #FFFFFF">lookupByName</span>("Domain-0")
|
||||
if dom0 == None:
|
||||
print 'Failed to find the main domain'
|
||||
sys.exit(1)
|
||||
|
||||
print "Domain 0: id %d running %s" % (dom0.<span style="color: #FF0080; background-color: #FFFFFF">ID</span>(), dom0.<span style="color: #FF0080; background-color: #FFFFFF">OSType</span>())
|
||||
print dom0.<span style="color: #FF0080; background-color: #FFFFFF">info</span>()</pre>
|
||||
|
||||
<p>There is not much to comment about it, it really is a straight mapping
|
||||
from the C API, the only points to notice are:</p>
|
||||
<ul>
|
||||
<li>the import of the module called <code><span
|
||||
style="color: #0071FF; background-color: #FFFFFF">libvirt</span></code></li>
|
||||
<li>getting a connection to the hypervisor, in that case using the
|
||||
openReadOnly function allows the code to execute as a normal user.</li>
|
||||
<li>getting an object representing the Domain 0 using <span
|
||||
style="color: #007F00; background-color: #FFFFFF">lookupByName</span></li>
|
||||
<li>extracting and printing some informations about the domain using
|
||||
various <span
|
||||
style="color: #E50073; background-color: #FFFFFF">methods</span>
|
||||
associated to the virDomain class.</li>
|
||||
</ul>
|
||||
|
||||
<h2><a name="FAQ" id="FAQ">FAQ</a></h2>
|
||||
|
||||
<p>Table of Contents:</p>
|
||||
|
|
|
@ -16,4 +16,4 @@ and check the <a href="ChangeLog.html">ChangeLog</a> to gauge progresses.</p><h3
|
|||
</ul><h3>0.0.1: Dec 19 2005</h3><ul><li>First release</li>
|
||||
<li>Basic management of existing Xen domains</li>
|
||||
<li>Minimal autogenerated Python bindings</li>
|
||||
</ul></div></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="index.html">Home</a></li><li><a href="news.html">Releases</a></li><li><a href="intro.html">Introduction</a></li><li><a href="architecture.html">libvirt architecture</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="format.html">XML Format</a></li><li><a href="FAQ.html"> FAQ</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="html/index.html">API Menu</a></li><li><a href="examples/index.html">C code examples</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
||||
</ul></div></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="index.html">Home</a></li><li><a href="news.html">Releases</a></li><li><a href="intro.html">Introduction</a></li><li><a href="architecture.html">libvirt architecture</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="format.html">XML Format</a></li><li><a href="python.html">Binding for Python</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="html/index.html">API Menu</a></li><li><a href="examples/index.html">C code examples</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
||||
|
|
|
@ -0,0 +1,50 @@
|
|||
<?xml version="1.0" encoding="ISO-8859-1"?>
|
||||
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
||||
<html xmlns="http://www.w3.org/1999/xhtml"><head><meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" /><link rel="stylesheet" type="text/css" href="libvirt.css" /><link rel="SHORTCUT ICON" href="/32favicon.png" /><title>Binding for Python</title></head><body><div id="container"><div id="intro"><div id="adjustments"></div><div id="pageHeader"></div><div id="content2"><h1 class="style1">Binding for Python</h1><p>Libvirt comes with direct support for the Python language (just make sure
|
||||
you installed the libvirt-python package if not compiling from sources). The
|
||||
Python binding should be complete and are mostly automatically generated from
|
||||
the formal description of the API in xml. The bindings are articulated around
|
||||
2 classes <code>virConnect</code> and virDomain mapping to the C types.
|
||||
Functions in the C API taking either type as argument then becomes methods
|
||||
for the classes, their name is just stripped from the virConnect or
|
||||
virDomain(Get) prefix and the first letter gets converted to lower case, for
|
||||
example the C functions:</p><p><code>int <a href="html/libvirt-libvirt.html#virConnectNumOfDomains">virConnectNumOfDomains</a>
|
||||
(virConnectPtr conn);</code></p><p><code>int <a href="html/libvirt-libvirt.html#virDomainSetMaxMemory">virDomainSetMaxMemory</a>
|
||||
(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
|
||||
in the file libvirtclass.txt present in the python dir or in the docs.There
|
||||
is a couple of function who don't map directly to their C counterparts due to
|
||||
specificities in their argument conversions:</p><ul><li><code><a href="html/libvirt-libvirt.html#virConnectListDomains">virConnectListDomains</a></code>
|
||||
is replaced by <code>virDomain::listDomainsID(self)</code> which returns
|
||||
a list of the integer ID for the currently running domains</li>
|
||||
<li><code><a href="html/libvirt-libvirt.html#virDomainGetInfo">virDomainGetInfo</a></code>
|
||||
is replaced by <code>virDomain::info()</code> which returns a list of
|
||||
<ol><li>state: one of the state values (virDomainState)</li>
|
||||
<li>maxMemory: the maximum memory used by the domain</li>
|
||||
<li>memory: the current amount of memory used by the domain</li>
|
||||
<li>nbVirtCPU: the number of virtual CPU</li>
|
||||
<li>cpuTime: the time used by the domain in nanoseconds</li>
|
||||
</ol></li>
|
||||
</ul><p>So let's look at a simple example inspired from the <code>basic.py</code>
|
||||
test found in <code>python/tests/</code> in the source tree:</p><pre>import <span style="color: #0071FF; background-color: #FFFFFF">libvirt</span>
|
||||
import sys
|
||||
|
||||
conn = <span style="color: #0071FF; background-color: #FFFFFF">libvirt</span>.openReadOnly(None)
|
||||
if conn == None:
|
||||
print 'Failed to open connection to the hypervisor'
|
||||
sys.exit(1)
|
||||
|
||||
dom0 = conn.<span style="color: #007F00; background-color: #FFFFFF">lookupByName</span>("Domain-0")
|
||||
if dom0 == None:
|
||||
print 'Failed to find the main domain'
|
||||
sys.exit(1)
|
||||
|
||||
print "Domain 0: id %d running %s" % (dom0.<span style="color: #FF0080; background-color: #FFFFFF">ID</span>(), dom0.<span style="color: #FF0080; background-color: #FFFFFF">OSType</span>())
|
||||
print dom0.<span style="color: #FF0080; background-color: #FFFFFF">info</span>()</pre><p>There is not much to comment about it, it really is a straight mapping
|
||||
from the C API, the only points to notice are:</p><ul><li>the import of the module called <code><span style="color: #0071FF; background-color: #FFFFFF">libvirt</span></code></li>
|
||||
<li>getting a connection to the hypervisor, in that case using the
|
||||
openReadOnly function allows the code to execute as a normal user.</li>
|
||||
<li>getting an object representing the Domain 0 using <span style="color: #007F00; background-color: #FFFFFF">lookupByName</span></li>
|
||||
<li>extracting and printing some informations about the domain using
|
||||
various <span style="color: #E50073; background-color: #FFFFFF">methods</span>
|
||||
associated to the virDomain class.</li>
|
||||
</ul></div></div><div class="linkList2"><div class="llinks2"><h3 class="links2"><span>main menu</span></h3><ul><li><a href="index.html">Home</a></li><li><a href="news.html">Releases</a></li><li><a href="intro.html">Introduction</a></li><li><a href="architecture.html">libvirt architecture</a></li><li><a href="downloads.html">Downloads</a></li><li><a href="format.html">XML Format</a></li><li><a href="python.html">Binding for Python</a></li><li><a href="FAQ.html">FAQ</a></li><li><a href="bugs.html">Reporting bugs and getting help</a></li><li><a href="html/index.html">API Menu</a></li><li><a href="examples/index.html">C code examples</a></li><li><a href="ChangeLog.html">Recent Changes</a></li></ul></div><div class="llinks2"><h3 class="links2"><span>related links</span></h3><ul><li><a href="https://www.redhat.com/archives/libvir-list/">Mail archive</a></li><li><a href="http://www.cl.cam.ac.uk/Research/SRG/netos/xen/index.html">Xen project</a></li><li><form action="search.php" enctype="application/x-www-form-urlencoded" method="get"><input name="query" type="text" size="12" value="Search..." /><input name="submit" type="submit" value="Go" /></form></li><li><a href="http://xmlsoft.org/"><img src="Libxml2-Logo-90x34.gif" alt="Made with Libxml2 Logo" /></a></li></ul><p class="credits">Graphics and design by <a href="mail:dfong@redhat.com">Diana Fong</a></p></div></div><div id="bottom"><p class="p1"></p></div></div></body></html>
|
157
docs/site.xsl
157
docs/site.xsl
|
@ -9,104 +9,6 @@
|
|||
<!--
|
||||
- returns the filename associated to an ID in the original file
|
||||
-->
|
||||
<xsl:template name="tocfilename">
|
||||
<xsl:param name="name" select="string(@href)"/>
|
||||
<xsl:choose>
|
||||
<xsl:when test="$name = '#Introducti'">
|
||||
<xsl:text>intro.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#Documentat'">
|
||||
<xsl:text>docs.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#Reporting'">
|
||||
<xsl:text>bugs.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#help'">
|
||||
<xsl:text>help.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#Help'">
|
||||
<xsl:text>help.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#Downloads'">
|
||||
<xsl:text>downloads.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#News'">
|
||||
<xsl:text>news.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#Contributi'">
|
||||
<xsl:text>contribs.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#Format'">
|
||||
<xsl:text>format.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#API'">
|
||||
<xsl:text></xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#XSLT'">
|
||||
<xsl:text>XSLT.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#XML'">
|
||||
<xsl:text>XMLinfo.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#Validation'">
|
||||
<xsl:text>xmldtd.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#tree'">
|
||||
<xsl:text></xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#library'">
|
||||
<xsl:text></xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#interface'">
|
||||
<xsl:text></xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#Example'">
|
||||
<xsl:text></xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#Entities'">
|
||||
<xsl:text></xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#architecture'">
|
||||
<xsl:text>architecture.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#Namespaces'">
|
||||
<xsl:text>namespaces.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#DOM'">
|
||||
<xsl:text></xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#Catalog'">
|
||||
<xsl:text>catalog.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#Upgrading'">
|
||||
<xsl:text></xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#Encodings'">
|
||||
<xsl:text>encoding.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#IO'">
|
||||
<xsl:text></xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#Memory'">
|
||||
<xsl:text></xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#Thread'">
|
||||
<xsl:text></xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#FAQ'">
|
||||
<xsl:text>FAQ.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#Python'">
|
||||
<xsl:text></xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = ''">
|
||||
<xsl:text>unknown.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:otherwise>
|
||||
<xsl:value-of select="$name"/>
|
||||
</xsl:otherwise>
|
||||
</xsl:choose>
|
||||
</xsl:template>
|
||||
<xsl:template name="filename">
|
||||
<xsl:param name="name" select="string(@href)"/>
|
||||
<xsl:choose>
|
||||
|
@ -137,66 +39,15 @@
|
|||
<xsl:when test="$name = '#Format'">
|
||||
<xsl:text>format.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#API'">
|
||||
<xsl:text></xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#XSLT'">
|
||||
<xsl:text>XSLT.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#XML'">
|
||||
<xsl:text>XMLinfo.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#Validation'">
|
||||
<xsl:text>xmldtd.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#tree'">
|
||||
<xsl:text></xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#library'">
|
||||
<xsl:text></xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#interface'">
|
||||
<xsl:text></xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#Example'">
|
||||
<xsl:text></xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#Entities'">
|
||||
<xsl:text></xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#architecture'">
|
||||
<xsl:text>architecture.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#Namespaces'">
|
||||
<xsl:text>namespaces.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#DOM'">
|
||||
<xsl:text></xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#Catalog'">
|
||||
<xsl:text>catalog.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#Upgrading'">
|
||||
<xsl:text></xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#Encodings'">
|
||||
<xsl:text>encoding.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#IO'">
|
||||
<xsl:text></xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#Memory'">
|
||||
<xsl:text></xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#Thread'">
|
||||
<xsl:text></xsl:text>
|
||||
<xsl:when test="$name = '#Python'">
|
||||
<xsl:text>python.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#FAQ'">
|
||||
<xsl:text>FAQ.html</xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = '#Python'">
|
||||
<xsl:text></xsl:text>
|
||||
</xsl:when>
|
||||
<xsl:when test="$name = ''">
|
||||
<xsl:text>unknown.html</xsl:text>
|
||||
</xsl:when>
|
||||
|
@ -221,7 +72,7 @@
|
|||
<li>Home</li>
|
||||
<xsl:for-each select="/html/body/h2">
|
||||
<xsl:variable name="filename">
|
||||
<xsl:call-template name="tocfilename">
|
||||
<xsl:call-template name="filename">
|
||||
<xsl:with-param name="name" select="concat('#', string(a[1]/@name))"/>
|
||||
</xsl:call-template>
|
||||
</xsl:variable>
|
||||
|
@ -267,7 +118,7 @@
|
|||
<li><a href="{$href_base}index.html">Home</a></li>
|
||||
<xsl:for-each select="/html/body/h2">
|
||||
<xsl:variable name="filename">
|
||||
<xsl:call-template name="tocfilename">
|
||||
<xsl:call-template name="filename">
|
||||
<xsl:with-param name="name" select="concat('#', string(a[1]/@name))"/>
|
||||
</xsl:call-template>
|
||||
</xsl:variable>
|
||||
|
|
|
@ -8,7 +8,7 @@ EXTRA_DIST = $(PYTESTS)
|
|||
if WITH_PYTHON
|
||||
tests: $(PYTESTS)
|
||||
@echo "## running Python regression tests"
|
||||
-@(PYTHONPATH="..:../src/.libs:$(srcdir)/../src:$$PYTHONPATH" ; \
|
||||
-@(PYTHONPATH="..:../.libs:../src/.libs:$(srcdir)/../src:$$PYTHONPATH";\
|
||||
export PYTHONPATH; \
|
||||
LD_LIBRARY_PATH="$(top_builddir)/src/.libs:$$LD_LIBRARY_PATH" ; \
|
||||
export LD_LIBRARY_PATH; \
|
||||
|
|
Loading…
Reference in New Issue