Added public API for authentication credential callback support

This commit is contained in:
Daniel P. Berrange 2007-12-05 18:28:05 +00:00
parent 282342c1c5
commit 7fa9ceb740
26 changed files with 611 additions and 99 deletions

View File

@ -1,3 +1,15 @@
Wed Dec 5 13:27:00 EST 2007 Daniel P. Berrange <berrange@redhat.com>
* Makefile.am: Put include/ before src/ in SUBDIRS
* docs/*: updated for new public API
* include/libvirt.h.in: Added virConnectOpenAuth and related
definitions for authentication callbacks.
* proxy/libvirt_proxy.c, src/openvz_driver.c, src/proxy_internal.c,
src/qemu_driver.c, src/test.c, src/xen_internal.c, src/xen_unified.c,
src/xend_internal.c, src/xend_internal.h, src/xm_internal.c,
src/xm_internal.h, src/xs_internal.c, src/xs_internal.h,
src/remote_internal.c: Update for new auth arg to the open API
Wed Dec 5 13:20:00 EST 2007 Daniel P. Berrange <berrange@redhat.com>
* configure.in: do PolicyKit checks via pkg-config

View File

@ -1,6 +1,6 @@
## Process this file with automake to produce Makefile.in
SUBDIRS = src qemud proxy include docs @PYTHON_SUBDIR@ tests po m4 scripts
SUBDIRS = include src qemud proxy docs @PYTHON_SUBDIR@ tests po m4 scripts
ACLOCAL_AMFLAGS = -I m4

View File

@ -61,19 +61,26 @@ typedef struct _virDomainInterfaceStats <a href="#virDomainInterfaceStatsStruct"
typedef enum <a href="#virDomainState">virDomainState</a>;
typedef struct _virDomain <a href="#virDomain">virDomain</a>;
typedef <a href="libvirt-libvirt.html#virDomainInterfaceStatsStruct">virDomainInterfaceStatsStruct</a> * <a href="#virDomainInterfaceStatsPtr">virDomainInterfaceStatsPtr</a>;
typedef <a href="libvirt-libvirt.html#virConnectAuth">virConnectAuth</a> * <a href="#virConnectAuthPtr">virConnectAuthPtr</a>;
typedef enum <a href="#virSchedParameterType">virSchedParameterType</a>;
typedef <a href="libvirt-libvirt.html#virSchedParameter">virSchedParameter</a> * <a href="#virSchedParameterPtr">virSchedParameterPtr</a>;
typedef <a href="libvirt-libvirt.html#virConnectCredential">virConnectCredential</a> * <a href="#virConnectCredentialPtr">virConnectCredentialPtr</a>;
typedef <a href="libvirt-libvirt.html#virNodeInfo">virNodeInfo</a> * <a href="#virNodeInfoPtr">virNodeInfoPtr</a>;
typedef <a href="libvirt-libvirt.html#virNetwork">virNetwork</a> * <a href="#virNetworkPtr">virNetworkPtr</a>;
typedef <a href="libvirt-libvirt.html#virDomainInfo">virDomainInfo</a> * <a href="#virDomainInfoPtr">virDomainInfoPtr</a>;
typedef <a href="libvirt-libvirt.html#virConnect">virConnect</a> * <a href="#virConnectPtr">virConnectPtr</a>;
typedef struct _virSchedParameter <a href="#virSchedParameter">virSchedParameter</a>;
typedef enum <a href="#virConnectFlags">virConnectFlags</a>;
typedef <a href="libvirt-libvirt.html#virSchedParameter">virSchedParameter</a> * <a href="#virSchedParameterPtr">virSchedParameterPtr</a>;
typedef enum <a href="#virVcpuState">virVcpuState</a>;
typedef struct _virConnectAuth <a href="#virConnectAuth">virConnectAuth</a>;
typedef struct _virConnectCredential <a href="#virConnectCredential">virConnectCredential</a>;
typedef <a href="libvirt-libvirt.html#virVcpuInfo">virVcpuInfo</a> * <a href="#virVcpuInfoPtr">virVcpuInfoPtr</a>;
typedef enum <a href="#virDomainXMLFlags">virDomainXMLFlags</a>;
typedef <a href="libvirt-libvirt.html#virDomain">virDomain</a> * <a href="#virDomainPtr">virDomainPtr</a>;
typedef enum <a href="#virConnectCredentialType">virConnectCredentialType</a>;
typedef enum <a href="#virDomainCreateFlags">virDomainCreateFlags</a>;
int <a href="#virDomainGetInfo">virDomainGetInfo</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br/> <a href="libvirt-libvirt.html#virDomainInfoPtr">virDomainInfoPtr</a> info);
int <a href="#virNetworkCreate">virNetworkCreate</a> (<a href="libvirt-libvirt.html#virNetworkPtr">virNetworkPtr</a> network);
int <a href="#virNetworkFree">virNetworkFree</a> (<a href="libvirt-libvirt.html#virNetworkPtr">virNetworkPtr</a> network);
const char * <a href="#virNetworkGetName">virNetworkGetName</a> (<a href="libvirt-libvirt.html#virNetworkPtr">virNetworkPtr</a> network);
const char * <a href="#virDomainGetName">virDomainGetName</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain);
@ -88,6 +95,7 @@ int <a href="#virInitialize">virInitialize</a> (void);
<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> <a href="#virDomainLookupByName">virDomainLookupByName</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/> const char * name);
<a href="libvirt-libvirt.html#virNetworkPtr">virNetworkPtr</a> <a href="#virNetworkLookupByUUID">virNetworkLookupByUUID</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/> const unsigned char * uuid);
char * <a href="#virNetworkGetBridgeName">virNetworkGetBridgeName</a> (<a href="libvirt-libvirt.html#virNetworkPtr">virNetworkPtr</a> network);
char * <a href="#virNetworkGetXMLDesc">virNetworkGetXMLDesc</a> (<a href="libvirt-libvirt.html#virNetworkPtr">virNetworkPtr</a> network, <br/> int flags);
int <a href="#virDomainPinVcpu">virDomainPinVcpu</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br/> unsigned int vcpu, <br/> unsigned char * cpumap, <br/> int maplen);
int <a href="#virDomainRestore">virDomainRestore</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/> const char * from);
const char * <a href="#virConnectGetType">virConnectGetType</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn);
@ -119,21 +127,20 @@ int <a href="#virDomainFree">virDomainFree</a> (<a href="libvirt-libvirt.html#
int <a href="#virDomainSetAutostart">virDomainSetAutostart</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br/> int autostart);
int <a href="#virDomainSuspend">virDomainSuspend</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain);
int <a href="#virConnectGetMaxVcpus">virConnectGetMaxVcpus</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/> const char * type);
<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> <a href="#virNetworkGetConnect">virNetworkGetConnect</a> (<a href="libvirt-libvirt.html#virNetworkPtr">virNetworkPtr</a> net);
int <a href="#virConnectNumOfDefinedDomains">virConnectNumOfDefinedDomains</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn);
<a href="libvirt-libvirt.html#virNetworkPtr">virNetworkPtr</a> <a href="#virNetworkCreateXML">virNetworkCreateXML</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/> const char * xmlDesc);
<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> <a href="#virNetworkGetConnect">virNetworkGetConnect</a> (<a href="libvirt-libvirt.html#virNetworkPtr">virNetworkPtr</a> net);
<a href="libvirt-libvirt.html#virNetworkPtr">virNetworkPtr</a> <a href="#virNetworkDefineXML">virNetworkDefineXML</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/> const char * xml);
int <a href="#virNetworkCreate">virNetworkCreate</a> (<a href="libvirt-libvirt.html#virNetworkPtr">virNetworkPtr</a> network);
<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> <a href="#virDomainLookupByID">virDomainLookupByID</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/> int id);
int <a href="#virDomainSetSchedulerParameters">virDomainSetSchedulerParameters</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br/> <a href="libvirt-libvirt.html#virSchedParameterPtr">virSchedParameterPtr</a> params, <br/> int nparams);
int <a href="#virNodeGetCellsFreeMemory">virNodeGetCellsFreeMemory</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/> unsigned long long * freeMems, <br/> int startCell, <br/> int maxCells);
int <a href="#virConnectClose">virConnectClose</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn);
int <a href="#virDomainReboot">virDomainReboot</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br/> unsigned int flags);
int <a href="#virDomainBlockStats">virDomainBlockStats</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> dom, <br/> const char * path, <br/> <a href="libvirt-libvirt.html#virDomainBlockStatsPtr">virDomainBlockStatsPtr</a> stats, <br/> size_t size);
int <a href="#virDomainSetVcpus">virDomainSetVcpus</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br/> unsigned int nvcpus);
<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> <a href="#virDomainLookupByID">virDomainLookupByID</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/> int id);
<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> <a href="#virConnectOpenAuth">virConnectOpenAuth</a> (const char * name, <br/> <a href="libvirt-libvirt.html#virConnectAuthPtr">virConnectAuthPtr</a> auth, <br/> int flags);
int <a href="#virNetworkGetUUIDString">virNetworkGetUUIDString</a> (<a href="libvirt-libvirt.html#virNetworkPtr">virNetworkPtr</a> network, <br/> char * buf);
<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> <a href="#virDomainMigrate">virDomainMigrate</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br/> <a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> dconn, <br/> unsigned long flags, <br/> const char * dname, <br/> const char * uri, <br/> unsigned long bandwidth);
char * <a href="#virNetworkGetXMLDesc">virNetworkGetXMLDesc</a> (<a href="libvirt-libvirt.html#virNetworkPtr">virNetworkPtr</a> network, <br/> int flags);
<a href="libvirt-libvirt.html#virNetworkPtr">virNetworkPtr</a> <a href="#virNetworkCreateXML">virNetworkCreateXML</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/> const char * xmlDesc);
unsigned int <a href="#virDomainGetID">virDomainGetID</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain);
int <a href="#virDomainResume">virDomainResume</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain);
<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> <a href="#virDomainCreateLinux">virDomainCreateLinux</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/> const char * xmlDesc, <br/> unsigned int flags);
@ -149,6 +156,7 @@ char * <a href="#virConnectGetHostname">virConnectGetHostname</a> (<a href="lib
char * <a href="#virDomainGetXMLDesc">virDomainGetXMLDesc</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br/> int flags);
int <a href="#virDomainSetMaxMemory">virDomainSetMaxMemory</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> domain, <br/> unsigned long memory);
int <a href="#virDomainInterfaceStats">virDomainInterfaceStats</a> (<a href="libvirt-libvirt.html#virDomainPtr">virDomainPtr</a> dom, <br/> const char * path, <br/> <a href="libvirt-libvirt.html#virDomainInterfaceStatsPtr">virDomainInterfaceStatsPtr</a> stats, <br/> size_t size);
typedef int <a href="#virConnectAuthCallbackPtr">virConnectAuthCallbackPtr</a> (<a href="libvirt-libvirt.html#virConnectCredentialPtr">virConnectCredentialPtr</a> cred, <br/> unsigned int ncred, <br/> void * cbdata);
int <a href="#virConnectGetVersion">virConnectGetVersion</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/> unsigned long * hvVer);
int <a href="#virConnectListNetworks">virConnectListNetworks</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn, <br/> char ** const names, <br/> int maxnames);
char * <a href="#virConnectGetURI">virConnectGetURI</a> (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn);
@ -210,6 +218,54 @@ int <a href="#virDomainSave">virDomainSave</a> (<a href="libvirt-libvirt.html#
The content of this structure is not made public by the API.
} virConnect;
</pre><p/>
</div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="virConnectAuth">Structure </a>virConnectAuth</h3><pre class="programlisting">struct _virConnectAuth {
int * credtype : List of supported <a href="libvirt-libvirt.html#virConnectCredentialType">virConnectCredentialType</a> values
unsigned int ncredtype
<a href="libvirt-libvirt.html#virConnectAuthCallbackPtr">virConnectAuthCallbackPtr</a> cb : Callback used to collect credentials
void * cbdata
} virConnectAuth;
</pre><p/>
</div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="virConnectAuthPtr">Typedef </a>virConnectAuthPtr</h3><pre class="programlisting"><a href="libvirt-libvirt.html#virConnectAuth">virConnectAuth</a> * virConnectAuthPtr;
</pre><p/>
</div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="virConnectCredential">Structure </a>virConnectCredential</h3><pre class="programlisting">struct _virConnectCredential {
int type : One of <a href="libvirt-libvirt.html#virConnectCredentialType">virConnectCredentialType</a> constants
const char * prompt : Prompt to show to user
const char * challenge : Additional challenge to show
const char * defresult : Optional default result
char * result : Result to be filled with user response (or defresult)
unsigned int resultlen : Length of the result
} virConnectCredential;
</pre><p/>
</div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="virConnectCredentialPtr">Typedef </a>virConnectCredentialPtr</h3><pre class="programlisting"><a href="libvirt-libvirt.html#virConnectCredential">virConnectCredential</a> * virConnectCredentialPtr;
</pre><p/>
</div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="virConnectCredentialType">Enum </a>virConnectCredentialType</h3><pre class="programlisting">enum <a href="#virConnectCredentialType">virConnectCredentialType</a> {
<a name="VIR_CRED_USERNAME">VIR_CRED_USERNAME</a> = 1 /* Identity to act as */
<a name="VIR_CRED_AUTHNAME">VIR_CRED_AUTHNAME</a> = 2 /* Identify to authorize as */
<a name="VIR_CRED_LANGUAGE">VIR_CRED_LANGUAGE</a> = 3 /* RFC 1766 languages, comma separated */
<a name="VIR_CRED_CNONCE">VIR_CRED_CNONCE</a> = 4 /* client supplies a nonce */
<a name="VIR_CRED_PASSPHRASE">VIR_CRED_PASSPHRASE</a> = 5 /* Passphrase secret */
<a name="VIR_CRED_ECHOPROMPT">VIR_CRED_ECHOPROMPT</a> = 6 /* Challenge response */
<a name="VIR_CRED_NOECHOPROMPT">VIR_CRED_NOECHOPROMPT</a> = 7 /* Challenge response */
<a name="VIR_CRED_REALM">VIR_CRED_REALM</a> = 8 /* Authentication realm */
<a name="VIR_CRED_EXTERNAL">VIR_CRED_EXTERNAL</a> = 9 /* Externally managed credential More may be added - expect the unexpected */
};
</pre><p/>
</div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="virConnectFlags">Enum </a>virConnectFlags</h3><pre class="programlisting">enum <a href="#virConnectFlags">virConnectFlags</a> {
<a name="VIR_CONNECT_RO">VIR_CONNECT_RO</a> = 1 /* A readonly connection */
};
</pre><p/>
</div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="virConnectPtr">Typedef </a>virConnectPtr</h3><pre class="programlisting"><a href="libvirt-libvirt.html#virConnect">virConnect</a> * virConnectPtr;
@ -370,6 +426,14 @@ The content of this structure is not made public by the API.
<a name="VIR_VCPU_BLOCKED">VIR_VCPU_BLOCKED</a> = 2 /* the virtual CPU is blocked on resource */
};
</pre><p/>
</div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="virConnectAuthCallbackPtr"/>Function type virConnectAuthCallbackPtr</h3><pre class="programlisting">int virConnectAuthCallbackPtr (<a href="libvirt-libvirt.html#virConnectCredentialPtr">virConnectCredentialPtr</a> cred, <br/> unsigned int ncred, <br/> void * cbdata)<br/>
</pre><p/>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>cred</tt></i>:</span></td><td/></tr><tr><td><span class="term"><i><tt>ncred</tt></i>:</span></td><td/></tr><tr><td><span class="term"><i><tt>cbdata</tt></i>:</span></td><td/></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td/></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="virConnectAuthPtrDefault">Variable </a>virConnectAuthPtrDefault</h3><pre class="programlisting"><a href="libvirt-libvirt.html#virConnectAuthPtr">virConnectAuthPtr</a> virConnectAuthPtrDefault;
</pre><p/>
</div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="virConnectClose"/>virConnectClose ()</h3><pre class="programlisting">int virConnectClose (<a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> conn)<br/>
@ -435,6 +499,10 @@ The content of this structure is not made public by the API.
<div class="refsect2" lang="en"><h3><a name="virConnectOpen"/>virConnectOpen ()</h3><pre class="programlisting"><a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> virConnectOpen (const char * name)<br/>
</pre><p>This function should be called first to get a connection to the Hypervisor and xen store</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>URI of the hypervisor</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the hypervisor connection or NULL in case of error URIs are documented at http://libvirt.org/uri.html</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="virConnectOpenAuth"/>virConnectOpenAuth ()</h3><pre class="programlisting"><a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> virConnectOpenAuth (const char * name, <br/> <a href="libvirt-libvirt.html#virConnectAuthPtr">virConnectAuthPtr</a> auth, <br/> int flags)<br/>
</pre><p>This function should be called first to get a connection to the Hypervisor. If neccessary, authentication will be performed fetching credentials via the callback</p>
<div class="variablelist"><table border="0"><col align="left"/><tbody><tr><td><span class="term"><i><tt>name</tt></i>:</span></td><td>URI of the hypervisor</td></tr><tr><td><span class="term"><i><tt>auth</tt></i>:</span></td><td>Authenticate callback parameters</td></tr><tr><td><span class="term"><i><tt>flags</tt></i>:</span></td><td>Open flags</td></tr><tr><td><span class="term"><i><tt>Returns</tt></i>:</span></td><td>a pointer to the hypervisor connection or NULL in case of error URIs are documented at http://libvirt.org/uri.html</td></tr></tbody></table></div></div>
<hr/>
<div class="refsect2" lang="en"><h3><a name="virConnectOpenReadOnly"/>virConnectOpenReadOnly ()</h3><pre class="programlisting"><a href="libvirt-libvirt.html#virConnectPtr">virConnectPtr</a> virConnectOpenReadOnly (const char * name)<br/>
</pre><p>This function should be called first to get a restricted connection to the libbrary functionalities. The set of APIs usable are then restricted on the available methods to control the domains.</p>

View File

@ -154,7 +154,8 @@ void <a href="#virConnResetLastError">virConnResetLastError</a> (<a href="libvi
<a name="VIR_WAR_NO_NETWORK">VIR_WAR_NO_NETWORK</a> = 41 /* failed to start network */
<a name="VIR_ERR_NO_DOMAIN">VIR_ERR_NO_DOMAIN</a> = 42 /* domain not found or unexpectedly disappeared */
<a name="VIR_ERR_NO_NETWORK">VIR_ERR_NO_NETWORK</a> = 43 /* network not found */
<a name="VIR_ERR_INVALID_MAC">VIR_ERR_INVALID_MAC</a> = 44 /* invalid MAC adress */
<a name="VIR_ERR_INVALID_MAC">VIR_ERR_INVALID_MAC</a> = 44 /* invalid MAC adress */
<a name="VIR_ERR_AUTH_FAILED">VIR_ERR_AUTH_FAILED</a> = 45 /* authentication failed */
};
</pre><p/>
</div>

View File

@ -16,26 +16,36 @@
<exports symbol='VIR_UUID_STRING_BUFLEN' type='macro'/>
<exports symbol='VIR_GET_CPUMAP' type='macro'/>
<exports symbol='VIR_UNUSE_CPU' type='macro'/>
<exports symbol='VIR_DOMAIN_SHUTOFF' type='enum'/>
<exports symbol='VIR_DOMAIN_SCHED_FIELD_DOUBLE' type='enum'/>
<exports symbol='VIR_DOMAIN_SCHED_FIELD_ULLONG' type='enum'/>
<exports symbol='VIR_VCPU_OFFLINE' type='enum'/>
<exports symbol='VIR_DOMAIN_XML_INACTIVE' type='enum'/>
<exports symbol='VIR_DOMAIN_SCHED_FIELD_BOOLEAN' type='enum'/>
<exports symbol='VIR_DOMAIN_SCHED_FIELD_UINT' type='enum'/>
<exports symbol='VIR_MIGRATE_LIVE' type='enum'/>
<exports symbol='VIR_DOMAIN_SCHED_FIELD_INT' type='enum'/>
<exports symbol='VIR_VCPU_RUNNING' type='enum'/>
<exports symbol='VIR_DOMAIN_CRASHED' type='enum'/>
<exports symbol='VIR_DOMAIN_NONE' type='enum'/>
<exports symbol='VIR_CRED_EXTERNAL' type='enum'/>
<exports symbol='VIR_DOMAIN_SHUTDOWN' type='enum'/>
<exports symbol='VIR_VCPU_BLOCKED' type='enum'/>
<exports symbol='VIR_DOMAIN_NOSTATE' type='enum'/>
<exports symbol='VIR_DOMAIN_PAUSED' type='enum'/>
<exports symbol='VIR_DOMAIN_SCHED_FIELD_UINT' type='enum'/>
<exports symbol='VIR_CRED_CNONCE' type='enum'/>
<exports symbol='VIR_CRED_ECHOPROMPT' type='enum'/>
<exports symbol='VIR_DOMAIN_SCHED_FIELD_DOUBLE' type='enum'/>
<exports symbol='VIR_DOMAIN_SCHED_FIELD_LLONG' type='enum'/>
<exports symbol='VIR_CONNECT_RO' type='enum'/>
<exports symbol='VIR_CRED_AUTHNAME' type='enum'/>
<exports symbol='VIR_CRED_LANGUAGE' type='enum'/>
<exports symbol='VIR_CRED_NOECHOPROMPT' type='enum'/>
<exports symbol='VIR_DOMAIN_SCHED_FIELD_BOOLEAN' type='enum'/>
<exports symbol='VIR_MIGRATE_LIVE' type='enum'/>
<exports symbol='VIR_CRED_USERNAME' type='enum'/>
<exports symbol='VIR_VCPU_OFFLINE' type='enum'/>
<exports symbol='VIR_DOMAIN_RUNNING' type='enum'/>
<exports symbol='VIR_DOMAIN_XML_SECURE' type='enum'/>
<exports symbol='VIR_DOMAIN_BLOCKED' type='enum'/>
<exports symbol='VIR_DOMAIN_SHUTOFF' type='enum'/>
<exports symbol='VIR_VCPU_BLOCKED' type='enum'/>
<exports symbol='VIR_DOMAIN_SCHED_FIELD_INT' type='enum'/>
<exports symbol='VIR_DOMAIN_SCHED_FIELD_ULLONG' type='enum'/>
<exports symbol='VIR_CRED_REALM' type='enum'/>
<exports symbol='VIR_VCPU_RUNNING' type='enum'/>
<exports symbol='VIR_DOMAIN_PAUSED' type='enum'/>
<exports symbol='VIR_DOMAIN_CRASHED' type='enum'/>
<exports symbol='VIR_DOMAIN_XML_INACTIVE' type='enum'/>
<exports symbol='VIR_DOMAIN_NONE' type='enum'/>
<exports symbol='VIR_DOMAIN_NOSTATE' type='enum'/>
<exports symbol='VIR_CRED_PASSPHRASE' type='enum'/>
<exports symbol='VIR_DOMAIN_XML_SECURE' type='enum'/>
<exports symbol='virDomainBlockStatsStruct' type='typedef'/>
<exports symbol='virDomainMigrateFlags' type='typedef'/>
<exports symbol='virNodeInfo' type='typedef'/>
@ -48,25 +58,35 @@
<exports symbol='virDomainState' type='typedef'/>
<exports symbol='virDomain' type='typedef'/>
<exports symbol='virDomainInterfaceStatsPtr' type='typedef'/>
<exports symbol='virConnectAuthPtr' type='typedef'/>
<exports symbol='virSchedParameterType' type='typedef'/>
<exports symbol='virSchedParameterPtr' type='typedef'/>
<exports symbol='virConnectCredentialPtr' type='typedef'/>
<exports symbol='virNodeInfoPtr' type='typedef'/>
<exports symbol='virNetworkPtr' type='typedef'/>
<exports symbol='virDomainInfoPtr' type='typedef'/>
<exports symbol='virConnectPtr' type='typedef'/>
<exports symbol='virSchedParameter' type='typedef'/>
<exports symbol='virConnectFlags' type='typedef'/>
<exports symbol='virSchedParameterPtr' type='typedef'/>
<exports symbol='virVcpuState' type='typedef'/>
<exports symbol='virConnectAuth' type='typedef'/>
<exports symbol='virConnectCredential' type='typedef'/>
<exports symbol='virVcpuInfoPtr' type='typedef'/>
<exports symbol='virDomainXMLFlags' type='typedef'/>
<exports symbol='virDomainPtr' type='typedef'/>
<exports symbol='virConnectCredentialType' type='typedef'/>
<exports symbol='virDomainCreateFlags' type='typedef'/>
<exports symbol='_virDomainInfo' type='struct'/>
<exports symbol='_virDomainInterfaceStats' type='struct'/>
<exports symbol='_virConnectAuth' type='struct'/>
<exports symbol='_virVcpuInfo' type='struct'/>
<exports symbol='_virSchedParameter' type='struct'/>
<exports symbol='_virDomainInterfaceStats' type='struct'/>
<exports symbol='_virConnectCredential' type='struct'/>
<exports symbol='_virDomainBlockStats' type='struct'/>
<exports symbol='_virNodeInfo' type='struct'/>
<exports symbol='_virSchedParameter' type='struct'/>
<exports symbol='virConnectAuthPtrDefault' type='variable'/>
<exports symbol='virDomainGetInfo' type='function'/>
<exports symbol='virNetworkCreate' type='function'/>
<exports symbol='virNetworkFree' type='function'/>
<exports symbol='virNetworkGetName' type='function'/>
<exports symbol='virDomainGetName' type='function'/>
@ -81,6 +101,7 @@
<exports symbol='virDomainLookupByName' type='function'/>
<exports symbol='virNetworkLookupByUUID' type='function'/>
<exports symbol='virNetworkGetBridgeName' type='function'/>
<exports symbol='virNetworkGetXMLDesc' type='function'/>
<exports symbol='virDomainPinVcpu' type='function'/>
<exports symbol='virDomainRestore' type='function'/>
<exports symbol='virConnectGetType' type='function'/>
@ -112,21 +133,20 @@
<exports symbol='virDomainSetAutostart' type='function'/>
<exports symbol='virDomainSuspend' type='function'/>
<exports symbol='virConnectGetMaxVcpus' type='function'/>
<exports symbol='virNetworkGetConnect' type='function'/>
<exports symbol='virConnectNumOfDefinedDomains' type='function'/>
<exports symbol='virNetworkCreateXML' type='function'/>
<exports symbol='virNetworkGetConnect' type='function'/>
<exports symbol='virNetworkDefineXML' type='function'/>
<exports symbol='virNetworkCreate' type='function'/>
<exports symbol='virDomainLookupByID' type='function'/>
<exports symbol='virDomainSetSchedulerParameters' type='function'/>
<exports symbol='virNodeGetCellsFreeMemory' type='function'/>
<exports symbol='virConnectClose' type='function'/>
<exports symbol='virDomainReboot' type='function'/>
<exports symbol='virDomainBlockStats' type='function'/>
<exports symbol='virDomainSetVcpus' type='function'/>
<exports symbol='virDomainLookupByID' type='function'/>
<exports symbol='virConnectOpenAuth' type='function'/>
<exports symbol='virNetworkGetUUIDString' type='function'/>
<exports symbol='virDomainMigrate' type='function'/>
<exports symbol='virNetworkGetXMLDesc' type='function'/>
<exports symbol='virNetworkCreateXML' type='function'/>
<exports symbol='virDomainGetID' type='function'/>
<exports symbol='virDomainResume' type='function'/>
<exports symbol='virDomainCreateLinux' type='function'/>
@ -142,6 +162,7 @@
<exports symbol='virDomainGetXMLDesc' type='function'/>
<exports symbol='virDomainSetMaxMemory' type='function'/>
<exports symbol='virDomainInterfaceStats' type='function'/>
<exports symbol='virConnectAuthCallbackPtr' type='function'/>
<exports symbol='virConnectGetVersion' type='function'/>
<exports symbol='virConnectListNetworks' type='function'/>
<exports symbol='virConnectGetURI' type='function'/>
@ -159,6 +180,7 @@
<exports symbol='VIR_ERR_WARNING' type='enum'/>
<exports symbol='VIR_FROM_OPENVZ' type='enum'/>
<exports symbol='VIR_ERR_NO_XEN' type='enum'/>
<exports symbol='VIR_FROM_STATS_LINUX' type='enum'/>
<exports symbol='VIR_ERR_INVALID_ARG' type='enum'/>
<exports symbol='VIR_ERR_ERROR' type='enum'/>
<exports symbol='VIR_ERR_NO_OS' type='enum'/>
@ -176,7 +198,7 @@
<exports symbol='VIR_FROM_QEMU' type='enum'/>
<exports symbol='VIR_FROM_CONF' type='enum'/>
<exports symbol='VIR_ERR_INVALID_NETWORK' type='enum'/>
<exports symbol='VIR_FROM_STATS_LINUX' type='enum'/>
<exports symbol='VIR_ERR_AUTH_FAILED' type='enum'/>
<exports symbol='VIR_ERR_OPERATION_DENIED' type='enum'/>
<exports symbol='VIR_ERR_NO_KERNEL' type='enum'/>
<exports symbol='VIR_ERR_GNUTLS_ERROR' type='enum'/>
@ -287,6 +309,16 @@
<macro name='VIR_UUID_STRING_BUFLEN' file='libvirt'>
<info>This macro provides the length of the buffer required for virDomainGetUUIDString()</info>
</macro>
<enum name='VIR_CONNECT_RO' file='libvirt' value='1' type='virConnectFlags' info=' A readonly connection'/>
<enum name='VIR_CRED_AUTHNAME' file='libvirt' value='2' type='virConnectCredentialType' info='Identify to authorize as'/>
<enum name='VIR_CRED_CNONCE' file='libvirt' value='4' type='virConnectCredentialType' info='client supplies a nonce'/>
<enum name='VIR_CRED_ECHOPROMPT' file='libvirt' value='6' type='virConnectCredentialType' info='Challenge response'/>
<enum name='VIR_CRED_EXTERNAL' file='libvirt' value='9' type='virConnectCredentialType' info=' Externally managed credential More may be added - expect the unexpected'/>
<enum name='VIR_CRED_LANGUAGE' file='libvirt' value='3' type='virConnectCredentialType' info='RFC 1766 languages, comma separated'/>
<enum name='VIR_CRED_NOECHOPROMPT' file='libvirt' value='7' type='virConnectCredentialType' info='Challenge response'/>
<enum name='VIR_CRED_PASSPHRASE' file='libvirt' value='5' type='virConnectCredentialType' info='Passphrase secret'/>
<enum name='VIR_CRED_REALM' file='libvirt' value='8' type='virConnectCredentialType' info='Authentication realm'/>
<enum name='VIR_CRED_USERNAME' file='libvirt' value='1' type='virConnectCredentialType' info='Identity to act as'/>
<enum name='VIR_DOMAIN_BLOCKED' file='libvirt' value='2' type='virDomainState' info='the domain is blocked on resource'/>
<enum name='VIR_DOMAIN_CRASHED' file='libvirt' value='6' type='virDomainState' info=' the domain is crashed'/>
<enum name='VIR_DOMAIN_NONE' file='libvirt' value='0' type='virDomainCreateFlags'/>
@ -303,6 +335,7 @@
<enum name='VIR_DOMAIN_SHUTOFF' file='libvirt' value='5' type='virDomainState' info='the domain is shut off'/>
<enum name='VIR_DOMAIN_XML_INACTIVE' file='libvirt' value='2' type='virDomainXMLFlags' info=' dump inactive domain informations'/>
<enum name='VIR_DOMAIN_XML_SECURE' file='libvirt' value='1' type='virDomainXMLFlags' info='dump security sensitive informations too'/>
<enum name='VIR_ERR_AUTH_FAILED' file='virterror' value='45' type='virErrorNumber' info=' authentication failed'/>
<enum name='VIR_ERR_CALL_FAILED' file='virterror' value='26' type='virErrorNumber' info='not supported by the drivers (DEPRECATED)'/>
<enum name='VIR_ERR_CONF_SYNTAX' file='virterror' value='33' type='virErrorNumber' info='failed to parse the syntax of a conf file'/>
<enum name='VIR_ERR_DOM_EXIST' file='virterror' value='28' type='virErrorNumber' info='the domain already exist'/>
@ -315,7 +348,7 @@
<enum name='VIR_ERR_INVALID_ARG' file='virterror' value='8' type='virErrorNumber' info='invalid function argument'/>
<enum name='VIR_ERR_INVALID_CONN' file='virterror' value='6' type='virErrorNumber' info='invalid connection object'/>
<enum name='VIR_ERR_INVALID_DOMAIN' file='virterror' value='7' type='virErrorNumber' info='invalid domain object'/>
<enum name='VIR_ERR_INVALID_MAC' file='virterror' value='44' type='virErrorNumber' info=' invalid MAC adress'/>
<enum name='VIR_ERR_INVALID_MAC' file='virterror' value='44' type='virErrorNumber' info='invalid MAC adress'/>
<enum name='VIR_ERR_INVALID_NETWORK' file='virterror' value='36' type='virErrorNumber' info='invalid network object'/>
<enum name='VIR_ERR_NETWORK_EXIST' file='virterror' value='37' type='virErrorNumber' info='the network already exist'/>
<enum name='VIR_ERR_NONE' file='virterror' value='0' type='virErrorLevel'/>
@ -373,6 +406,24 @@
<enum name='VIR_VCPU_RUNNING' file='libvirt' value='1' type='virVcpuState' info='the virtual CPU is running'/>
<enum name='VIR_WAR_NO_NETWORK' file='virterror' value='41' type='virErrorNumber' info='failed to start network'/>
<struct name='virConnect' file='libvirt' type='struct _virConnect'/>
<struct name='virConnectAuth' file='libvirt' type='struct _virConnectAuth'>
<field name='credtype' type='int *' info=' List of supported virConnectCredentialType values'/>
<field name='ncredtype' type='unsigned int' info=''/>
<field name='cb' type='virConnectAuthCallbackPtr' info=' Callback used to collect credentials'/>
<field name='cbdata' type='void *' info=''/>
</struct>
<typedef name='virConnectAuthPtr' file='libvirt' type='virConnectAuth *'/>
<struct name='virConnectCredential' file='libvirt' type='struct _virConnectCredential'>
<field name='type' type='int' info=' One of virConnectCredentialType constants'/>
<field name='prompt' type='const char *' info=' Prompt to show to user'/>
<field name='challenge' type='const char *' info=' Additional challenge to show'/>
<field name='defresult' type='const char *' info=' Optional default result'/>
<field name='result' type='char *' info=' Result to be filled with user response (or defresult)'/>
<field name='resultlen' type='unsigned int' info=' Length of the result'/>
</struct>
<typedef name='virConnectCredentialPtr' file='libvirt' type='virConnectCredential *'/>
<typedef name='virConnectCredentialType' file='libvirt' type='enum'/>
<typedef name='virConnectFlags' file='libvirt' type='enum'/>
<typedef name='virConnectPtr' file='libvirt' type='virConnect *'>
<info>a virConnectPtr is pointer to a virConnect private structure, this is the type used to reference a connection to the Xen Hypervisor in the API.</info>
</typedef>
@ -468,6 +519,7 @@
</struct>
<typedef name='virVcpuInfoPtr' file='libvirt' type='virVcpuInfo *'/>
<typedef name='virVcpuState' file='libvirt' type='enum'/>
<variable name='virConnectAuthPtrDefault' file='libvirt' type='virConnectAuthPtr'/>
<function name='virConnCopyLastError' file='virterror' module='virterror'>
<info>Copy the content of the last error caught on that connection One will need to free the result with virResetError()</info>
<return type='int' info='0 if no error was found and the error code otherwise and -1 in case of parameter error.'/>
@ -491,6 +543,13 @@
<arg name='userData' type='void *' info='pointer to the user data provided in the handler callback'/>
<arg name='handler' type='virErrorFunc' info='the function to get called in case of error or NULL'/>
</function>
<functype name='virConnectAuthCallbackPtr' file='libvirt' module='libvirt'>
<info></info>
<return type='int' info=''/>
<arg name='cred' type='virConnectCredentialPtr' info=''/>
<arg name='ncred' type='unsigned int' info=''/>
<arg name='cbdata' type='void *' info=''/>
</functype>
<function name='virConnectClose' file='libvirt' module='libvirt'>
<info>This function closes the connection to the Hypervisor. This should not be called if further interaction with the Hypervisor are needed especially if there is running domain which need further monitoring by the application.</info>
<return type='int' info='0 in case of success or -1 in case of error.'/>
@ -581,6 +640,13 @@
<return type='virConnectPtr' info='a pointer to the hypervisor connection or NULL in case of error URIs are documented at http://libvirt.org/uri.html'/>
<arg name='name' type='const char *' info='URI of the hypervisor'/>
</function>
<function name='virConnectOpenAuth' file='libvirt' module='libvirt'>
<info>This function should be called first to get a connection to the Hypervisor. If neccessary, authentication will be performed fetching credentials via the callback</info>
<return type='virConnectPtr' info='a pointer to the hypervisor connection or NULL in case of error URIs are documented at http://libvirt.org/uri.html'/>
<arg name='name' type='const char *' info='URI of the hypervisor'/>
<arg name='auth' type='virConnectAuthPtr' info='Authenticate callback parameters'/>
<arg name='flags' type='int' info='Open flags'/>
</function>
<function name='virConnectOpenReadOnly' file='libvirt' module='libvirt'>
<info>This function should be called first to get a restricted connection to the libbrary functionalities. The set of APIs usable are then restricted on the available methods to control the domains.</info>
<return type='virConnectPtr' info='a pointer to the hypervisor connection or NULL in case of error URIs are documented at http://libvirt.org/uri.html'/>

View File

@ -2,9 +2,19 @@
<apirefs name='libvirt'>
<references>
<reference name='LIBVIR_VERSION_NUMBER' href='html/libvirt-libvirt.html#LIBVIR_VERSION_NUMBER'/>
<reference name='VIR_CONNECT_RO' href='html/libvirt-libvirt.html#VIR_CONNECT_RO'/>
<reference name='VIR_COPY_CPUMAP' href='html/libvirt-libvirt.html#VIR_COPY_CPUMAP'/>
<reference name='VIR_CPU_MAPLEN' href='html/libvirt-libvirt.html#VIR_CPU_MAPLEN'/>
<reference name='VIR_CPU_USABLE' href='html/libvirt-libvirt.html#VIR_CPU_USABLE'/>
<reference name='VIR_CRED_AUTHNAME' href='html/libvirt-libvirt.html#VIR_CRED_AUTHNAME'/>
<reference name='VIR_CRED_CNONCE' href='html/libvirt-libvirt.html#VIR_CRED_CNONCE'/>
<reference name='VIR_CRED_ECHOPROMPT' href='html/libvirt-libvirt.html#VIR_CRED_ECHOPROMPT'/>
<reference name='VIR_CRED_EXTERNAL' href='html/libvirt-libvirt.html#VIR_CRED_EXTERNAL'/>
<reference name='VIR_CRED_LANGUAGE' href='html/libvirt-libvirt.html#VIR_CRED_LANGUAGE'/>
<reference name='VIR_CRED_NOECHOPROMPT' href='html/libvirt-libvirt.html#VIR_CRED_NOECHOPROMPT'/>
<reference name='VIR_CRED_PASSPHRASE' href='html/libvirt-libvirt.html#VIR_CRED_PASSPHRASE'/>
<reference name='VIR_CRED_REALM' href='html/libvirt-libvirt.html#VIR_CRED_REALM'/>
<reference name='VIR_CRED_USERNAME' href='html/libvirt-libvirt.html#VIR_CRED_USERNAME'/>
<reference name='VIR_DOMAIN_BLOCKED' href='html/libvirt-libvirt.html#VIR_DOMAIN_BLOCKED'/>
<reference name='VIR_DOMAIN_CRASHED' href='html/libvirt-libvirt.html#VIR_DOMAIN_CRASHED'/>
<reference name='VIR_DOMAIN_NONE' href='html/libvirt-libvirt.html#VIR_DOMAIN_NONE'/>
@ -22,6 +32,7 @@
<reference name='VIR_DOMAIN_SHUTOFF' href='html/libvirt-libvirt.html#VIR_DOMAIN_SHUTOFF'/>
<reference name='VIR_DOMAIN_XML_INACTIVE' href='html/libvirt-libvirt.html#VIR_DOMAIN_XML_INACTIVE'/>
<reference name='VIR_DOMAIN_XML_SECURE' href='html/libvirt-libvirt.html#VIR_DOMAIN_XML_SECURE'/>
<reference name='VIR_ERR_AUTH_FAILED' href='html/libvirt-virterror.html#VIR_ERR_AUTH_FAILED'/>
<reference name='VIR_ERR_CALL_FAILED' href='html/libvirt-virterror.html#VIR_ERR_CALL_FAILED'/>
<reference name='VIR_ERR_CONF_SYNTAX' href='html/libvirt-virterror.html#VIR_ERR_CONF_SYNTAX'/>
<reference name='VIR_ERR_DOM_EXIST' href='html/libvirt-virterror.html#VIR_ERR_DOM_EXIST'/>
@ -97,6 +108,8 @@
<reference name='VIR_VCPU_OFFLINE' href='html/libvirt-libvirt.html#VIR_VCPU_OFFLINE'/>
<reference name='VIR_VCPU_RUNNING' href='html/libvirt-libvirt.html#VIR_VCPU_RUNNING'/>
<reference name='VIR_WAR_NO_NETWORK' href='html/libvirt-virterror.html#VIR_WAR_NO_NETWORK'/>
<reference name='_virConnectAuth' href='html/libvirt-libvirt.html#_virConnectAuth'/>
<reference name='_virConnectCredential' href='html/libvirt-libvirt.html#_virConnectCredential'/>
<reference name='_virDomainBlockStats' href='html/libvirt-libvirt.html#_virDomainBlockStats'/>
<reference name='_virDomainInfo' href='html/libvirt-libvirt.html#_virDomainInfo'/>
<reference name='_virDomainInterfaceStats' href='html/libvirt-libvirt.html#_virDomainInterfaceStats'/>
@ -109,7 +122,15 @@
<reference name='virConnResetLastError' href='html/libvirt-virterror.html#virConnResetLastError'/>
<reference name='virConnSetErrorFunc' href='html/libvirt-virterror.html#virConnSetErrorFunc'/>
<reference name='virConnect' href='html/libvirt-libvirt.html#virConnect'/>
<reference name='virConnectAuth' href='html/libvirt-libvirt.html#virConnectAuth'/>
<reference name='virConnectAuthCallbackPtr' href='html/libvirt-libvirt.html#virConnectAuthCallbackPtr'/>
<reference name='virConnectAuthPtr' href='html/libvirt-libvirt.html#virConnectAuthPtr'/>
<reference name='virConnectAuthPtrDefault' href='html/libvirt-libvirt.html#virConnectAuthPtrDefault'/>
<reference name='virConnectClose' href='html/libvirt-libvirt.html#virConnectClose'/>
<reference name='virConnectCredential' href='html/libvirt-libvirt.html#virConnectCredential'/>
<reference name='virConnectCredentialPtr' href='html/libvirt-libvirt.html#virConnectCredentialPtr'/>
<reference name='virConnectCredentialType' href='html/libvirt-libvirt.html#virConnectCredentialType'/>
<reference name='virConnectFlags' href='html/libvirt-libvirt.html#virConnectFlags'/>
<reference name='virConnectGetCapabilities' href='html/libvirt-libvirt.html#virConnectGetCapabilities'/>
<reference name='virConnectGetHostname' href='html/libvirt-libvirt.html#virConnectGetHostname'/>
<reference name='virConnectGetMaxVcpus' href='html/libvirt-libvirt.html#virConnectGetMaxVcpus'/>
@ -125,6 +146,7 @@
<reference name='virConnectNumOfDomains' href='html/libvirt-libvirt.html#virConnectNumOfDomains'/>
<reference name='virConnectNumOfNetworks' href='html/libvirt-libvirt.html#virConnectNumOfNetworks'/>
<reference name='virConnectOpen' href='html/libvirt-libvirt.html#virConnectOpen'/>
<reference name='virConnectOpenAuth' href='html/libvirt-libvirt.html#virConnectOpenAuth'/>
<reference name='virConnectOpenReadOnly' href='html/libvirt-libvirt.html#virConnectOpenReadOnly'/>
<reference name='virConnectPtr' href='html/libvirt-libvirt.html#virConnectPtr'/>
<reference name='virCopyLastError' href='html/libvirt-virterror.html#virCopyLastError'/>
@ -231,9 +253,19 @@
<ref name='LIBVIR_VERSION_NUMBER'/>
</letter>
<letter name='V'>
<ref name='VIR_CONNECT_RO'/>
<ref name='VIR_COPY_CPUMAP'/>
<ref name='VIR_CPU_MAPLEN'/>
<ref name='VIR_CPU_USABLE'/>
<ref name='VIR_CRED_AUTHNAME'/>
<ref name='VIR_CRED_CNONCE'/>
<ref name='VIR_CRED_ECHOPROMPT'/>
<ref name='VIR_CRED_EXTERNAL'/>
<ref name='VIR_CRED_LANGUAGE'/>
<ref name='VIR_CRED_NOECHOPROMPT'/>
<ref name='VIR_CRED_PASSPHRASE'/>
<ref name='VIR_CRED_REALM'/>
<ref name='VIR_CRED_USERNAME'/>
<ref name='VIR_DOMAIN_BLOCKED'/>
<ref name='VIR_DOMAIN_CRASHED'/>
<ref name='VIR_DOMAIN_NONE'/>
@ -251,6 +283,7 @@
<ref name='VIR_DOMAIN_SHUTOFF'/>
<ref name='VIR_DOMAIN_XML_INACTIVE'/>
<ref name='VIR_DOMAIN_XML_SECURE'/>
<ref name='VIR_ERR_AUTH_FAILED'/>
<ref name='VIR_ERR_CALL_FAILED'/>
<ref name='VIR_ERR_CONF_SYNTAX'/>
<ref name='VIR_ERR_DOM_EXIST'/>
@ -328,6 +361,8 @@
<ref name='VIR_WAR_NO_NETWORK'/>
</letter>
<letter name='_'>
<ref name='_virConnectAuth'/>
<ref name='_virConnectCredential'/>
<ref name='_virDomainBlockStats'/>
<ref name='_virDomainInfo'/>
<ref name='_virDomainInterfaceStats'/>
@ -342,7 +377,15 @@
<ref name='virConnResetLastError'/>
<ref name='virConnSetErrorFunc'/>
<ref name='virConnect'/>
<ref name='virConnectAuth'/>
<ref name='virConnectAuthCallbackPtr'/>
<ref name='virConnectAuthPtr'/>
<ref name='virConnectAuthPtrDefault'/>
<ref name='virConnectClose'/>
<ref name='virConnectCredential'/>
<ref name='virConnectCredentialPtr'/>
<ref name='virConnectCredentialType'/>
<ref name='virConnectFlags'/>
<ref name='virConnectGetCapabilities'/>
<ref name='virConnectGetHostname'/>
<ref name='virConnectGetMaxVcpus'/>
@ -358,6 +401,7 @@
<ref name='virConnectNumOfDomains'/>
<ref name='virConnectNumOfNetworks'/>
<ref name='virConnectOpen'/>
<ref name='virConnectOpenAuth'/>
<ref name='virConnectOpenReadOnly'/>
<ref name='virConnectPtr'/>
<ref name='virCopyLastError'/>
@ -472,6 +516,7 @@
</type>
<type name='virConnectPtr'>
<ref name='virConnectOpen'/>
<ref name='virConnectOpenAuth'/>
<ref name='virConnectOpenReadOnly'/>
<ref name='virDomainGetConnect'/>
<ref name='virNetworkGetConnect'/>
@ -525,6 +570,7 @@
<ref name='virNetworkGetUUID'/>
</type>
<type name='unsigned int'>
<ref name='virConnectAuthCallbackPtr'/>
<ref name='virDomainCreateLinux'/>
<ref name='virDomainPinVcpu'/>
<ref name='virDomainReboot'/>
@ -542,6 +588,12 @@
<type name='unsigned long long *'>
<ref name='virNodeGetCellsFreeMemory'/>
</type>
<type name='virConnectAuthPtr'>
<ref name='virConnectOpenAuth'/>
</type>
<type name='virConnectCredentialPtr'>
<ref name='virConnectAuthCallbackPtr'/>
</type>
<type name='virConnectPtr'>
<ref name='virConnCopyLastError'/>
<ref name='virConnGetLastError'/>
@ -662,6 +714,7 @@
</type>
<type name='void *'>
<ref name='virConnSetErrorFunc'/>
<ref name='virConnectAuthCallbackPtr'/>
<ref name='virErrorFunc'/>
<ref name='virSetErrorFunc'/>
</type>
@ -669,9 +722,19 @@
<files>
<file name='libvirt'>
<ref name='LIBVIR_VERSION_NUMBER'/>
<ref name='VIR_CONNECT_RO'/>
<ref name='VIR_COPY_CPUMAP'/>
<ref name='VIR_CPU_MAPLEN'/>
<ref name='VIR_CPU_USABLE'/>
<ref name='VIR_CRED_AUTHNAME'/>
<ref name='VIR_CRED_CNONCE'/>
<ref name='VIR_CRED_ECHOPROMPT'/>
<ref name='VIR_CRED_EXTERNAL'/>
<ref name='VIR_CRED_LANGUAGE'/>
<ref name='VIR_CRED_NOECHOPROMPT'/>
<ref name='VIR_CRED_PASSPHRASE'/>
<ref name='VIR_CRED_REALM'/>
<ref name='VIR_CRED_USERNAME'/>
<ref name='VIR_DOMAIN_BLOCKED'/>
<ref name='VIR_DOMAIN_CRASHED'/>
<ref name='VIR_DOMAIN_NONE'/>
@ -699,6 +762,8 @@
<ref name='VIR_VCPU_BLOCKED'/>
<ref name='VIR_VCPU_OFFLINE'/>
<ref name='VIR_VCPU_RUNNING'/>
<ref name='_virConnectAuth'/>
<ref name='_virConnectCredential'/>
<ref name='_virDomainBlockStats'/>
<ref name='_virDomainInfo'/>
<ref name='_virDomainInterfaceStats'/>
@ -706,7 +771,15 @@
<ref name='_virSchedParameter'/>
<ref name='_virVcpuInfo'/>
<ref name='virConnect'/>
<ref name='virConnectAuth'/>
<ref name='virConnectAuthCallbackPtr'/>
<ref name='virConnectAuthPtr'/>
<ref name='virConnectAuthPtrDefault'/>
<ref name='virConnectClose'/>
<ref name='virConnectCredential'/>
<ref name='virConnectCredentialPtr'/>
<ref name='virConnectCredentialType'/>
<ref name='virConnectFlags'/>
<ref name='virConnectGetCapabilities'/>
<ref name='virConnectGetHostname'/>
<ref name='virConnectGetMaxVcpus'/>
@ -722,6 +795,7 @@
<ref name='virConnectNumOfDomains'/>
<ref name='virConnectNumOfNetworks'/>
<ref name='virConnectOpen'/>
<ref name='virConnectOpenAuth'/>
<ref name='virConnectOpenReadOnly'/>
<ref name='virConnectPtr'/>
<ref name='virDomain'/>
@ -812,6 +886,7 @@
<ref name='virVcpuState'/>
</file>
<file name='virterror'>
<ref name='VIR_ERR_AUTH_FAILED'/>
<ref name='VIR_ERR_CALL_FAILED'/>
<ref name='VIR_ERR_CONF_SYNTAX'/>
<ref name='VIR_ERR_DOM_EXIST'/>
@ -912,12 +987,18 @@
<ref name='VIR_GET_CPUMAP'/>
<ref name='virConnectOpenReadOnly'/>
</word>
<word name='Additional'>
<ref name='_virConnectCredential'/>
</word>
<word name='After'>
<ref name='virDomainSave'/>
</word>
<word name='Attempt'>
<ref name='virDomainMigrate'/>
</word>
<word name='Authenticate'>
<ref name='virConnectOpenAuth'/>
</word>
</letter>
<letter name='B'>
<word name='Bytes'>
@ -956,6 +1037,9 @@
<ref name='virDomainPinVcpu'/>
<ref name='virDomainSetVcpus'/>
</word>
<word name='Callback'>
<ref name='_virConnectAuth'/>
</word>
<word name='Change'>
<ref name='virDomainSetSchedulerParameters'/>
</word>
@ -1058,6 +1142,7 @@
<ref name='virConnectGetType'/>
<ref name='virConnectGetVersion'/>
<ref name='virConnectOpen'/>
<ref name='virConnectOpenAuth'/>
</word>
</letter>
<letter name='I'>
@ -1085,9 +1170,15 @@
<word name='Launch'>
<ref name='virDomainCreateLinux'/>
</word>
<word name='Length'>
<ref name='_virConnectCredential'/>
</word>
<word name='Linux'>
<ref name='virDomainCreateLinux'/>
</word>
<word name='List'>
<ref name='_virConnectAuth'/>
</word>
</letter>
<letter name='M'>
<word name='Macro'>
@ -1132,12 +1223,22 @@
<ref name='virGetVersion'/>
</word>
<word name='One'>
<ref name='_virConnectCredential'/>
<ref name='virConnCopyLastError'/>
<ref name='virCopyLastError'/>
<ref name='virDomainGetVcpus'/>
</word>
<word name='Open'>
<ref name='virConnectOpenAuth'/>
</word>
<word name='Optional'>
<ref name='_virConnectCredential'/>
</word>
</letter>
<letter name='P'>
<word name='Prompt'>
<ref name='_virConnectCredential'/>
</word>
<word name='Provide'>
<ref name='virConnGetLastError'/>
<ref name='virDomainGetXMLDesc'/>
@ -1179,6 +1280,9 @@
<ref name='virResetError'/>
<ref name='virResetLastError'/>
</word>
<word name='Result'>
<ref name='_virConnectCredential'/>
</word>
<word name='Resume'>
<ref name='virDomainResume'/>
</word>
@ -1235,11 +1339,13 @@
<word name='URI'>
<ref name='virConnectGetURI'/>
<ref name='virConnectOpen'/>
<ref name='virConnectOpenAuth'/>
<ref name='virConnectOpenReadOnly'/>
<ref name='virDomainMigrate'/>
</word>
<word name='URIs'>
<ref name='virConnectOpen'/>
<ref name='virConnectOpenAuth'/>
<ref name='virConnectOpenReadOnly'/>
<ref name='virDomainMigrate'/>
</word>
@ -1274,6 +1380,8 @@
<ref name='virDomainSuspend'/>
</word>
</letter>
</chunk>
<chunk name='chunk1'>
<letter name='V'>
<word name='VIR_COPY_CPUMAP'>
<ref name='VIR_COPY_CPUMAP'/>
@ -1307,8 +1415,6 @@
<ref name='virNetworkGetUUIDString'/>
</word>
</letter>
</chunk>
<chunk name='chunk1'>
<letter name='W'>
<word name='WARNING:'>
<ref name='virDomainGetConnect'/>
@ -1464,6 +1570,7 @@
<ref name='virConnectClose'/>
<ref name='virConnectGetHostname'/>
<ref name='virConnectOpen'/>
<ref name='virConnectOpenAuth'/>
<ref name='virConnectOpenReadOnly'/>
<ref name='virDomainDestroy'/>
<ref name='virDomainMigrate'/>
@ -1507,6 +1614,9 @@
<ref name='virConnectGetMaxVcpus'/>
<ref name='virDomainBlockStats'/>
</word>
<word name='authentication'>
<ref name='virConnectOpenAuth'/>
</word>
<word name='automatically'>
<ref name='virDomainGetAutostart'/>
<ref name='virDomainSetAutostart'/>
@ -1633,6 +1743,8 @@
<ref name='virNetworkGetUUIDString'/>
</word>
</letter>
</chunk>
<chunk name='chunk2'>
<letter name='c'>
<word name='calculate'>
<ref name='VIR_NODEINFO_MAXCPUS'/>
@ -1654,6 +1766,7 @@
</word>
<word name='callback'>
<ref name='virConnSetErrorFunc'/>
<ref name='virConnectOpenAuth'/>
<ref name='virErrorFunc'/>
<ref name='virSetErrorFunc'/>
</word>
@ -1661,6 +1774,7 @@
<ref name='virConnSetErrorFunc'/>
<ref name='virConnectClose'/>
<ref name='virConnectOpen'/>
<ref name='virConnectOpenAuth'/>
<ref name='virConnectOpenReadOnly'/>
<ref name='virSetErrorFunc'/>
</word>
@ -1729,6 +1843,9 @@
<word name='cells'>
<ref name='virNodeGetCellsFreeMemory'/>
</word>
<word name='challenge'>
<ref name='_virConnectCredential'/>
</word>
<word name='change'>
<ref name='virDomainPinVcpu'/>
<ref name='virDomainSetMaxMemory'/>
@ -1755,6 +1872,7 @@
<ref name='virGetVersion'/>
</word>
<word name='collect'>
<ref name='_virConnectAuth'/>
<ref name='virConnectListDomains'/>
<ref name='virConnectListNetworks'/>
</word>
@ -1790,6 +1908,9 @@
<word name='consequent'>
<ref name='_virError'/>
</word>
<word name='constants'>
<ref name='_virConnectCredential'/>
</word>
<word name='content'>
<ref name='virConnCopyLastError'/>
<ref name='virCopyLastError'/>
@ -1846,6 +1967,10 @@
<word name='create'>
<ref name='virNetworkDefineXML'/>
</word>
<word name='credentials'>
<ref name='_virConnectAuth'/>
<ref name='virConnectOpenAuth'/>
</word>
<word name='cupmap'>
<ref name='virDomainGetVcpus'/>
</word>
@ -1856,8 +1981,6 @@
<ref name='virDomainCoreDump'/>
</word>
</letter>
</chunk>
<chunk name='chunk2'>
<letter name='d'>
<word name='data'>
<ref name='virConnSetErrorFunc'/>
@ -1876,6 +1999,7 @@
<ref name='virNetworkGetName'/>
</word>
<word name='default'>
<ref name='_virConnectCredential'/>
<ref name='virConnSetErrorFunc'/>
<ref name='virDomainMigrate'/>
<ref name='virSetErrorFunc'/>
@ -1893,6 +2017,9 @@
<word name='defining'>
<ref name='virConnectGetCapabilities'/>
</word>
<word name='defresult'>
<ref name='_virConnectCredential'/>
</word>
<word name='described'>
<ref name='virDomainGetVcpus'/>
</word>
@ -1945,6 +2072,7 @@
</word>
<word name='documented'>
<ref name='virConnectOpen'/>
<ref name='virConnectOpenAuth'/>
<ref name='virConnectOpenReadOnly'/>
</word>
<word name='does'>
@ -1984,6 +2112,8 @@
<ref name='virDomainMigrate'/>
</word>
</letter>
</chunk>
<chunk name='chunk3'>
<letter name='e'>
<word name='each'>
<ref name='virDomainBlockStats'/>
@ -2053,6 +2183,9 @@
<word name='features'>
<ref name='virDomainMigrate'/>
</word>
<word name='fetching'>
<ref name='virConnectOpenAuth'/>
</word>
<word name='field'>
<ref name='VIR_DOMAIN_SCHED_FIELD_LENGTH'/>
</word>
@ -2065,6 +2198,7 @@
<ref name='virDomainSave'/>
</word>
<word name='filled'>
<ref name='_virConnectCredential'/>
<ref name='virDomainGetSchedulerParameters'/>
<ref name='virDomainGetVcpus'/>
<ref name='virNodeGetCellsFreeMemory'/>
@ -2078,10 +2212,12 @@
</word>
<word name='first'>
<ref name='virConnectOpen'/>
<ref name='virConnectOpenAuth'/>
<ref name='virConnectOpenReadOnly'/>
<ref name='virNodeGetCellsFreeMemory'/>
</word>
<word name='flags'>
<ref name='virConnectOpenAuth'/>
<ref name='virDomainCoreDump'/>
<ref name='virDomainMigrate'/>
<ref name='virDomainReboot'/>
@ -2159,6 +2295,7 @@
<ref name='virConnSetErrorFunc'/>
<ref name='virConnectClose'/>
<ref name='virConnectOpen'/>
<ref name='virConnectOpenAuth'/>
<ref name='virConnectOpenReadOnly'/>
<ref name='virDomainBlockStats'/>
<ref name='virDomainCreateLinux'/>
@ -2191,6 +2328,7 @@
<word name='get'>
<ref name='virConnSetErrorFunc'/>
<ref name='virConnectOpen'/>
<ref name='virConnectOpenAuth'/>
<ref name='virConnectOpenReadOnly'/>
<ref name='virDomainBlockStats'/>
<ref name='virDomainGetInfo'/>
@ -2232,8 +2370,6 @@
<ref name='virDomainShutdown'/>
</word>
</letter>
</chunk>
<chunk name='chunk3'>
<letter name='h'>
<word name='handler'>
<ref name='virConnSetErrorFunc'/>
@ -2276,11 +2412,13 @@
<word name='html'>
<ref name='virConnectGetType'/>
<ref name='virConnectOpen'/>
<ref name='virConnectOpenAuth'/>
<ref name='virConnectOpenReadOnly'/>
</word>
<word name='http:'>
<ref name='virConnectGetType'/>
<ref name='virConnectOpen'/>
<ref name='virConnectOpenAuth'/>
<ref name='virConnectOpenReadOnly'/>
</word>
<word name='human-readable'>
@ -2388,6 +2526,8 @@
<ref name='virNetworkLookupByUUIDString'/>
</word>
</letter>
</chunk>
<chunk name='chunk4'>
<letter name='j'>
<word name='join'>
<ref name='virNetworkGetBridgeName'/>
@ -2479,6 +2619,7 @@
</word>
<word name='libvirt'>
<ref name='virConnectOpen'/>
<ref name='virConnectOpenAuth'/>
<ref name='virConnectOpenReadOnly'/>
<ref name='virDomainGetConnect'/>
<ref name='virDomainMigrate'/>
@ -2709,8 +2850,6 @@
<ref name='_virDomainBlockStats'/>
</word>
</letter>
</chunk>
<chunk name='chunk4'>
<letter name='n'>
<word name='name'>
<ref name='_virSchedParameter'/>
@ -2737,6 +2876,9 @@
<word name='neccessarily'>
<ref name='VIR_NODEINFO_MAXCPUS'/>
</word>
<word name='neccessary'>
<ref name='virConnectOpenAuth'/>
</word>
<word name='need'>
<ref name='virConnCopyLastError'/>
<ref name='virConnectClose'/>
@ -2789,6 +2931,8 @@
<ref name='virDomainSetSchedulerParameters'/>
</word>
</letter>
</chunk>
<chunk name='chunk5'>
<letter name='o'>
<word name='objects'>
<ref name='virDomainSetSchedulerParameters'/>
@ -2839,6 +2983,7 @@
</word>
<word name='org'>
<ref name='virConnectOpen'/>
<ref name='virConnectOpenAuth'/>
<ref name='virConnectOpenReadOnly'/>
</word>
<word name='other'>
@ -2874,6 +3019,7 @@
<ref name='virDomainSetSchedulerParameters'/>
</word>
<word name='parameters'>
<ref name='virConnectOpenAuth'/>
<ref name='virDomainGetSchedulerParameters'/>
<ref name='virDomainGetSchedulerType'/>
<ref name='virDomainSetSchedulerParameters'/>
@ -2909,6 +3055,9 @@
<word name='perform'>
<ref name='virDomainMigrate'/>
</word>
<word name='performed'>
<ref name='virConnectOpenAuth'/>
</word>
<word name='physical'>
<ref name='VIR_CPU_MAPLEN'/>
<ref name='cpu'/>
@ -3102,6 +3251,9 @@
<ref name='virDomainSuspend'/>
<ref name='virNetworkDestroy'/>
</word>
<word name='response'>
<ref name='_virConnectCredential'/>
</word>
<word name='restart'>
<ref name='virDomainReboot'/>
</word>
@ -3116,6 +3268,7 @@
<ref name='virConnectOpenReadOnly'/>
</word>
<word name='result'>
<ref name='_virConnectCredential'/>
<ref name='virConnCopyLastError'/>
<ref name='virConnectGetHostname'/>
<ref name='virCopyLastError'/>
@ -3193,7 +3346,7 @@
</word>
</letter>
</chunk>
<chunk name='chunk5'>
<chunk name='chunk6'>
<letter name='s'>
<word name='same'>
<ref name='virConnectGetURI'/>
@ -3242,6 +3395,7 @@
<word name='should'>
<ref name='virConnectClose'/>
<ref name='virConnectOpen'/>
<ref name='virConnectOpenAuth'/>
<ref name='virConnectOpenReadOnly'/>
<ref name='virDomainBlockStats'/>
<ref name='virDomainDestroy'/>
@ -3255,6 +3409,9 @@
<ref name='virNetworkFree'/>
<ref name='virNetworkSetAutostart'/>
</word>
<word name='show'>
<ref name='_virConnectCredential'/>
</word>
<word name='shutdown'>
<ref name='virDomainDestroy'/>
<ref name='virNetworkDestroy'/>
@ -3428,6 +3585,7 @@
</word>
<word name='supported'>
<ref name='VIR_NODEINFO_MAXCPUS'/>
<ref name='_virConnectAuth'/>
<ref name='virConnectGetMaxVcpus'/>
<ref name='virDomainGetMaxVcpus'/>
<ref name='virDomainMigrate'/>
@ -3589,7 +3747,7 @@
</word>
</letter>
</chunk>
<chunk name='chunk6'>
<chunk name='chunk7'>
<letter name='u'>
<word name='undefine'>
<ref name='virDomainUndefine'/>
@ -3615,6 +3773,7 @@
</word>
<word name='uri'>
<ref name='virConnectOpen'/>
<ref name='virConnectOpenAuth'/>
<ref name='virConnectOpenReadOnly'/>
<ref name='virDomainMigrate'/>
</word>
@ -3642,6 +3801,7 @@
<ref name='VIR_GET_CPUMAP'/>
<ref name='VIR_UNUSE_CPU'/>
<ref name='VIR_USE_CPU'/>
<ref name='_virConnectAuth'/>
<ref name='_virDomainInfo'/>
<ref name='_virVcpuInfo'/>
<ref name='virConnectGetType'/>
@ -3658,6 +3818,7 @@
<ref name='virNetworkGetXMLDesc'/>
</word>
<word name='user'>
<ref name='_virConnectCredential'/>
<ref name='virConnSetErrorFunc'/>
<ref name='virDomainGetInfo'/>
<ref name='virDomainMigrate'/>
@ -3686,6 +3847,7 @@
<ref name='virNetworkGetXMLDesc'/>
</word>
<word name='values'>
<ref name='_virConnectAuth'/>
<ref name='virDomainGetSchedulerParameters'/>
<ref name='virGetVersion'/>
</word>
@ -3702,9 +3864,16 @@
<ref name='virConnectGetVersion'/>
<ref name='virGetVersion'/>
</word>
<word name='via'>
<ref name='virConnectOpenAuth'/>
</word>
<word name='virConnCopyLastError'>
<ref name='virConnGetLastError'/>
</word>
<word name='virConnectCredentialType'>
<ref name='_virConnectAuth'/>
<ref name='_virConnectCredential'/>
</word>
<word name='virConnectGetCapabilities'>
<ref name='virDomainMigrate'/>
</word>
@ -3882,6 +4051,7 @@
<ref name='virConnCopyLastError'/>
<ref name='virConnSetErrorFunc'/>
<ref name='virConnectGetURI'/>
<ref name='virConnectOpenAuth'/>
<ref name='virCopyLastError'/>
<ref name='virDomainCoreDump'/>
<ref name='virDomainGetMaxVcpus'/>
@ -3903,6 +4073,7 @@
<ref name='VIR_GET_CPUMAP'/>
<ref name='VIR_UNUSE_CPU'/>
<ref name='VIR_USE_CPU'/>
<ref name='_virConnectCredential'/>
<ref name='virConnCopyLastError'/>
<ref name='virConnectClose'/>
<ref name='virConnectGetVersion'/>
@ -3935,7 +4106,7 @@
</word>
</letter>
</chunk>
<chunk name='chunk7'>
<chunk name='chunk8'>
<letter name='x'>
<word name='xen'>
<ref name='virConnectOpen'/>
@ -3964,14 +4135,15 @@
</letter>
</chunk>
<chunks>
<chunk name='chunk0' start='A' end='V'/>
<chunk name='chunk1' start='W' end='c'/>
<chunk name='chunk2' start='d' end='g'/>
<chunk name='chunk3' start='h' end='m'/>
<chunk name='chunk4' start='n' end='r'/>
<chunk name='chunk5' start='s' end='t'/>
<chunk name='chunk6' start='u' end='w'/>
<chunk name='chunk7' start='x' end='z'/>
<chunk name='chunk0' start='A' end='U'/>
<chunk name='chunk1' start='V' end='b'/>
<chunk name='chunk2' start='c' end='d'/>
<chunk name='chunk3' start='e' end='i'/>
<chunk name='chunk4' start='j' end='n'/>
<chunk name='chunk5' start='o' end='r'/>
<chunk name='chunk6' start='s' end='t'/>
<chunk name='chunk7' start='u' end='w'/>
<chunk name='chunk8' start='x' end='z'/>
</chunks>
</index>
</apirefs>

View File

@ -1,3 +1,4 @@
/* -*- c -*-
* libvirt.h:
* Summary: core interfaces for the libvirt library
@ -274,6 +275,74 @@ virDomainPtr virDomainMigrate (virDomainPtr domain, virConnectPtr dconn,
typedef virNodeInfo *virNodeInfoPtr;
/**
* virConnectFlags
*
* Flags when openning a connection to a hypervisor
*/
typedef enum {
VIR_CONNECT_RO = 1, /* A readonly connection */
} virConnectFlags;
typedef enum {
VIR_CRED_USERNAME = 1, /* Identity to act as */
VIR_CRED_AUTHNAME = 2, /* Identify to authorize as */
VIR_CRED_LANGUAGE = 3, /* RFC 1766 languages, comma separated */
VIR_CRED_CNONCE = 4, /* client supplies a nonce */
VIR_CRED_PASSPHRASE = 5, /* Passphrase secret */
VIR_CRED_ECHOPROMPT = 6, /* Challenge response */
VIR_CRED_NOECHOPROMPT = 7, /* Challenge response */
VIR_CRED_REALM = 8, /* Authentication realm */
VIR_CRED_EXTERNAL = 9, /* Externally managed credential */
/* More may be added - expect the unexpected */
} virConnectCredentialType;
struct _virConnectCredential {
int type; /* One of virConnectCredentialType constants */
const char *prompt; /* Prompt to show to user */
const char *challenge; /* Additional challenge to show */
const char *defresult; /* Optional default result */
char *result; /* Result to be filled with user response (or defresult) */
unsigned int resultlen; /* Length of the result */
};
typedef struct _virConnectCredential virConnectCredential;
typedef virConnectCredential *virConnectCredentialPtr;
/**
* virConnectCredCallbackPtr
*
* @param authtype type of authentication being performed
* @param cred list of virConnectCredential object to fetch from user
* @param ncred size of cred list
* @param cbdata opaque data passed to virConnectOpenAuth
*
* When authentication requires one or more interactions, this callback
* is invoked. For each interaction supplied, data must be gathered
* from the user and filled in to the 'result' and 'resultlen' fields.
* If an interaction can not be filled, fill in NULL and 0.
*
* Return 0 if all interactions were filled, or -1 upon error
*/
typedef int (*virConnectAuthCallbackPtr)(virConnectCredentialPtr cred,
unsigned int ncred,
void *cbdata);
struct _virConnectAuth {
int *credtype; /* List of supported virConnectCredentialType values */
unsigned int ncredtype;
virConnectAuthCallbackPtr cb; /* Callback used to collect credentials */
void *cbdata;
};
typedef struct _virConnectAuth virConnectAuth;
typedef virConnectAuth *virConnectAuthPtr;
/**
* VIR_UUID_BUFLEN:
*
@ -314,6 +383,9 @@ int virInitialize (void);
virConnectPtr virConnectOpen (const char *name);
virConnectPtr virConnectOpenReadOnly (const char *name);
virConnectPtr virConnectOpenAuth (const char *name,
virConnectAuthPtr auth,
int flags);
int virConnectClose (virConnectPtr conn);
const char * virConnectGetType (virConnectPtr conn);
int virConnectGetVersion (virConnectPtr conn,

View File

@ -1,3 +1,4 @@
/* -*- c -*-
* libvirt.h:
* Summary: core interfaces for the libvirt library
@ -274,6 +275,74 @@ virDomainPtr virDomainMigrate (virDomainPtr domain, virConnectPtr dconn,
typedef virNodeInfo *virNodeInfoPtr;
/**
* virConnectFlags
*
* Flags when openning a connection to a hypervisor
*/
typedef enum {
VIR_CONNECT_RO = 1, /* A readonly connection */
} virConnectFlags;
typedef enum {
VIR_CRED_USERNAME = 1, /* Identity to act as */
VIR_CRED_AUTHNAME = 2, /* Identify to authorize as */
VIR_CRED_LANGUAGE = 3, /* RFC 1766 languages, comma separated */
VIR_CRED_CNONCE = 4, /* client supplies a nonce */
VIR_CRED_PASSPHRASE = 5, /* Passphrase secret */
VIR_CRED_ECHOPROMPT = 6, /* Challenge response */
VIR_CRED_NOECHOPROMPT = 7, /* Challenge response */
VIR_CRED_REALM = 8, /* Authentication realm */
VIR_CRED_EXTERNAL = 9, /* Externally managed credential */
/* More may be added - expect the unexpected */
} virConnectCredentialType;
struct _virConnectCredential {
int type; /* One of virConnectCredentialType constants */
const char *prompt; /* Prompt to show to user */
const char *challenge; /* Additional challenge to show */
const char *defresult; /* Optional default result */
char *result; /* Result to be filled with user response (or defresult) */
unsigned int resultlen; /* Length of the result */
};
typedef struct _virConnectCredential virConnectCredential;
typedef virConnectCredential *virConnectCredentialPtr;
/**
* virConnectCredCallbackPtr
*
* @param authtype type of authentication being performed
* @param cred list of virConnectCredential object to fetch from user
* @param ncred size of cred list
* @param cbdata opaque data passed to virConnectOpenAuth
*
* When authentication requires one or more interactions, this callback
* is invoked. For each interaction supplied, data must be gathered
* from the user and filled in to the 'result' and 'resultlen' fields.
* If an interaction can not be filled, fill in NULL and 0.
*
* Return 0 if all interactions were filled, or -1 upon error
*/
typedef int (*virConnectAuthCallbackPtr)(virConnectCredentialPtr cred,
unsigned int ncred,
void *cbdata);
struct _virConnectAuth {
int *credtype; /* List of supported virConnectCredentialType values */
unsigned int ncredtype;
virConnectAuthCallbackPtr cb; /* Callback used to collect credentials */
void *cbdata;
};
typedef struct _virConnectAuth virConnectAuth;
typedef virConnectAuth *virConnectAuthPtr;
/**
* VIR_UUID_BUFLEN:
*
@ -314,6 +383,9 @@ int virInitialize (void);
virConnectPtr virConnectOpen (const char *name);
virConnectPtr virConnectOpenReadOnly (const char *name);
virConnectPtr virConnectOpenAuth (const char *name,
virConnectAuthPtr auth,
int flags);
int virConnectClose (virConnectPtr conn);
const char * virConnectGetType (virConnectPtr conn);
int virConnectGetVersion (virConnectPtr conn,

View File

@ -77,7 +77,7 @@ proxyInitXen(void) {
priv->xshandle = NULL;
priv->proxy = -1;
ret = xenHypervisorOpen(conn, NULL, 0);
ret = xenHypervisorOpen(conn, NULL, NULL, 0);
if (ret < 0) {
fprintf(stderr, "Failed to open Xen hypervisor\n");
return(-1);
@ -93,7 +93,7 @@ proxyInitXen(void) {
fprintf(stderr, "Failed to connect to Xen daemon\n");
return(-1);
}
ret = xenStoreOpen(conn, NULL, VIR_DRV_OPEN_RO);
ret = xenStoreOpen(conn, NULL, NULL, VIR_CONNECT_RO);
if (ret < 0) {
fprintf(stderr, "Failed to open XenStore connection");
return (-1);

View File

@ -27,11 +27,6 @@ typedef enum {
} virDrvNo;
typedef enum {
/* VIR_DRV_OPEN_QUIET = 1 - removed by RWMJ */
VIR_DRV_OPEN_RO = 2
} virDrvOpenFlag;
/* Status codes returned from driver open call. */
typedef enum {
/* Opened successfully. */
@ -76,8 +71,9 @@ typedef enum {
typedef virDrvOpenStatus
(*virDrvOpen) (virConnectPtr conn,
xmlURIPtr uri,
int flags);
xmlURIPtr uri,
virConnectAuthPtr auth,
int flags);
typedef int
(*virDrvClose) (virConnectPtr conn);
typedef int

View File

@ -123,11 +123,6 @@ extern "C" {
#define MAX_DRIVERS 10
#define MIN_XEN_GUEST_SIZE 64 /* 64 megabytes */
/*
* Flags for Xen connections
*/
#define VIR_CONNECT_RO 1
/**
* _virConnect:
*

View File

@ -395,7 +395,9 @@ virGetVersion(unsigned long *libVer, const char *type,
}
static virConnectPtr
do_open (const char *name, int flags)
do_open (const char *name,
virConnectAuthPtr auth,
int flags)
{
int i, res;
virConnectPtr ret = NULL;
@ -458,7 +460,7 @@ do_open (const char *name, int flags)
fprintf (stderr, "libvirt: do_open: trying driver %d (%s) ...\n",
i, virDriverTab[i]->name);
#endif
res = virDriverTab[i]->open (ret, uri, flags);
res = virDriverTab[i]->open (ret, uri, auth, flags);
#ifdef ENABLE_DEBUG
fprintf (stderr, "libvirt: do_open: driver %d %s returned %s\n",
i, virDriverTab[i]->name,
@ -480,7 +482,7 @@ do_open (const char *name, int flags)
}
for (i = 0; i < virNetworkDriverTabCount; i++) {
res = virNetworkDriverTab[i]->open (ret, uri, flags);
res = virNetworkDriverTab[i]->open (ret, uri, auth, flags);
#ifdef ENABLE_DEBUG
fprintf (stderr, "libvirt: do_open: network driver %d %s returned %s\n",
i, virNetworkDriverTab[i]->name,
@ -500,9 +502,8 @@ do_open (const char *name, int flags)
}
}
if (flags & VIR_DRV_OPEN_RO) {
ret->flags = VIR_CONNECT_RO;
}
/* Cleansing flags */
ret->flags = flags & VIR_CONNECT_RO;
xmlFreeURI (uri);
@ -531,7 +532,7 @@ virConnectPtr
virConnectOpen (const char *name)
{
DEBUG("name=%s", name);
return do_open (name, 0);
return do_open (name, NULL, 0);
}
/**
@ -550,7 +551,30 @@ virConnectPtr
virConnectOpenReadOnly(const char *name)
{
DEBUG("name=%s", name);
return do_open (name, VIR_DRV_OPEN_RO);
return do_open (name, NULL, VIR_CONNECT_RO);
}
/**
* virConnectOpenAuth:
* @name: URI of the hypervisor
* @auth: Authenticate callback parameters
* @flags: Open flags
*
* This function should be called first to get a connection to the
* Hypervisor. If neccessary, authentication will be performed fetching
* credentials via the callback
*
* Returns a pointer to the hypervisor connection or NULL in case of error
*
* URIs are documented at http://libvirt.org/uri.html
*/
virConnectPtr
virConnectOpenAuth(const char *name,
virConnectAuthPtr auth,
int flags)
{
DEBUG("name=%s", name);
return do_open (name, auth, flags);
}
/**

View File

@ -89,7 +89,12 @@ static int openvzReload(void);
static int openvzActive(void);
static int openvzCloseNetwork(virConnectPtr conn);
static virDrvOpenStatus openvzOpenNetwork(virConnectPtr conn,
const char *name ATTRIBUTE_UNUSED, int flags ATTRIBUTE_UNUSED);
const char *name ATTRIBUTE_UNUSED,
int *credtype ATTRIBUTE_UNUSED,
int ncredtype ATTRIBUTE_UNUSED,
virConnectAuthCallbackPtr cb ATTRIBUTE_UNUSED,
void *cbdata ATTRIBUTE_UNUSED,
int flags ATTRIBUTE_UNUSED);
static virDomainPtr openvzDomainDefineXML(virConnectPtr conn, const char *xml);
static virDomainPtr openvzDomainCreateLinux(virConnectPtr conn, const char *xml,
@ -551,8 +556,12 @@ bail_out5:
}
static virDrvOpenStatus openvzOpen(virConnectPtr conn,
const char *name,
int flags ATTRIBUTE_UNUSED) {
const char *name,
int *credtype ATTRIBUTE_UNUSED,
int ncredtype ATTRIBUTE_UNUSED,
virConnectAuthCallbackPtr cb ATTRIBUTE_UNUSED,
void *cbdata ATTRIBUTE_UNUSED,
int flags ATTRIBUTE_UNUSED) {
struct openvz_vm *vms;
/* Just check if the guy is root. Nothing really to open for OpenVZ */
@ -693,8 +702,12 @@ static int openvzCloseNetwork(virConnectPtr conn ATTRIBUTE_UNUSED) {
}
static virDrvOpenStatus openvzOpenNetwork(virConnectPtr conn ATTRIBUTE_UNUSED,
const char *name ATTRIBUTE_UNUSED,
int flags ATTRIBUTE_UNUSED) {
const char *name ATTRIBUTE_UNUSED,
int *credtype ATTRIBUTE_UNUSED,
int ncredtype ATTRIBUTE_UNUSED,
virConnectAuthCallbackPtr cb ATTRIBUTE_UNUSED,
void *cbdata ATTRIBUTE_UNUSED,
int flags ATTRIBUTE_UNUSED) {
return VIR_DRV_OPEN_SUCCESS;
}

View File

@ -29,7 +29,7 @@
static int debug = 0;
static int xenProxyClose(virConnectPtr conn);
static int xenProxyOpen(virConnectPtr conn, xmlURIPtr uri, int flags);
static int xenProxyOpen(virConnectPtr conn, xmlURIPtr uri, virConnectAuthPtr auth, int flags);
static int xenProxyGetVersion(virConnectPtr conn, unsigned long *hvVer);
static int xenProxyNodeGetInfo(virConnectPtr conn, virNodeInfoPtr info);
static char *xenProxyGetCapabilities(virConnectPtr conn);
@ -520,14 +520,17 @@ retry:
* Returns 0 in case of success, and -1 in case of failure
*/
int
xenProxyOpen(virConnectPtr conn, xmlURIPtr uri ATTRIBUTE_UNUSED, int flags)
xenProxyOpen(virConnectPtr conn,
xmlURIPtr uri ATTRIBUTE_UNUSED,
virConnectAuthPtr auth ATTRIBUTE_UNUSED,
int flags)
{
virProxyPacket req;
int ret;
int fd;
xenUnifiedPrivatePtr priv;
if (!(flags & VIR_DRV_OPEN_RO))
if (!(flags & VIR_CONNECT_RO))
return(-1);
priv = (xenUnifiedPrivatePtr) conn->privateData;

View File

@ -1390,6 +1390,7 @@ static int qemudMonitorCommand(struct qemud_driver *driver ATTRIBUTE_UNUSED,
static virDrvOpenStatus qemudOpen(virConnectPtr conn,
xmlURIPtr uri,
virConnectAuthPtr auth ATTRIBUTE_UNUSED,
int flags ATTRIBUTE_UNUSED) {
uid_t uid = getuid();
@ -2575,6 +2576,7 @@ static virNetworkPtr qemudNetworkLookupByName(virConnectPtr conn ATTRIBUTE_UNUSE
static virDrvOpenStatus qemudOpenNetwork(virConnectPtr conn,
xmlURIPtr uri ATTRIBUTE_UNUSED,
virConnectAuthPtr auth ATTRIBUTE_UNUSED,
int flags ATTRIBUTE_UNUSED) {
if (!qemu_driver)
return VIR_DRV_OPEN_DECLINED;

View File

@ -286,7 +286,6 @@ remoteForkDaemon(virConnectPtr conn)
}
/* Must not overlap with virDrvOpenFlags */
enum virDrvOpenRemoteFlags {
VIR_DRV_OPEN_REMOTE_RO = (1 << 0),
VIR_DRV_OPEN_REMOTE_UNIX = (1 << 1),
@ -295,8 +294,11 @@ enum virDrvOpenRemoteFlags {
};
static int
doRemoteOpen (virConnectPtr conn, struct private_data *priv,
xmlURIPtr uri, int flags)
doRemoteOpen (virConnectPtr conn,
struct private_data *priv,
xmlURIPtr uri,
virConnectAuthPtr auth ATTRIBUTE_UNUSED,
int flags)
{
if (!uri || !uri->scheme)
return VIR_DRV_OPEN_DECLINED; /* Decline - not a URL. */
@ -779,7 +781,10 @@ doRemoteOpen (virConnectPtr conn, struct private_data *priv,
}
static int
remoteOpen (virConnectPtr conn, xmlURIPtr uri, int flags)
remoteOpen (virConnectPtr conn,
xmlURIPtr uri,
virConnectAuthPtr auth,
int flags)
{
struct private_data *priv;
int ret, rflags = 0;
@ -793,7 +798,7 @@ remoteOpen (virConnectPtr conn, xmlURIPtr uri, int flags)
return VIR_DRV_OPEN_ERROR;
}
if (flags & VIR_DRV_OPEN_RO)
if (flags & VIR_CONNECT_RO)
rflags |= VIR_DRV_OPEN_REMOTE_RO;
if (uri &&
@ -814,7 +819,7 @@ remoteOpen (virConnectPtr conn, xmlURIPtr uri, int flags)
memset(priv, 0, sizeof(struct private_data));
priv->magic = DEAD;
priv->sock = -1;
ret = doRemoteOpen(conn, priv, uri, rflags);
ret = doRemoteOpen(conn, priv, uri, auth, rflags);
if (ret != VIR_DRV_OPEN_SUCCESS) {
conn->privateData = NULL;
free(priv);
@ -2442,6 +2447,7 @@ remoteDomainInterfaceStats (virDomainPtr domain, const char *path,
static int
remoteNetworkOpen (virConnectPtr conn,
xmlURIPtr uri,
virConnectAuthPtr auth,
int flags)
{
if (inside_daemon)
@ -2468,14 +2474,14 @@ remoteNetworkOpen (virConnectPtr conn,
error (conn, VIR_ERR_NO_MEMORY, "struct private_data");
return VIR_DRV_OPEN_ERROR;
}
if (flags & VIR_DRV_OPEN_RO)
if (flags & VIR_CONNECT_RO)
rflags |= VIR_DRV_OPEN_REMOTE_RO;
rflags |= VIR_DRV_OPEN_REMOTE_UNIX;
memset(priv, 0, sizeof(struct private_data));
priv->magic = DEAD;
priv->sock = -1;
ret = doRemoteOpen(conn, priv, uri, rflags);
ret = doRemoteOpen(conn, priv, uri, auth, rflags);
if (ret != VIR_DRV_OPEN_SUCCESS) {
conn->networkPrivateData = NULL;
free(priv);

View File

@ -882,6 +882,7 @@ static int getNetworkIndex(virNetworkPtr network) {
static int testOpen(virConnectPtr conn,
xmlURIPtr uri,
virConnectAuthPtr auth ATTRIBUTE_UNUSED,
int flags ATTRIBUTE_UNUSED)
{
int ret;
@ -1644,6 +1645,7 @@ static int testDomainSetSchedulerParams(virDomainPtr domain,
static virDrvOpenStatus testOpenNetwork(virConnectPtr conn,
xmlURIPtr uri ATTRIBUTE_UNUSED,
virConnectAuthPtr auth ATTRIBUTE_UNUSED,
int flags ATTRIBUTE_UNUSED) {
if (STRNEQ(conn->driver->name, "Test"))
return VIR_DRV_OPEN_DECLINED;

View File

@ -2058,6 +2058,7 @@ xenHypervisorInit(void)
int
xenHypervisorOpen(virConnectPtr conn,
xmlURIPtr uri ATTRIBUTE_UNUSED,
virConnectAuthPtr auth ATTRIBUTE_UNUSED,
int flags ATTRIBUTE_UNUSED)
{
int ret;

View File

@ -31,6 +31,7 @@ char *
int xenHypervisorOpen (virConnectPtr conn,
xmlURIPtr uri,
virConnectAuthPtr auth,
int flags);
int xenHypervisorClose (virConnectPtr conn);
int xenHypervisorGetVersion (virConnectPtr conn,

View File

@ -219,7 +219,7 @@ done:
*/
static int
xenUnifiedOpen (virConnectPtr conn, xmlURIPtr uri, int flags)
xenUnifiedOpen (virConnectPtr conn, xmlURIPtr uri, virConnectAuthPtr auth, int flags)
{
int i, j;
xenUnifiedPrivatePtr priv;
@ -274,7 +274,7 @@ xenUnifiedOpen (virConnectPtr conn, xmlURIPtr uri, int flags)
#ifdef ENABLE_DEBUG
fprintf (stderr, "libvirt: xenUnifiedOpen: trying Xen sub-driver %d\n", i);
#endif
if (drivers[i]->open (conn, uri, flags) == VIR_DRV_OPEN_SUCCESS)
if (drivers[i]->open (conn, uri, auth, flags) == VIR_DRV_OPEN_SUCCESS)
priv->opened[i] = 1;
#ifdef ENABLE_DEBUG
fprintf (stderr, "libvirt: xenUnifiedOpen: Xen sub-driver %d open %s\n",

View File

@ -235,7 +235,7 @@ do_connect(virConnectPtr xend)
* is rather normal, this should fallback to the proxy (or
* remote) mechanism.
*/
if ((getuid() == 0) || (xend->flags & VIR_DRV_OPEN_RO)) {
if ((getuid() == 0) || (xend->flags & VIR_CONNECT_RO)) {
virXendError(xend, VIR_ERR_INTERNAL_ERROR,
"failed to connect to xend");
}
@ -2042,7 +2042,9 @@ error:
* Returns 0 in case of success, -1 in case of error.
*/
int
xenDaemonOpen(virConnectPtr conn, xmlURIPtr uri,
xenDaemonOpen(virConnectPtr conn,
xmlURIPtr uri,
virConnectAuthPtr auth ATTRIBUTE_UNUSED,
int flags ATTRIBUTE_UNUSED)
{
int ret;

View File

@ -183,7 +183,7 @@ char *xenDaemonDomainDumpXMLByName(virConnectPtr xend,
char *xend_parse_domain_sexp(virConnectPtr conn, char *root, int xendConfigVersion);
/* refactored ones */
int xenDaemonOpen(virConnectPtr conn, xmlURIPtr uri, int flags);
int xenDaemonOpen(virConnectPtr conn, xmlURIPtr uri, virConnectAuthPtr auth, int flags);
int xenDaemonClose(virConnectPtr conn);
int xenDaemonGetVersion(virConnectPtr conn, unsigned long *hvVer);
int xenDaemonNodeGetInfo(virConnectPtr conn, virNodeInfoPtr info);

View File

@ -472,7 +472,9 @@ static int xenXMConfigCacheRefresh (virConnectPtr conn) {
*/
int
xenXMOpen (virConnectPtr conn ATTRIBUTE_UNUSED,
xmlURIPtr uri ATTRIBUTE_UNUSED, int flags ATTRIBUTE_UNUSED)
xmlURIPtr uri ATTRIBUTE_UNUSED,
virConnectAuthPtr auth ATTRIBUTE_UNUSED,
int flags ATTRIBUTE_UNUSED)
{
if (configCache == NULL) {
configCache = virHashCreate(50);

View File

@ -36,7 +36,7 @@ extern "C" {
extern struct xenUnifiedDriver xenXMDriver;
int xenXMInit (void);
int xenXMOpen(virConnectPtr conn, xmlURIPtr uri, int flags);
int xenXMOpen(virConnectPtr conn, xmlURIPtr uri, virConnectAuthPtr auth, int flags);
int xenXMClose(virConnectPtr conn);
const char *xenXMGetType(virConnectPtr conn);
int xenXMDomainGetInfo(virDomainPtr domain, virDomainInfoPtr info);

View File

@ -326,6 +326,7 @@ virConnectCheckStoreID(virConnectPtr conn, int id)
int
xenStoreOpen(virConnectPtr conn,
xmlURIPtr uri ATTRIBUTE_UNUSED,
virConnectAuthPtr auth ATTRIBUTE_UNUSED,
int flags ATTRIBUTE_UNUSED)
{
xenUnifiedPrivatePtr priv = (xenUnifiedPrivatePtr) conn->privateData;
@ -333,7 +334,7 @@ xenStoreOpen(virConnectPtr conn,
#ifdef PROXY
priv->xshandle = xs_daemon_open_readonly();
#else
if (flags & VIR_DRV_OPEN_RO)
if (flags & VIR_CONNECT_RO)
priv->xshandle = xs_daemon_open_readonly();
else
priv->xshandle = xs_daemon_open();

View File

@ -22,6 +22,7 @@ int xenStoreInit (void);
int xenStoreOpen (virConnectPtr conn,
xmlURIPtr uri,
virConnectAuthPtr auth,
int flags);
int xenStoreClose (virConnectPtr conn);
int xenStoreGetDomainInfo (virDomainPtr domain,