From 42fea976df14dbdf3080af4b923e4304687ae252 Mon Sep 17 00:00:00 2001 From: Daniel Veillard Date: Sat, 31 Jan 2009 09:14:58 +0000 Subject: [PATCH] * docs/news.html*: update with infos for 0.6.0 * docs/*: regenerated some data too daniel --- ChangeLog | 5 + NEWS | 77 ++++ docs/devhelp/libvirt-libvirt.html | 38 +- docs/devhelp/libvirt-virterror.html | 12 +- docs/html/libvirt-libvirt.html | 26 +- docs/html/libvirt-virterror.html | 12 +- docs/libvirt-api.xml | 56 ++- docs/libvirt-refs.xml | 570 +++++++++++++++++++++++----- docs/news.html | 70 ++++ docs/news.html.in | 77 ++++ 10 files changed, 816 insertions(+), 127 deletions(-) diff --git a/ChangeLog b/ChangeLog index ba141361dd..ba191b605d 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +Sat Jan 31 10:09:08 CET 2009 Daniel Veillard + + * docs/news.html*: update with infos for 0.6.0 + * docs/*: regenerated some data too + Fri Jan 30 22:57:34 +0100 2009 Jim Meyering tests: diagnose open failure diff --git a/NEWS b/NEWS index 0c1534dae7..d71b4c8c5a 100644 --- a/NEWS +++ b/NEWS @@ -5,6 +5,83 @@ http://libvirt.org/news.html +0.6.0: Jan 31 2009: + - New features: thread safety of the API and event handling (Daniel + Berrange), allow QEmu domains to survive daemon restart (Guido + Günther), extended logging capabilities, support copy-on-write + storage volumes (Daniel Berrange), support of storage cache + control options for QEmu/KVM (Daniel Berrange) + - Portability: fix old DBus API problem, Debian portability fix + (Daniel Berrange), fix distcheck (Jim Meyering), build in + debug mode (Jim Meyering), libnuma API portability (Jim Meyering), + many portability fixes pointed by Solaris (John Levon), non-gcc + portability fixes (John Levon), various include fixes (Jim Meyering), + various Windows and Mingw portability fixes (Daniel Berrange), + solaris Xen fixes (John Levon), RPC portability to Solaris (Daniel + Berrange) + - Documentation: typo fixes (Richard Jones), logging support, + vnc keymap attributes (Guido Günther), HACKING file updates + (Jim Meyering), new PCI passthrough format, libvirt-qpid and + UML driver documentation (Daniel Berrange), provide RNG schemas + for all XML formats used in libvirt APIs (Daniel Berrange), + - Bug fixes: segfault on virtual network without bridge name (Cole + Robinson), various locking fixes (Cole Robinson), fix serial + and parallel devices on tcp/unix/telnet (Guido Günther), leak + in daemon (Jim Meyering), storage driver segfault (Miloslav TrmaC), + missing check in read-only connections (Daniel Berrange), + OpenVZ crash and mutex fixes (Anton Protopopov), couple of + daemon bug fixes (John Levon), OpenVZ MAC addresses generation + (Evgeniy Sokolov), poll call initialization fix (Daniel Berrange), + various Xen driver fixes (John Levon), segfault on device + back compat (Cole Robinson), couple Xen bug fixes coming from + RHEL (Markus Armbruster), buffer overflow in libvirt proxy + (rasputin@email.ru), vnc port report (John Levon), repair save + and restore on recent KVM versions (Daniel Berrange), Xen + cpu pinning XML fix (John Levon), various xen driver fixes + (Daniel Berrange), some memory leak fixes (Daniel Berrange) + - Improvements: driver infrastructure and locking (Daniel Berrange), + Test driver infrastructure (Daniel Berrange), parallelism in the + daemon and associated config (Daniel Berrange), virsh help cleanups + (Jim Meyering), logrotate daemon logs (Guido Günther), more + regression tests (Jim Meyering), QEmu SDL graphics (Itamar Heim), + add --version flag to daemon (Dave Allan), memory consumption + cleanup (Dave Allan), QEmu pid file and XML states for daemon + restart (Guido Günther), gnulib updates (Jim Meyering and + Dan Berrange), PCI passthrough for KVM (Jason Krieg), generic + internal thread API (Daniel Berrange), RHEL-5 specific Xen + configure option and code (Markus Armbruster), save domain + state as string in status file (Guido Günther), add locking + to all API entry points (Daniel Berrange), new ref counting APIs + (Daniel Berrange), IP address for Xen bridges (John Levon), + driver format for disk file types (Daniel Berrange), improve + QEmu/KVM tun/tap performances (Mark McLoughlin), enable floppies + for Xen fully virt (John Levon), support VNC password settings + for QEmu/KVM (Daniel Berrange), qemu driver version reporting + (Daniel Berrange) + - Cleanups: converting linked lists to arrays (Daniel Berrange), + daemon RPC handling refactoring (Daniel Berrange), strings cleanups + (Jim Meyering), gethostby* cleanup and test (Jim Meyering), some + code fixes (Dave Allan), various code cleanup (Jim Meyering), + virsh argument handling cleanup (Jim Meyering), virAsprintf + cleanup replacement (Guido Günther), QEmu monitor reads (Cole + Robinson), Makefile cleanups (Guido Günther), Xen code cleanups + (John Levon), revamp of ELF export scripts (John Levon), domain + event callback args (John Levon), enforce use of pid_t (John Levon), + virsh pool-*-as XML code merge (Cole Robinson), xgettext warnings + (Jim Meyering), add virKillProcess (Guido Günther), add + virGetHostname (David Lutterkort), add flags argument to the full + XML parsing stack (Guido Günther), various daemon code cleanups + (Guido Günther), handling of daemon missing config file (Jim + Meyering), rpcgen invocation cleanup (Richard Jones), devhelp + builkd makefile cleanups (John Levon), update error handling for + threading (Daniel Berrange), remove all non-rentrant POSIX calls + usage (Daniel Berrange), many small cleanups (Jim Meyering and + Daniel Berrange), examples Makefile generator (John Levon), + mis-use of PF_UNIX as a protocol (John Levon), cleanup OOM + error paths (Jim Meyering), temporary fix fro valgrind on lxc + (Daniel Berrange), QEmu driver init cleanups (Daniel Berrange) + + 0.5.1: Dec 4 2008: - Portability: fix missing dep in spec file, fix compilation with new NUMA libraries (Daniel Berrange), udev compatibility for RHEL (Chris diff --git a/docs/devhelp/libvirt-libvirt.html b/docs/devhelp/libvirt-libvirt.html index 9bba266ff5..a9cb1b603f 100644 --- a/docs/devhelp/libvirt-libvirt.html +++ b/docs/devhelp/libvirt-libvirt.html @@ -125,17 +125,18 @@ int virNetworkGetUUID (virConnectPtr virStoragePoolGetConnect (virStoragePoolPtr pool); int virConnectGetVersion (virConnectPtr conn,
unsigned long * hvVer); int virDomainFree (virDomainPtr domain); +int virStorageVolRef (virStorageVolPtr vol); const char * virStoragePoolGetName (virStoragePoolPtr pool); int virDomainSetAutostart (virDomainPtr domain,
int autostart); virStoragePoolPtr virStoragePoolDefineXML (virConnectPtr conn,
const char * xml,
unsigned int flags); virStorageVolPtr virStorageVolLookupByPath (virConnectPtr conn,
const char * path); virStorageVolPtr virStorageVolLookupByName (virStoragePoolPtr pool,
const char * name); -virDomainPtr virDomainCreateLinux (virConnectPtr conn,
const char * xmlDesc,
unsigned int flags); +int virNetworkCreate (virNetworkPtr network); int virDomainSetMaxMemory (virDomainPtr domain,
unsigned long memory); void virEventRegisterImpl (virEventAddHandleFunc addHandle,
virEventUpdateHandleFunc updateHandle,
virEventRemoveHandleFunc removeHandle,
virEventAddTimeoutFunc addTimeout,
virEventUpdateTimeoutFunc updateTimeout,
virEventRemoveTimeoutFunc removeTimeout); virDomainPtr virDomainMigrate (virDomainPtr domain,
virConnectPtr dconn,
unsigned long flags,
const char * dname,
const char * uri,
unsigned long bandwidth); int virDomainSuspend (virDomainPtr domain); -int virNetworkCreate (virNetworkPtr network); +virDomainPtr virDomainCreateLinux (virConnectPtr conn,
const char * xmlDesc,
unsigned int flags); char * virNodeDeviceGetXMLDesc (virNodeDevicePtr dev,
unsigned int flags); typedef void virEventUpdateHandleFunc (int watch,
int event); int virDomainDestroy (virDomainPtr domain); @@ -178,6 +179,7 @@ int virStoragePoolListVolumes (virConnectGetHostname (virConnectPtr conn); typedef int virEventRemoveTimeoutFunc (int timer); const char * virDomainGetName (virDomainPtr domain); +int virStoragePoolRef (virStoragePoolPtr pool); char * virNetworkGetXMLDesc (virNetworkPtr network,
int flags); int virConnectNumOfStoragePools (virConnectPtr conn); const char * virNetworkGetName (virNetworkPtr network); @@ -196,6 +198,7 @@ int virStorageVolFree (virDomainMemoryPeek (virDomainPtr dom,
unsigned long long start,
size_t size,
void * buffer,
unsigned int flags); virNetworkPtr virNetworkLookupByUUID (virConnectPtr conn,
const unsigned char * uuid); int virConnectListDefinedNetworks (virConnectPtr conn,
char ** const names,
int maxnames); +int virConnectRef (virConnectPtr conn); int virDomainGetUUID (virDomainPtr domain,
unsigned char * uuid); virNetworkPtr virNetworkCreateXML (virConnectPtr conn,
const char * xmlDesc); int virDomainGetVcpus (virDomainPtr domain,
virVcpuInfoPtr info,
int maxinfo,
unsigned char * cpumaps,
int maplen); @@ -203,6 +206,7 @@ int virDomainGetVcpus (virStoragePoolGetInfo (virStoragePoolPtr pool,
virStoragePoolInfoPtr info); int virDomainResume (virDomainPtr domain); int virNodeListDevices (virConnectPtr conn,
const char * cap,
char ** const names,
int maxnames,
unsigned int flags); +int virNetworkRef (virNetworkPtr network); int virStoragePoolRefresh (virStoragePoolPtr pool,
unsigned int flags); int virConnectNumOfDefinedDomains (virConnectPtr conn); virStorageVolPtr virStorageVolLookupByKey (virConnectPtr conn,
const char * key); @@ -244,7 +248,9 @@ int virConnectNumOfDefinedStorageP const char * virNodeDeviceGetParent (virNodeDevicePtr dev); virConnectPtr virConnectOpen (const char * name); virDomainPtr virDomainCreateXML (virConnectPtr conn,
const char * xmlDesc,
unsigned int flags); +int virNodeDeviceRef (virNodeDevicePtr dev); int virDomainSetVcpus (virDomainPtr domain,
unsigned int nvcpus); +int virDomainRef (virDomainPtr domain); int virConnectDomainEventRegister (virConnectPtr conn,
virConnectDomainEventCallback cb,
void * opaque,
virFreeCallback freecb); unsigned int virDomainGetID (virDomainPtr domain); int virDomainBlockPeek (virDomainPtr dom,
const char * path,
unsigned long long offset,
size_t size,
void * buffer,
unsigned int flags); @@ -739,8 +745,8 @@ The content of this structure is not made public by the API.
conn:pointer to the connection
cb:callback to the function handling domain events
Returns:0 on success, -1 on failure

virConnectDomainEventRegister ()

int	virConnectDomainEventRegister	(virConnectPtr conn, 
virConnectDomainEventCallback cb,
void * opaque,
virFreeCallback freecb)
-

Adds a Domain Event Callback. Registering for a domain callback will enable delivery of the events

-
conn:pointer to the connection
cb:callback to the function handling domain events
opaque:opaque data to pass on to the callback
freecb:optional function to deallocate opaque when not used anymore
Returns:0 on success, -1 on failure
+

Adds a Domain Event Callback. Registering for a domain callback will enable delivery of the events The virDomainPtr object handle passed into the callback upon delivery of an event is only valid for the duration of execution of the callback. If the callback wishes to keep the domain object after the callback

+
conn:pointer to the connection
cb:callback to the function handling domain events
opaque:opaque data to pass on to the callback
freecb:optional function to deallocate opaque when not used anymore
Returns:it shall take a reference to it, by calling virDomainRef. The reference can be released once the object is no longer required by calling virDomainFree. Returns 0 on success, -1 on failure

virConnectFindStoragePoolSources ()

char *	virConnectFindStoragePoolSources	(virConnectPtr conn, 
const char * type,
const char * srcSpec,
unsigned int flags)

Talks to a storage backend and attempts to auto-discover the set of available storage pool sources. e.g. For iSCSI this would be a set of iSCSI targets. For NFS this would be a list of exported paths. The srcSpec (optional for some storage pool types, e.g. local ones) is an instance of the storage pool's source element specifying where to look for the pools. srcSpec is not required for some types (e.g., those querying local storage resources only)

@@ -829,6 +835,10 @@ The content of this structure is not made public by the API.

virConnectOpenReadOnly ()

virConnectPtr	virConnectOpenReadOnly	(const char * name)

This function should be called first to get a restricted connection to the library functionalities. The set of APIs usable are then restricted on the available methods to control the domains.

name:URI of the hypervisor
Returns:a pointer to the hypervisor connection or NULL in case of error URIs are documented at http://libvirt.org/uri.html
+
+

virConnectRef ()

int	virConnectRef			(virConnectPtr conn)
+

Increment the reference count on the connection. For each additional call to this method, there shall be a corresponding call to virConnectClose to release the reference count, once the caller no longer needs the reference to this object. This method is typically useful for applications where multiple threads are using a connection, and it is required that the connection remain open until all threads have finished using it. ie, each new thread using a connection would increment the reference count.

+
conn:the connection to hold a reference on
Returns:

virDomainAttachDevice ()

int	virDomainAttachDevice		(virDomainPtr domain, 
const char * xml)

Create a virtual device attachment to backend.

@@ -965,6 +975,10 @@ The content of this structure is not made public by the API.

virDomainReboot ()

int	virDomainReboot			(virDomainPtr domain, 
unsigned int flags)

Reboot a domain, the domain object is still usable there after but the domain OS is being stopped for a restart. Note that the guest OS may ignore the request.

domain:a domain object
flags:extra flags for the reboot operation, not used yet
Returns:0 in case of success and -1 in case of failure.
+
+

virDomainRef ()

int	virDomainRef			(virDomainPtr domain)
+

Increment the reference count on the domain. For each additional call to this method, there shall be a corresponding call to virDomainFree to release the reference count, once the caller no longer needs the reference to this object. This method is typically useful for applications where multiple threads are using a connection, and it is required that the connection remain open until all threads have finished using it. ie, each new thread using a domain would increment the reference count.

+
domain:
Returns:

virDomainRestore ()

int	virDomainRestore		(virConnectPtr conn, 
const char * from)

This method will restore a domain saved to disk by virDomainSave().

@@ -1081,6 +1095,10 @@ The content of this structure is not made public by the API.

virNetworkLookupByUUIDString ()

virNetworkPtr	virNetworkLookupByUUIDString	(virConnectPtr conn, 
const char * uuidstr)

Try to lookup a network on the given hypervisor based on its UUID.

conn:pointer to the hypervisor connection
uuidstr:the string UUID for the network
Returns:a new network object or NULL in case of failure. If the network cannot be found, then VIR_ERR_NO_NETWORK error is raised.
+
+

virNetworkRef ()

int	virNetworkRef			(virNetworkPtr network)
+

Increment the reference count on the network. For each additional call to this method, there shall be a corresponding call to virNetworkFree to release the reference count, once the caller no longer needs the reference to this object. This method is typically useful for applications where multiple threads are using a connection, and it is required that the connection remain open until all threads have finished using it. ie, each new thread using a network would increment the reference count.

+
network:
Returns:

virNetworkSetAutostart ()

int	virNetworkSetAutostart		(virNetworkPtr network, 
int autostart)

Configure the network to be automatically started when the host machine boots.

@@ -1117,6 +1135,10 @@ The content of this structure is not made public by the API.

virNodeDeviceNumOfCaps ()

int	virNodeDeviceNumOfCaps		(virNodeDevicePtr dev)

Accessor for the number of capabilities supported by the device.

dev:the device
Returns:the number of capabilities supported by the device.
+
+

virNodeDeviceRef ()

int	virNodeDeviceRef		(virNodeDevicePtr dev)
+

Increment the reference count on the dev. For each additional call to this method, there shall be a corresponding call to virNodeDeviceFree to release the reference count, once the caller no longer needs the reference to this object. This method is typically useful for applications where multiple threads are using a connection, and it is required that the connection remain open until all threads have finished using it. ie, each new thread using a dev would increment the reference count.

+
dev:
Returns:

virNodeGetCellsFreeMemory ()

int	virNodeGetCellsFreeMemory	(virConnectPtr conn, 
unsigned long long * freeMems,
int startCell,
int maxCells)

This call returns the amount of free memory in one or more NUMA cells. The @freeMems array must be allocated by the caller and will be filled with the amount of free memory in kilobytes for each cell requested, starting with startCell (in freeMems[0]), up to either (startCell + maxCells), or the number of additional cells in the node, whichever is smaller.

@@ -1217,6 +1239,10 @@ The content of this structure is not made public by the API.

virStoragePoolNumOfVolumes ()

int	virStoragePoolNumOfVolumes	(virStoragePoolPtr pool)

Fetch the number of storage volumes within a pool

pool:pointer to storage pool
Returns:the number of storage pools, or -1 on failure
+
+

virStoragePoolRef ()

int	virStoragePoolRef		(virStoragePoolPtr pool)
+

Increment the reference count on the pool. For each additional call to this method, there shall be a corresponding call to virStoragePoolFree to release the reference count, once the caller no longer needs the reference to this object. This method is typically useful for applications where multiple threads are using a connection, and it is required that the connection remain open until all threads have finished using it. ie, each new thread using a pool would increment the reference count.

+
pool:
Returns:

virStoragePoolRefresh ()

int	virStoragePoolRefresh		(virStoragePoolPtr pool, 
unsigned int flags)

Request that the pool refresh its list of volumes. This may involve communicating with a remote server, and/or initializing new devices at the OS layer

@@ -1278,6 +1304,10 @@ The content of this structure is not made public by the API.

Fetch a pointer to a storage volume based on its locally (host) unique path

conn:pointer to hypervisor connection
path:locally unique path
Returns:a storage volume, or NULL if not found / error

+

virStorageVolRef ()

int	virStorageVolRef		(virStorageVolPtr vol)
+

Increment the reference count on the vol. For each additional call to this method, there shall be a corresponding call to virStorageVolFree to release the reference count, once the caller no longer needs the reference to this object. This method is typically useful for applications where multiple threads are using a connection, and it is required that the connection remain open until all threads have finished using it. ie, each new thread using a vol would increment the reference count.

+
vol:
Returns:
+
diff --git a/docs/devhelp/libvirt-virterror.html b/docs/devhelp/libvirt-virterror.html index 9e32422bc3..979fb53c35 100644 --- a/docs/devhelp/libvirt-virterror.html +++ b/docs/devhelp/libvirt-virterror.html @@ -184,15 +184,15 @@ void virConnResetLastError (
userData:user provided data for the error callback
error:the error being raised.

virConnCopyLastError ()

int	virConnCopyLastError		(virConnectPtr conn, 
virErrorPtr to)
-

Copy the content of the last error caught on that connection One will need to free the result with virResetError()

+

Copy the content of the last error caught on that connection This method is not protected against access from multiple threads. In a multi-threaded application, always use the global virGetLastError() API which is backed by thread local storage. If the connection object was discovered to be invalid by an API call, then the error will be reported against the global error object. Since 0.6.0, all errors reported in the per-connection object are also duplicated in the global error object. As such an application can always use virGetLastError(). This method remains for backwards compatability. One will need to free the result with virResetError()

conn:pointer to the hypervisor connection
to:target to receive the copy
Returns:0 if no error was found and the error code otherwise and -1 in case of parameter error.

virConnGetLastError ()

virErrorPtr	virConnGetLastError	(virConnectPtr conn)
-

Provide a pointer to the last error caught on that connection Simpler but may not be suitable for multithreaded accesses, in which case use virConnCopyLastError()

+

Provide a pointer to the last error caught on that connection This method is not protected against access from multiple threads. In a multi-threaded application, always use the global virGetLastError() API which is backed by thread local storage. If the connection object was discovered to be invalid by an API call, then the error will be reported against the global error object. Since 0.6.0, all errors reported in the per-connection object are also duplicated in the global error object. As such an application can always use virGetLastError(). This method remains for backwards compatability.

conn:pointer to the hypervisor connection
Returns:a pointer to the last error or NULL if none occurred.

virConnResetLastError ()

void	virConnResetLastError		(virConnectPtr conn)
-

Reset the last error caught on that connection

+

The error object is kept in thread local storage, so separate threads can safely access this concurrently. Reset the last error caught on that connection

conn:pointer to the hypervisor connection


virCopyLastError ()

int	virCopyLastError		(virErrorPtr to)
-

Copy the content of the last error caught at the library level One will need to free the result with virResetError()

+

Copy the content of the last error caught at the library level The error object is kept in thread local storage, so separate threads can safely access this concurrently. One will need to free the result with virResetError()

to:target to receive the copy
Returns:0 if no error was found and the error code otherwise and -1 in case of parameter error.


virGetLastError ()

virErrorPtr	virGetLastError		(void)
-

Provide a pointer to the last error caught at the library level Simpler but may not be suitable for multithreaded accesses, in which case use virCopyLastError()

+

Provide a pointer to the last error caught at the library level The error object is kept in thread local storage, so separate threads can safely access this concurrently.

Returns:a pointer to the last error or NULL if none occurred.



virSetErrorFunc ()

void	virSetErrorFunc			(void * userData, 
virErrorFunc handler)
diff --git a/docs/html/libvirt-libvirt.html b/docs/html/libvirt-libvirt.html index 448cbe9218..d16a340397 100644 --- a/docs/html/libvirt-libvirt.html +++ b/docs/html/libvirt-libvirt.html @@ -99,6 +99,7 @@ int virConnectNumOfStoragePools (virConnectPtr virConnectOpen (const char * name) virConnectPtr virConnectOpenAuth (const char * name,
virConnectAuthPtr auth,
int flags) virConnectPtr virConnectOpenReadOnly (const char * name) +int virConnectRef (virConnectPtr conn) int virDomainAttachDevice (virDomainPtr domain,
const char * xml) int virDomainBlockPeek (virDomainPtr dom,
const char * path,
unsigned long long offset,
size_t size,
void * buffer,
unsigned int flags) int virDomainBlockStats (virDomainPtr dom,
const char * path,
virDomainBlockStatsPtr stats,
size_t size) @@ -133,6 +134,7 @@ int virDomainMemoryPeek (virDomainPtr virDomainMigrate (virDomainPtr domain,
virConnectPtr dconn,
unsigned long flags,
const char * dname,
const char * uri,
unsigned long bandwidth) int virDomainPinVcpu (virDomainPtr domain,
unsigned int vcpu,
unsigned char * cpumap,
int maplen) int virDomainReboot (virDomainPtr domain,
unsigned int flags) +int virDomainRef (virDomainPtr domain) int virDomainRestore (virConnectPtr conn,
const char * from) int virDomainResume (virDomainPtr domain) int virDomainSave (virDomainPtr domain,
const char * to) @@ -189,6 +191,7 @@ char * virNetworkGetXMLDesc (virNetworkPtr virNetworkLookupByName (virConnectPtr conn,
const char * name) virNetworkPtr virNetworkLookupByUUID (virConnectPtr conn,
const unsigned char * uuid) virNetworkPtr virNetworkLookupByUUIDString (virConnectPtr conn,
const char * uuidstr) +int virNetworkRef (virNetworkPtr network) int virNetworkSetAutostart (virNetworkPtr network,
int autostart) int virNetworkUndefine (virNetworkPtr network) int virNodeDeviceFree (virNodeDevicePtr dev) @@ -198,6 +201,7 @@ char * virNodeDeviceGetXMLDesc (virNodeDeviceListCaps (virNodeDevicePtr dev,
char ** const names,
int maxnames) virNodeDevicePtr virNodeDeviceLookupByName (virConnectPtr conn,
const char * name) int virNodeDeviceNumOfCaps (virNodeDevicePtr dev) +int virNodeDeviceRef (virNodeDevicePtr dev) int virNodeGetCellsFreeMemory (virConnectPtr conn,
unsigned long long * freeMems,
int startCell,
int maxCells) unsigned long long virNodeGetFreeMemory (virConnectPtr conn) int virNodeGetInfo (virConnectPtr conn,
virNodeInfoPtr info) @@ -223,6 +227,7 @@ int virStoragePoolListVolumes (virStoragePoolPtr virStoragePoolLookupByUUIDString (virConnectPtr conn,
const char * uuidstr) virStoragePoolPtr virStoragePoolLookupByVolume (virStorageVolPtr vol) int virStoragePoolNumOfVolumes (virStoragePoolPtr pool) +int virStoragePoolRef (virStoragePoolPtr pool) int virStoragePoolRefresh (virStoragePoolPtr pool,
unsigned int flags) int virStoragePoolSetAutostart (virStoragePoolPtr pool,
int autostart) int virStoragePoolUndefine (virStoragePoolPtr pool) @@ -238,6 +243,7 @@ char * virStorageVolGetXMLDesc (virStorageVolPtr virStorageVolLookupByKey (virConnectPtr conn,
const char * key) virStorageVolPtr virStorageVolLookupByName (virStoragePoolPtr pool,
const char * name) virStorageVolPtr virStorageVolLookupByPath (virConnectPtr conn,
const char * path) +int virStorageVolRef (virStorageVolPtr vol)

Description

Macros

LIBVIR_VERSION_NUMBER

#define LIBVIR_VERSION_NUMBER

Macro providing the version of the library as version * 1,000,000 + minor * 1000 + micro

VIR_COPY_CPUMAP

#define VIR_COPY_CPUMAP

This macro is to be used in conjunction with virDomainGetVcpus() and virDomainPinVcpu() APIs. VIR_COPY_CPUMAP macro extract the cpumap of the specified vcpu from cpumaps array and copy it into cpumap to be used later by virDomainPinVcpu() API.

VIR_CPU_MAPLEN

#define VIR_CPU_MAPLEN

This macro is to be used in conjunction with virDomainPinVcpu() API. It returns the length (in bytes) required to store the complete CPU map between a single virtual & all physical CPUs of a domain.

VIR_CPU_USABLE

#define VIR_CPU_USABLE

This macro is to be used in conjunction with virDomainGetVcpus() API. VIR_CPU_USABLE macro returns a non zero value (true) if the cpu is usable by the vcpu, and 0 otherwise.

VIR_DOMAIN_SCHED_FIELD_LENGTH

#define VIR_DOMAIN_SCHED_FIELD_LENGTH

Macro providing the field length of virSchedParameter

VIR_GET_CPUMAP

#define VIR_GET_CPUMAP

This macro is to be used in conjunction with virDomainGetVcpus() and virDomainPinVcpu() APIs. VIR_GET_CPUMAP macro returns a pointer to the cpumap of the specified vcpu from cpumaps array.

VIR_NODEINFO_MAXCPUS

#define VIR_NODEINFO_MAXCPUS

This macro is to calculate the total number of CPUs supported but not necessary active in the host.

VIR_UNUSE_CPU

#define VIR_UNUSE_CPU

This macro is to be used in conjunction with virDomainPinVcpu() API. USE_CPU macro reset the bit (CPU not usable) of the related cpu in cpumap.

VIR_USE_CPU

#define VIR_USE_CPU

This macro is to be used in conjunction with virDomainPinVcpu() API. USE_CPU macro set the bit (CPU usable) of the related cpu in cpumap.

VIR_UUID_BUFLEN

#define VIR_UUID_BUFLEN

This macro provides the length of the buffer required for virDomainGetUUID()

VIR_UUID_STRING_BUFLEN

#define VIR_UUID_STRING_BUFLEN

This macro provides the length of the buffer required for virDomainGetUUIDString()

Types

virConnect

struct virConnect{
 
The content of this structure is not made public by the API
 }
@@ -335,7 +341,7 @@ char *	virStorageVolGetXMLDesc		(

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.

conn:pointer to the hypervisor connection
Returns:0 in case of success or -1 in case of error.

virConnectDomainEventCallback

typedef int	(*virConnectDomainEventCallback)	(virConnectPtr conn, 
virDomainPtr dom,
int event,
int detail,
void * opaque)

A callback function to be registered, and called when a domain event occurs

conn:virConnect connection
dom:The domain on which the event occured
event:The specfic virDomainEventType which occured
detail:event specific detail information
opaque:opaque user data
Returns:

virConnectDomainEventDeregister

int	virConnectDomainEventDeregister	(virConnectPtr conn, 
virConnectDomainEventCallback cb)

Removes a Domain Event Callback. De-registering for a domain callback will disable delivery of this event type

conn:pointer to the connection
cb:callback to the function handling domain events
Returns:0 on success, -1 on failure

virConnectDomainEventRegister

int	virConnectDomainEventRegister	(virConnectPtr conn, 
virConnectDomainEventCallback cb,
void * opaque,
virFreeCallback freecb)
-

Adds a Domain Event Callback. Registering for a domain callback will enable delivery of the events

conn:pointer to the connection
cb:callback to the function handling domain events
opaque:opaque data to pass on to the callback
freecb:optional function to deallocate opaque when not used anymore
Returns:0 on success, -1 on failure

virConnectFindStoragePoolSources

char *	virConnectFindStoragePoolSources	(virConnectPtr conn, 
const char * type,
const char * srcSpec,
unsigned int flags)
+

Adds a Domain Event Callback. Registering for a domain callback will enable delivery of the events The virDomainPtr object handle passed into the callback upon delivery of an event is only valid for the duration of execution of the callback. If the callback wishes to keep the domain object after the callback

conn:pointer to the connection
cb:callback to the function handling domain events
opaque:opaque data to pass on to the callback
freecb:optional function to deallocate opaque when not used anymore
Returns:it shall take a reference to it, by calling virDomainRef. The reference can be released once the object is no longer required by calling virDomainFree. Returns 0 on success, -1 on failure

virConnectFindStoragePoolSources

char *	virConnectFindStoragePoolSources	(virConnectPtr conn, 
const char * type,
const char * srcSpec,
unsigned int flags)

Talks to a storage backend and attempts to auto-discover the set of available storage pool sources. e.g. For iSCSI this would be a set of iSCSI targets. For NFS this would be a list of exported paths. The srcSpec (optional for some storage pool types, e.g. local ones) is an instance of the storage pool's source element specifying where to look for the pools. srcSpec is not required for some types (e.g., those querying local storage resources only)

conn:pointer to hypervisor connection
type:type of storage pool sources to discover
srcSpec:XML document specifying discovery source
flags:flags for discovery (unused, pass 0)
Returns:an xml document consisting of a SourceList element containing a source document appropriate to the given pool type for each discovered source.

virConnectGetCapabilities

char *	virConnectGetCapabilities	(virConnectPtr conn)

Provides capabilities of the hypervisor / driver.

conn:pointer to the hypervisor connection
Returns:NULL in case of error, or an XML string defining the capabilities. The client must free the returned string after use.

virConnectGetHostname

char *	virConnectGetHostname		(virConnectPtr conn)

This returns the system hostname on which the hypervisor is running (the result of the gethostname(2) system call). If we are connected to a remote system, then this returns the hostname of the remote system.

conn:pointer to a hypervisor connection
Returns:the hostname which must be freed by the caller, or NULL if there was an error.

virConnectGetMaxVcpus

int	virConnectGetMaxVcpus		(virConnectPtr conn, 
const char * type)
@@ -357,7 +363,8 @@ char * virStorageVolGetXMLDesc (

Provides the number of active storage pools

conn:pointer to hypervisor connection
Returns:the number of pools found, or -1 on error

virConnectOpen

virConnectPtr	virConnectOpen		(const char * name)

This function should be called first to get a connection to the Hypervisor and xen store

name:URI of the hypervisor
Returns:a pointer to the hypervisor connection or NULL in case of error URIs are documented at http://libvirt.org/uri.html

virConnectOpenAuth

virConnectPtr	virConnectOpenAuth	(const char * name, 
virConnectAuthPtr auth,
int flags)

This function should be called first to get a connection to the Hypervisor. If necessary, authentication will be performed fetching credentials via the callback

name:URI of the hypervisor
auth:Authenticate callback parameters
flags:Open flags
Returns:a pointer to the hypervisor connection or NULL in case of error URIs are documented at http://libvirt.org/uri.html

virConnectOpenReadOnly

virConnectPtr	virConnectOpenReadOnly	(const char * name)
-

This function should be called first to get a restricted connection to the library functionalities. The set of APIs usable are then restricted on the available methods to control the domains.

name:URI of the hypervisor
Returns:a pointer to the hypervisor connection or NULL in case of error URIs are documented at http://libvirt.org/uri.html

virDomainAttachDevice

int	virDomainAttachDevice		(virDomainPtr domain, 
const char * xml)
+

This function should be called first to get a restricted connection to the library functionalities. The set of APIs usable are then restricted on the available methods to control the domains.

name:URI of the hypervisor
Returns:a pointer to the hypervisor connection or NULL in case of error URIs are documented at http://libvirt.org/uri.html

virConnectRef

int	virConnectRef			(virConnectPtr conn)
+

Increment the reference count on the connection. For each additional call to this method, there shall be a corresponding call to virConnectClose to release the reference count, once the caller no longer needs the reference to this object. This method is typically useful for applications where multiple threads are using a connection, and it is required that the connection remain open until all threads have finished using it. ie, each new thread using a connection would increment the reference count.

conn:the connection to hold a reference on
Returns:

virDomainAttachDevice

int	virDomainAttachDevice		(virDomainPtr domain, 
const char * xml)

Create a virtual device attachment to backend.

domain:pointer to domain object
xml:pointer to XML description of one device
Returns:0 in case of success, -1 in case of failure.

virDomainBlockPeek

int	virDomainBlockPeek		(virDomainPtr dom, 
const char * path,
unsigned long long offset,
size_t size,
void * buffer,
unsigned int flags)

This function allows you to read the contents of a domain's disk device. Typical uses for this are to determine if the domain has written a Master Boot Record (indicating that the domain has completed installation), or to try to work out the state of the domain's filesystems. (Note that in the local case you might try to open the block device or file directly, but that won't work in the remote case, nor if you don't have sufficient permission. Hence the need for this call). 'path' must be a device or file corresponding to the domain. In other words it must be the precise string returned in a <disk><source dev='...'/></disk> from virDomainGetXMLDesc. 'offset' and 'size' represent an area which must lie entirely within the device or file. 'size' may be 0 to test if the call would succeed. 'buffer' is the return buffer and must be at least 'size' bytes. NB. The remote driver imposes a 64K byte limit on 'size'. For your program to be able to work reliably over a remote connection you should split large requests to <= 65536 bytes.

dom:pointer to the domain object
path:path to the block device
offset:offset within block device
size:size to read
buffer:return buffer (must be at least size bytes)
flags:unused, always pass 0
Returns:0 in case of success or -1 in case of failure. really 64 bits

virDomainBlockStats

int	virDomainBlockStats		(virDomainPtr dom, 
const char * path,
virDomainBlockStatsPtr stats,
size_t size)

This function returns block device (disk) stats for block devices attached to the domain. The path parameter is the name of the block device. Get this by calling virDomainGetXMLDesc and finding the <target dev='...'> attribute within //domain/devices/disk. (For example, "xvda"). Domains may have more than one block device. To get stats for each you should make multiple calls to this function. Individual fields within the stats structure may be returned as -1, which indicates that the hypervisor does not support that particular statistic.

dom:pointer to the domain object
path:path to the block device
stats:block device stats (returned)
size:size of stats structure
Returns:0 in case of success or -1 in case of failure.

virDomainCoreDump

int	virDomainCoreDump		(virDomainPtr domain, 
const char * to,
int flags)
@@ -391,7 +398,8 @@ char * virStorageVolGetXMLDesc (

This function allows you to read the contents of a domain's memory. The memory which is read is controlled by the 'start', 'size' and 'flags' parameters. If 'flags' is VIR_MEMORY_VIRTUAL then the 'start' and 'size' parameters are interpreted as virtual memory addresses for whichever task happens to be running on the domain at the moment. Although this sounds haphazard it is in fact what you want in order to read Linux kernel state, because it ensures that pointers in the kernel image can be interpreted coherently. 'buffer' is the return buffer and must be at least 'size' bytes. 'size' may be 0 to test if the call would succeed. NB. The remote driver imposes a 64K byte limit on 'size'. For your program to be able to work reliably over a remote connection you should split large requests to <= 65536 bytes.

dom:pointer to the domain object
start:start of memory to peek
size:size of memory to peek
buffer:return buffer (must be at least size bytes)
flags:flags, see below
Returns:0 in case of success or -1 in case of failure. really 64 bits

virDomainMigrate

virDomainPtr	virDomainMigrate	(virDomainPtr domain, 
virConnectPtr dconn,
unsigned long flags,
const char * dname,
const char * uri,
unsigned long bandwidth)

Migrate the domain object from its current host to the destination host given by dconn (a connection to the destination host). Flags may be one of more of the following: VIR_MIGRATE_LIVE Attempt a live migration. If a hypervisor supports renaming domains during migration, then you may set the dname parameter to the new name (otherwise it keeps the same name). If this is not supported by the hypervisor, dname must be NULL or else you will get an error. Since typically the two hypervisors connect directly to each other in order to perform the migration, you may need to specify a path from the source to the destination. This is the purpose of the uri parameter. If uri is NULL, then libvirt will try to find the best method. Uri may specify the hostname or IP address of the destination host as seen from the source. Or uri may be a URI giving transport, hostname, user, port, etc. in the usual form. Refer to driver documentation for the particular URIs supported. The maximum bandwidth (in Mbps) that will be used to do migration can be specified with the bandwidth parameter. If set to 0, libvirt will choose a suitable default. Some hypervisors do not support this feature and will return an error if bandwidth is not 0. To see which features are supported by the current hypervisor, see virConnectGetCapabilities, /capabilities/host/migration_features. There are many limitations on migration imposed by the underlying technology - for example it may not be possible to migrate between different processors even with the same architecture, or between different types of hypervisor.

domain:a domain object
dconn:destination host (a connection object)
flags:flags
dname:(optional) rename domain to this at destination
uri:(optional) dest hostname/URI as seen from the source host
bandwidth:(optional) specify migration bandwidth limit in Mbps
Returns:the new domain object if the migration was successful, or NULL in case of error. Note that the new domain object exists in the scope of the destination connection (dconn).

virDomainPinVcpu

int	virDomainPinVcpu		(virDomainPtr domain, 
unsigned int vcpu,
unsigned char * cpumap,
int maplen)

Dynamically change the real CPUs which can be allocated to a virtual CPU. This function requires privileged access to the hypervisor.

domain:pointer to domain object, or NULL for Domain0
vcpu:virtual CPU number
cpumap:pointer to a bit map of real CPUs (in 8-bit bytes) (IN) Each bit set to 1 means that corresponding CPU is usable. Bytes are stored in little-endian order: CPU0-7, 8-15... In each byte, lowest CPU number is least significant bit.
maplen:number of bytes in cpumap, from 1 up to size of CPU map in underlying virtualization system (Xen...). If maplen < size, missing bytes are set to zero. If maplen > size, failure code is returned.
Returns:0 in case of success, -1 in case of failure.

virDomainReboot

int	virDomainReboot			(virDomainPtr domain, 
unsigned int flags)
-

Reboot a domain, the domain object is still usable there after but the domain OS is being stopped for a restart. Note that the guest OS may ignore the request.

domain:a domain object
flags:extra flags for the reboot operation, not used yet
Returns:0 in case of success and -1 in case of failure.

virDomainRestore

int	virDomainRestore		(virConnectPtr conn, 
const char * from)
+

Reboot a domain, the domain object is still usable there after but the domain OS is being stopped for a restart. Note that the guest OS may ignore the request.

domain:a domain object
flags:extra flags for the reboot operation, not used yet
Returns:0 in case of success and -1 in case of failure.

virDomainRef

int	virDomainRef			(virDomainPtr domain)
+

Increment the reference count on the domain. For each additional call to this method, there shall be a corresponding call to virDomainFree to release the reference count, once the caller no longer needs the reference to this object. This method is typically useful for applications where multiple threads are using a connection, and it is required that the connection remain open until all threads have finished using it. ie, each new thread using a domain would increment the reference count.

domain:
Returns:

virDomainRestore

int	virDomainRestore		(virConnectPtr conn, 
const char * from)

This method will restore a domain saved to disk by virDomainSave().

conn:pointer to the hypervisor connection
from:path to the
Returns:0 in case of success and -1 in case of failure.

virDomainResume

int	virDomainResume			(virDomainPtr domain)

Resume an suspended domain, the process is restarted from the state where it was frozen by calling virSuspendDomain(). This function may requires privileged access

domain:a domain object
Returns:0 in case of success and -1 in case of failure.

virDomainSave

int	virDomainSave			(virDomainPtr domain, 
const char * to)

This method will suspend a domain and save its memory contents to a file on disk. After the call, if successful, the domain is not listed as running anymore (this may be a problem). Use virDomainRestore() to restore a domain after saving.

domain:a domain object
to:path for the output file
Returns:0 in case of success and -1 in case of failure.

virDomainSetAutostart

int	virDomainSetAutostart		(virDomainPtr domain, 
int autostart)
@@ -429,7 +437,8 @@ char * virStorageVolGetXMLDesc (

Provide an XML description of the network. The description may be reused later to relaunch the network with virNetworkCreateXML().

network:a network object
flags:and OR'ed set of extraction flags, not used yet
Returns:a 0 terminated UTF-8 encoded XML instance, or NULL in case of error. the caller must free() the returned value.

virNetworkLookupByName

virNetworkPtr	virNetworkLookupByName	(virConnectPtr conn, 
const char * name)

Try to lookup a network on the given hypervisor based on its name.

conn:pointer to the hypervisor connection
name:name for the network
Returns:a new network object or NULL in case of failure. If the network cannot be found, then VIR_ERR_NO_NETWORK error is raised.

virNetworkLookupByUUID

virNetworkPtr	virNetworkLookupByUUID	(virConnectPtr conn, 
const unsigned char * uuid)

Try to lookup a network on the given hypervisor based on its UUID.

conn:pointer to the hypervisor connection
uuid:the raw UUID for the network
Returns:a new network object or NULL in case of failure. If the network cannot be found, then VIR_ERR_NO_NETWORK error is raised.

virNetworkLookupByUUIDString

virNetworkPtr	virNetworkLookupByUUIDString	(virConnectPtr conn, 
const char * uuidstr)
-

Try to lookup a network on the given hypervisor based on its UUID.

conn:pointer to the hypervisor connection
uuidstr:the string UUID for the network
Returns:a new network object or NULL in case of failure. If the network cannot be found, then VIR_ERR_NO_NETWORK error is raised.

virNetworkSetAutostart

int	virNetworkSetAutostart		(virNetworkPtr network, 
int autostart)
+

Try to lookup a network on the given hypervisor based on its UUID.

conn:pointer to the hypervisor connection
uuidstr:the string UUID for the network
Returns:a new network object or NULL in case of failure. If the network cannot be found, then VIR_ERR_NO_NETWORK error is raised.

virNetworkRef

int	virNetworkRef			(virNetworkPtr network)
+

Increment the reference count on the network. For each additional call to this method, there shall be a corresponding call to virNetworkFree to release the reference count, once the caller no longer needs the reference to this object. This method is typically useful for applications where multiple threads are using a connection, and it is required that the connection remain open until all threads have finished using it. ie, each new thread using a network would increment the reference count.

network:
Returns:

virNetworkSetAutostart

int	virNetworkSetAutostart		(virNetworkPtr network, 
int autostart)

Configure the network to be automatically started when the host machine boots.

network:a network object
autostart:whether the network should be automatically started 0 or 1
Returns:-1 in case of error, 0 in case of success

virNetworkUndefine

int	virNetworkUndefine		(virNetworkPtr network)

Undefine a network but does not stop it if it is running

network:pointer to a defined network
Returns:0 in case of success, -1 in case of error

virNodeDeviceFree

int	virNodeDeviceFree		(virNodeDevicePtr dev)

Drops a reference to the node device, freeing it if this was the last reference.

dev:pointer to the node device
Returns:the 0 for success, -1 for error.

virNodeDeviceGetName

const char *	virNodeDeviceGetName	(virNodeDevicePtr dev)
@@ -438,7 +447,8 @@ char * virStorageVolGetXMLDesc (

Fetch an XML document describing all aspects of the device.

dev:pointer to the node device
flags:flags for XML generation (unused, pass 0)
Returns:the XML document, or NULL on error

virNodeDeviceListCaps

int	virNodeDeviceListCaps		(virNodeDevicePtr dev, 
char ** const names,
int maxnames)

Lists the names of the capabilities supported by the device.

dev:the device
names:array to collect the list of capability names
maxnames:size of @names
Returns:the number of capability names listed in @names.

virNodeDeviceLookupByName

virNodeDevicePtr	virNodeDeviceLookupByName	(virConnectPtr conn, 
const char * name)

Lookup a node device by its name.

conn:pointer to the hypervisor connection
name:unique device name
Returns:a virNodeDevicePtr if found, NULL otherwise.

virNodeDeviceNumOfCaps

int	virNodeDeviceNumOfCaps		(virNodeDevicePtr dev)
-

Accessor for the number of capabilities supported by the device.

dev:the device
Returns:the number of capabilities supported by the device.

virNodeGetCellsFreeMemory

int	virNodeGetCellsFreeMemory	(virConnectPtr conn, 
unsigned long long * freeMems,
int startCell,
int maxCells)
+

Accessor for the number of capabilities supported by the device.

dev:the device
Returns:the number of capabilities supported by the device.

virNodeDeviceRef

int	virNodeDeviceRef		(virNodeDevicePtr dev)
+

Increment the reference count on the dev. For each additional call to this method, there shall be a corresponding call to virNodeDeviceFree to release the reference count, once the caller no longer needs the reference to this object. This method is typically useful for applications where multiple threads are using a connection, and it is required that the connection remain open until all threads have finished using it. ie, each new thread using a dev would increment the reference count.

dev:
Returns:

virNodeGetCellsFreeMemory

int	virNodeGetCellsFreeMemory	(virConnectPtr conn, 
unsigned long long * freeMems,
int startCell,
int maxCells)

This call returns the amount of free memory in one or more NUMA cells. The @freeMems array must be allocated by the caller and will be filled with the amount of free memory in kilobytes for each cell requested, starting with startCell (in freeMems[0]), up to either (startCell + maxCells), or the number of additional cells in the node, whichever is smaller.

conn:pointer to the hypervisor connection
freeMems:pointer to the array of unsigned long long
startCell:index of first cell to return freeMems info on.
maxCells:Maximum number of cells for which freeMems information can be returned.
Returns:the number of entries filled in freeMems, or -1 in case of error.

virNodeGetFreeMemory

unsigned long long	virNodeGetFreeMemory	(virConnectPtr conn)

provides the free memory available on the Node

conn:pointer to the hypervisor connection
Returns:the available free memory in kilobytes or 0 in case of error

virNodeGetInfo

int	virNodeGetInfo			(virConnectPtr conn, 
virNodeInfoPtr info)

Extract hardware information about the node.

conn:pointer to the hypervisor connection
info:pointer to a virNodeInfo structure allocated by the user
Returns:0 in case of success and -1 in case of failure.

virNodeListDevices

int	virNodeListDevices		(virConnectPtr conn, 
const char * cap,
char ** const names,
int maxnames,
unsigned int flags)
@@ -463,7 +473,8 @@ char * virStorageVolGetXMLDesc (

Fetch a storage pool based on its globally unique id

conn:pointer to hypervisor connection
uuid:globally unique id of pool to fetch
Returns:a virStoragePoolPtr object, or NULL if no matching pool is found

virStoragePoolLookupByUUIDString

virStoragePoolPtr	virStoragePoolLookupByUUIDString	(virConnectPtr conn, 
const char * uuidstr)

Fetch a storage pool based on its globally unique id

conn:pointer to hypervisor connection
uuidstr:globally unique id of pool to fetch
Returns:a virStoragePoolPtr object, or NULL if no matching pool is found

virStoragePoolLookupByVolume

virStoragePoolPtr	virStoragePoolLookupByVolume	(virStorageVolPtr vol)

Fetch a storage pool which contains a particular volume

vol:pointer to storage volume
Returns:a virStoragePoolPtr object, or NULL if no matching pool is found

virStoragePoolNumOfVolumes

int	virStoragePoolNumOfVolumes	(virStoragePoolPtr pool)
-

Fetch the number of storage volumes within a pool

pool:pointer to storage pool
Returns:the number of storage pools, or -1 on failure

virStoragePoolRefresh

int	virStoragePoolRefresh		(virStoragePoolPtr pool, 
unsigned int flags)
+

Fetch the number of storage volumes within a pool

pool:pointer to storage pool
Returns:the number of storage pools, or -1 on failure

virStoragePoolRef

int	virStoragePoolRef		(virStoragePoolPtr pool)
+

Increment the reference count on the pool. For each additional call to this method, there shall be a corresponding call to virStoragePoolFree to release the reference count, once the caller no longer needs the reference to this object. This method is typically useful for applications where multiple threads are using a connection, and it is required that the connection remain open until all threads have finished using it. ie, each new thread using a pool would increment the reference count.

pool:
Returns:

virStoragePoolRefresh

int	virStoragePoolRefresh		(virStoragePoolPtr pool, 
unsigned int flags)

Request that the pool refresh its list of volumes. This may involve communicating with a remote server, and/or initializing new devices at the OS layer

pool:pointer to storage pool
flags:flags to control refresh behaviour (currently unused, use 0)
Returns:0 if the volume list was refreshed, -1 on failure

virStoragePoolSetAutostart

int	virStoragePoolSetAutostart	(virStoragePoolPtr pool, 
int autostart)

Sets the autostart flag

pool:pointer to storage pool
autostart:new flag setting
Returns:0 on success, -1 on failure

virStoragePoolUndefine

int	virStoragePoolUndefine		(virStoragePoolPtr pool)

Undefine an inactive storage pool

pool:pointer to storage pool
Returns:a virStoragePoolPtr object, or NULL if creation failed

virStorageVolCreateXML

virStorageVolPtr	virStorageVolCreateXML	(virStoragePoolPtr pool, 
const char * xmldesc,
unsigned int flags)
@@ -478,5 +489,6 @@ char * virStorageVolGetXMLDesc (

Fetch an XML document describing all aspects of the storage volume

vol:pointer to storage volume
flags:flags for XML generation (unused, pass 0)
Returns:the XML document, or NULL on error

virStorageVolLookupByKey

virStorageVolPtr	virStorageVolLookupByKey	(virConnectPtr conn, 
const char * key)

Fetch a pointer to a storage volume based on its globally unique key

conn:pointer to hypervisor connection
key:globally unique key
Returns:a storage volume, or NULL if not found / error

virStorageVolLookupByName

virStorageVolPtr	virStorageVolLookupByName	(virStoragePoolPtr pool, 
const char * name)

Fetch a pointer to a storage volume based on its name within a pool

pool:pointer to storage pool
name:name of storage volume
Returns:a storage volume, or NULL if not found / error

virStorageVolLookupByPath

virStorageVolPtr	virStorageVolLookupByPath	(virConnectPtr conn, 
const char * path)
-

Fetch a pointer to a storage volume based on its locally (host) unique path

conn:pointer to hypervisor connection
path:locally unique path
Returns:a storage volume, or NULL if not found / error
diff --git a/docs/html/libvirt-virterror.html b/docs/html/libvirt-virterror.html index ee65bc77f2..4c744db000 100644 --- a/docs/html/libvirt-virterror.html +++ b/docs/html/libvirt-virterror.html @@ -31,15 +31,15 @@ void virSetErrorFunc (void * userData,

virErrorNumber

enum virErrorNumber {
 
VIR_ERR_OK = 0
VIR_ERR_INTERNAL_ERROR = 1 : internal error
VIR_ERR_NO_MEMORY = 2 : memory allocation failure
VIR_ERR_NO_SUPPORT = 3 : no support for this function
VIR_ERR_UNKNOWN_HOST = 4 : could not resolve hostname
VIR_ERR_NO_CONNECT = 5 : can't connect to hypervisor
VIR_ERR_INVALID_CONN = 6 : invalid connection object
VIR_ERR_INVALID_DOMAIN = 7 : invalid domain object
VIR_ERR_INVALID_ARG = 8 : invalid function argument
VIR_ERR_OPERATION_FAILED = 9 : a command to hypervisor failed
VIR_ERR_GET_FAILED = 10 : a HTTP GET command to failed
VIR_ERR_POST_FAILED = 11 : a HTTP POST command to failed
VIR_ERR_HTTP_ERROR = 12 : unexpected HTTP error code
VIR_ERR_SEXPR_SERIAL = 13 : failure to serialize an S-Expr
VIR_ERR_NO_XEN = 14 : could not open Xen hypervisor control
VIR_ERR_XEN_CALL = 15 : failure doing an hypervisor call
VIR_ERR_OS_TYPE = 16 : unknown OS type
VIR_ERR_NO_KERNEL = 17 : missing kernel information
VIR_ERR_NO_ROOT = 18 : missing root device information
VIR_ERR_NO_SOURCE = 19 : missing source device information
VIR_ERR_NO_TARGET = 20 : missing target device information
VIR_ERR_NO_NAME = 21 : missing domain name information
VIR_ERR_NO_OS = 22 : missing domain OS information
VIR_ERR_NO_DEVICE = 23 : missing domain devices information
VIR_ERR_NO_XENSTORE = 24 : could not open Xen Store control
VIR_ERR_DRIVER_FULL = 25 : too many drivers registered
VIR_ERR_CALL_FAILED = 26 : not supported by the drivers (DEPRECATED)
VIR_ERR_XML_ERROR = 27 : an XML description is not well formed or broken
VIR_ERR_DOM_EXIST = 28 : the domain already exist
VIR_ERR_OPERATION_DENIED = 29 : operation forbidden on read-only connections
VIR_ERR_OPEN_FAILED = 30 : failed to open a conf file
VIR_ERR_READ_FAILED = 31 : failed to read a conf file
VIR_ERR_PARSE_FAILED = 32 : failed to parse a conf file
VIR_ERR_CONF_SYNTAX = 33 : failed to parse the syntax of a conf file
VIR_ERR_WRITE_FAILED = 34 : failed to write a conf file
VIR_ERR_XML_DETAIL = 35 : detail of an XML error
VIR_ERR_INVALID_NETWORK = 36 : invalid network object
VIR_ERR_NETWORK_EXIST = 37 : the network already exist
VIR_ERR_SYSTEM_ERROR = 38 : general system call failure
VIR_ERR_RPC = 39 : some sort of RPC error
VIR_ERR_GNUTLS_ERROR = 40 : error from a GNUTLS call
VIR_WAR_NO_NETWORK = 41 : failed to start network
VIR_ERR_NO_DOMAIN = 42 : domain not found or unexpectedly disappeared
VIR_ERR_NO_NETWORK = 43 : network not found
VIR_ERR_INVALID_MAC = 44 : invalid MAC address
VIR_ERR_AUTH_FAILED = 45 : authentication failed
VIR_ERR_INVALID_STORAGE_POOL = 46 : invalid storage pool object
VIR_ERR_INVALID_STORAGE_VOL = 47 : invalid storage vol object
VIR_WAR_NO_STORAGE = 48 : failed to start storage
VIR_ERR_NO_STORAGE_POOL = 49 : storage pool not found
VIR_ERR_NO_STORAGE_VOL = 50 : storage pool not found
VIR_WAR_NO_NODE = 51 : failed to start node driver
VIR_ERR_INVALID_NODE_DEVICE = 52 : invalid node device object
VIR_ERR_NO_NODE_DEVICE = 53 : node device not found
}
 

Functions

virConnCopyLastError

int	virConnCopyLastError		(virConnectPtr conn, 
virErrorPtr to)
-

Copy the content of the last error caught on that connection One will need to free the result with virResetError()

conn:pointer to the hypervisor connection
to:target to receive the copy
Returns:0 if no error was found and the error code otherwise and -1 in case of parameter error.

virConnGetLastError

virErrorPtr	virConnGetLastError	(virConnectPtr conn)
-

Provide a pointer to the last error caught on that connection Simpler but may not be suitable for multithreaded accesses, in which case use virConnCopyLastError()

conn:pointer to the hypervisor connection
Returns:a pointer to the last error or NULL if none occurred.

virConnResetLastError

void	virConnResetLastError		(virConnectPtr conn)
-

Reset the last error caught on that connection

conn:pointer to the hypervisor connection

virConnSetErrorFunc

void	virConnSetErrorFunc		(virConnectPtr conn, 
void * userData,
virErrorFunc handler)
+

Copy the content of the last error caught on that connection This method is not protected against access from multiple threads. In a multi-threaded application, always use the global virGetLastError() API which is backed by thread local storage. If the connection object was discovered to be invalid by an API call, then the error will be reported against the global error object. Since 0.6.0, all errors reported in the per-connection object are also duplicated in the global error object. As such an application can always use virGetLastError(). This method remains for backwards compatability. One will need to free the result with virResetError()

conn:pointer to the hypervisor connection
to:target to receive the copy
Returns:0 if no error was found and the error code otherwise and -1 in case of parameter error.

virConnGetLastError

virErrorPtr	virConnGetLastError	(virConnectPtr conn)
+

Provide a pointer to the last error caught on that connection This method is not protected against access from multiple threads. In a multi-threaded application, always use the global virGetLastError() API which is backed by thread local storage. If the connection object was discovered to be invalid by an API call, then the error will be reported against the global error object. Since 0.6.0, all errors reported in the per-connection object are also duplicated in the global error object. As such an application can always use virGetLastError(). This method remains for backwards compatability.

conn:pointer to the hypervisor connection
Returns:a pointer to the last error or NULL if none occurred.

virConnResetLastError

void	virConnResetLastError		(virConnectPtr conn)
+

The error object is kept in thread local storage, so separate threads can safely access this concurrently. Reset the last error caught on that connection

conn:pointer to the hypervisor connection

virConnSetErrorFunc

void	virConnSetErrorFunc		(virConnectPtr conn, 
void * userData,
virErrorFunc handler)

Set a connection error handling function, if @handler is NULL it will reset to default which is to pass error back to the global library handler.

conn:pointer to the hypervisor connection
userData:pointer to the user data provided in the handler callback
handler:the function to get called in case of error or NULL

virCopyLastError

int	virCopyLastError		(virErrorPtr to)
-

Copy the content of the last error caught at the library level One will need to free the result with virResetError()

to:target to receive the copy
Returns:0 if no error was found and the error code otherwise and -1 in case of parameter error.

virDefaultErrorFunc

void	virDefaultErrorFunc		(virErrorPtr err)
+

Copy the content of the last error caught at the library level The error object is kept in thread local storage, so separate threads can safely access this concurrently. One will need to free the result with virResetError()

to:target to receive the copy
Returns:0 if no error was found and the error code otherwise and -1 in case of parameter error.

virDefaultErrorFunc

void	virDefaultErrorFunc		(virErrorPtr err)

Default routine reporting an error to stderr.

err:pointer to the error.

virErrorFunc

typedef void	(*virErrorFunc		)	(void * userData, 
virErrorPtr error)

Signature of a function to use when there is an error raised by the library.

userData:user provided data for the error callback
error:the error being raised.

virGetLastError

virErrorPtr	virGetLastError		(void)
-

Provide a pointer to the last error caught at the library level Simpler but may not be suitable for multithreaded accesses, in which case use virCopyLastError()

Returns:a pointer to the last error or NULL if none occurred.

virResetError

void	virResetError			(virErrorPtr err)
+

Provide a pointer to the last error caught at the library level The error object is kept in thread local storage, so separate threads can safely access this concurrently.

Returns:a pointer to the last error or NULL if none occurred.

virResetError

void	virResetError			(virErrorPtr err)

Reset the error being pointed to

err:pointer to the virError to clean up

virResetLastError

void	virResetLastError		(void)
-

Reset the last error caught at the library level.

virSetErrorFunc

void	virSetErrorFunc			(void * userData, 
virErrorFunc handler)
+

Reset the last error caught at the library level. The error object is kept in thread local storage, so separate threads can safely access this concurrently, only resetting their own error object.

virSetErrorFunc

void	virSetErrorFunc			(void * userData, 
virErrorFunc handler)

Set a library global error handling function, if @handler is NULL, it will reset to default printing on stderr. The error raised there are those for which no handler at the connection level could caught.

userData:pointer to the user data provided in the handler callback
handler:the function to get called in case of error or NULL
diff --git a/docs/libvirt-api.xml b/docs/libvirt-api.xml index efee4a63ea..c253e8a5d6 100644 --- a/docs/libvirt-api.xml +++ b/docs/libvirt-api.xml @@ -173,17 +173,18 @@ + - + - + @@ -226,6 +227,7 @@ + @@ -244,6 +246,7 @@ + @@ -251,6 +254,7 @@ + @@ -292,7 +296,9 @@ + + @@ -764,18 +770,18 @@ see note above'/> - Copy the content of the last error caught on that connection One will need to free the result with virResetError() + Copy the content of the last error caught on that connection This method is not protected against access from multiple threads. In a multi-threaded application, always use the global virGetLastError() API which is backed by thread local storage. If the connection object was discovered to be invalid by an API call, then the error will be reported against the global error object. Since 0.6.0, all errors reported in the per-connection object are also duplicated in the global error object. As such an application can always use virGetLastError(). This method remains for backwards compatability. One will need to free the result with virResetError() - Provide a pointer to the last error caught on that connection Simpler but may not be suitable for multithreaded accesses, in which case use virConnCopyLastError() + Provide a pointer to the last error caught on that connection This method is not protected against access from multiple threads. In a multi-threaded application, always use the global virGetLastError() API which is backed by thread local storage. If the connection object was discovered to be invalid by an API call, then the error will be reported against the global error object. Since 0.6.0, all errors reported in the per-connection object are also duplicated in the global error object. As such an application can always use virGetLastError(). This method remains for backwards compatability. - Reset the last error caught on that connection + The error object is kept in thread local storage, so separate threads can safely access this concurrently. Reset the last error caught on that connection @@ -814,8 +820,8 @@ see note above'/> - Adds a Domain Event Callback. Registering for a domain callback will enable delivery of the events - + Adds a Domain Event Callback. Registering for a domain callback will enable delivery of the events The virDomainPtr object handle passed into the callback upon delivery of an event is only valid for the duration of execution of the callback. If the callback wishes to keep the domain object after the callback + @@ -950,8 +956,13 @@ see note above'/> + + Increment the reference count on the connection. For each additional call to this method, there shall be a corresponding call to virConnectClose to release the reference count, once the caller no longer needs the reference to this object. This method is typically useful for applications where multiple threads are using a connection, and it is required that the connection remain open until all threads have finished using it. ie, each new thread using a connection would increment the reference count. + + + - Copy the content of the last error caught at the library level One will need to free the result with virResetError() + Copy the content of the last error caught at the library level The error object is kept in thread local storage, so separate threads can safely access this concurrently. One will need to free the result with virResetError() @@ -1179,6 +1190,11 @@ see note above'/> + + Increment the reference count on the domain. For each additional call to this method, there shall be a corresponding call to virDomainFree to release the reference count, once the caller no longer needs the reference to this object. This method is typically useful for applications where multiple threads are using a connection, and it is required that the connection remain open until all threads have finished using it. ie, each new thread using a domain would increment the reference count. + + + This method will restore a domain saved to disk by virDomainSave(). @@ -1317,7 +1333,7 @@ see note above'/> - Provide a pointer to the last error caught at the library level Simpler but may not be suitable for multithreaded accesses, in which case use virCopyLastError() + Provide a pointer to the last error caught at the library level The error object is kept in thread local storage, so separate threads can safely access this concurrently. @@ -1415,6 +1431,11 @@ see note above'/> + + Increment the reference count on the network. For each additional call to this method, there shall be a corresponding call to virNetworkFree to release the reference count, once the caller no longer needs the reference to this object. This method is typically useful for applications where multiple threads are using a connection, and it is required that the connection remain open until all threads have finished using it. ie, each new thread using a network would increment the reference count. + + + Configure the network to be automatically started when the host machine boots. @@ -1465,6 +1486,11 @@ see note above'/> + + Increment the reference count on the dev. For each additional call to this method, there shall be a corresponding call to virNodeDeviceFree to release the reference count, once the caller no longer needs the reference to this object. This method is typically useful for applications where multiple threads are using a connection, and it is required that the connection remain open until all threads have finished using it. ie, each new thread using a dev would increment the reference count. + + + This call returns the amount of free memory in one or more NUMA cells. The @freeMems array must be allocated by the caller and will be filled with the amount of free memory in kilobytes for each cell requested, starting with startCell (in freeMems[0]), up to either (startCell + maxCells), or the number of additional cells in the node, whichever is smaller. @@ -1506,7 +1532,7 @@ see note above'/> - Reset the last error caught at the library level. + Reset the last error caught at the library level. The error object is kept in thread local storage, so separate threads can safely access this concurrently, only resetting their own error object. @@ -1632,6 +1658,11 @@ see note above'/> + + Increment the reference count on the pool. For each additional call to this method, there shall be a corresponding call to virStoragePoolFree to release the reference count, once the caller no longer needs the reference to this object. This method is typically useful for applications where multiple threads are using a connection, and it is required that the connection remain open until all threads have finished using it. ie, each new thread using a pool would increment the reference count. + + + Request that the pool refresh its list of volumes. This may involve communicating with a remote server, and/or initializing new devices at the OS layer @@ -1717,5 +1748,10 @@ see note above'/> + + Increment the reference count on the vol. For each additional call to this method, there shall be a corresponding call to virStorageVolFree to release the reference count, once the caller no longer needs the reference to this object. This method is typically useful for applications where multiple threads are using a connection, and it is required that the connection remain open until all threads have finished using it. ie, each new thread using a vol would increment the reference count. + + + diff --git a/docs/libvirt-refs.xml b/docs/libvirt-refs.xml index 35592b6ee3..7a61279f55 100644 --- a/docs/libvirt-refs.xml +++ b/docs/libvirt-refs.xml @@ -214,6 +214,7 @@ + @@ -268,6 +269,7 @@ + @@ -318,6 +320,7 @@ + @@ -329,6 +332,7 @@ + @@ -368,6 +372,7 @@ + @@ -389,6 +394,7 @@ + @@ -615,6 +621,7 @@ + @@ -669,6 +676,7 @@ + @@ -719,6 +727,7 @@ + @@ -730,6 +739,7 @@ + @@ -769,6 +779,7 @@ + @@ -790,6 +801,7 @@ + @@ -969,6 +981,7 @@ + @@ -1035,6 +1048,7 @@ + @@ -1097,6 +1111,7 @@ + @@ -1107,6 +1122,7 @@ + @@ -1133,6 +1149,7 @@ + @@ -1152,6 +1169,7 @@ + @@ -1301,6 +1319,7 @@ + @@ -1353,6 +1372,7 @@ + @@ -1396,6 +1416,7 @@ + @@ -1407,6 +1428,7 @@ + @@ -1443,6 +1465,7 @@ + @@ -1464,6 +1487,7 @@ + @@ -1579,6 +1603,8 @@ + + @@ -1803,11 +1829,17 @@ + + + + + + @@ -1849,6 +1881,14 @@ + + + + + + + + @@ -1946,6 +1986,8 @@ + + @@ -1966,8 +2008,6 @@ - - @@ -2058,6 +2098,9 @@ + + + @@ -2076,11 +2119,9 @@ - - - - + + @@ -2272,7 +2313,11 @@ + + + + @@ -2281,15 +2326,13 @@ + + - - - - @@ -2312,7 +2355,13 @@ + + + + + + @@ -2321,6 +2370,7 @@ + @@ -2330,6 +2380,8 @@ + + @@ -2338,14 +2390,22 @@ + + + + + + + + @@ -2378,12 +2438,16 @@ + + + + @@ -2405,13 +2469,21 @@ + + + + + + + + @@ -2426,6 +2498,8 @@ + + @@ -2433,14 +2507,20 @@ + + + + + + @@ -2524,11 +2604,19 @@ + + + + + + + + @@ -2639,7 +2727,6 @@ - @@ -2649,7 +2736,6 @@ - @@ -2664,43 +2750,6 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -2717,18 +2766,25 @@ + + + + + + + @@ -2740,15 +2796,22 @@ + + + + + + + @@ -2848,6 +2911,8 @@ + + @@ -2859,6 +2924,12 @@ + + + + + + @@ -2930,8 +3001,14 @@ + + + + + + @@ -2944,8 +3021,14 @@ + + + + + + @@ -3110,6 +3193,9 @@ + + + @@ -3138,6 +3224,8 @@ + + @@ -3214,6 +3302,13 @@ + + + + + + + @@ -3226,12 +3321,18 @@ + + + + + + @@ -3263,6 +3364,10 @@ + + + + @@ -3275,6 +3380,7 @@ + @@ -3293,6 +3399,9 @@ + + + @@ -3399,6 +3508,14 @@ + + + + + + + + @@ -3515,6 +3632,8 @@ + + @@ -3593,6 +3712,8 @@ + + @@ -3617,6 +3738,7 @@ + @@ -3655,16 +3777,25 @@ + + + + + + + + + @@ -3757,6 +3888,14 @@ + + + + + + + + @@ -3842,8 +3981,13 @@ + + + + + @@ -3894,14 +4038,19 @@ + + + + + @@ -4067,8 +4216,14 @@ + + + + + + @@ -4081,7 +4236,14 @@ + + + + + + + @@ -4174,6 +4336,29 @@ + + + + + + + + + + + + + + + + + + + + + + + @@ -4198,11 +4383,19 @@ + + + + + + + + @@ -4266,14 +4459,24 @@ + + + + + + + + + + + + - - @@ -4333,6 +4536,14 @@ + + + + + + + + @@ -4340,27 +4551,6 @@ - - - - - - - - - - - - - - - - - - - - - @@ -4442,7 +4632,14 @@ + + + + + + + @@ -4460,9 +4657,11 @@ + + @@ -4474,7 +4673,13 @@ + + + + + + @@ -4537,6 +4742,9 @@ + + + @@ -4588,6 +4796,7 @@ + @@ -4613,6 +4822,10 @@ + + + + @@ -4705,6 +4918,10 @@ + + + + @@ -4793,13 +5010,6 @@ - - - - - - - @@ -4827,9 +5037,18 @@ + + + + + + + + + @@ -4838,10 +5057,22 @@ + + + + + + + + + + + + @@ -4861,6 +5092,10 @@ + + + + @@ -4888,7 +5123,14 @@ + + + + + + + @@ -4911,6 +5153,9 @@ + + + @@ -5025,6 +5270,12 @@ + + + + + + @@ -5065,6 +5316,12 @@ + + + + + + @@ -5085,6 +5342,15 @@ + + + + + + + + + @@ -5310,6 +5576,8 @@ + + @@ -5317,9 +5585,7 @@ - - @@ -5366,6 +5632,9 @@ + + + @@ -5403,6 +5672,7 @@ + @@ -5414,17 +5684,25 @@ + + + + + + + + @@ -5452,11 +5730,17 @@ + + + + + + @@ -5466,8 +5750,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -5526,7 +5836,13 @@ + + + + + + @@ -5574,8 +5890,14 @@ + + + + + + @@ -5595,6 +5917,7 @@ + @@ -5620,11 +5943,11 @@ + - @@ -5660,6 +5983,14 @@ + + + + + + + + @@ -5688,6 +6019,14 @@ + + + + + + + + @@ -5695,6 +6034,9 @@ + + + @@ -5734,12 +6076,12 @@ - - - + + + @@ -5762,9 +6104,6 @@ - - - @@ -5775,6 +6114,10 @@ + + + + @@ -5807,8 +6150,12 @@ + + + + @@ -5843,15 +6190,25 @@ + + + + + + + + + + @@ -5872,6 +6229,9 @@ + + + @@ -5886,6 +6246,9 @@ + + + @@ -5918,6 +6281,9 @@ + + + @@ -5934,6 +6300,7 @@ + @@ -5975,10 +6342,16 @@ + + + + + + @@ -5994,6 +6367,9 @@ + + + @@ -6021,8 +6397,14 @@ + + + + + + @@ -6041,6 +6423,8 @@ + + @@ -6069,8 +6453,6 @@ - - @@ -6080,8 +6462,8 @@ - - + + @@ -6089,8 +6471,8 @@ - - + + diff --git a/docs/news.html b/docs/news.html index f22ef16754..ae6ac79693 100644 --- a/docs/news.html +++ b/docs/news.html @@ -76,6 +76,76 @@

Here is the list of official releases, however since it is early on in the development of libvirt, it is preferable when possible to just use the CVS version or snapshot, contact the mailing list and check the ChangeLog to gauge progress.

+

0.6.0: Jan 31 2009

+
  • New features: thread safety of the API and event handling (Daniel + Berrange), allow QEmu domains to survive daemon restart (Guido + Günther), extended logging capabilities, support copy-on-write + storage volumes (Daniel Berrange), support of storage cache + control options for QEmu/KVM (Daniel Berrange)
  • Portability: fix old DBus API problem, Debian portability fix + (Daniel Berrange), fix distcheck (Jim Meyering), build in + debug mode (Jim Meyering), libnuma API portability (Jim Meyering), + many portability fixes pointed by Solaris (John Levon), non-gcc + portability fixes (John Levon), various include fixes (Jim Meyering), + various Windows and Mingw portability fixes (Daniel Berrange), + solaris Xen fixes (John Levon), RPC portability to Solaris (Daniel + Berrange)
  • Documentation: typo fixes (Richard Jones), logging support, + vnc keymap attributes (Guido Günther), HACKING file updates + (Jim Meyering), new PCI passthrough format, libvirt-qpid and + UML driver documentation (Daniel Berrange), provide RNG schemas + for all XML formats used in libvirt APIs (Daniel Berrange),
  • Bug fixes: segfault on virtual network without bridge name (Cole + Robinson), various locking fixes (Cole Robinson), fix serial + and parallel devices on tcp/unix/telnet (Guido Günther), leak + in daemon (Jim Meyering), storage driver segfault (Miloslav TrmaC), + missing check in read-only connections (Daniel Berrange), + OpenVZ crash and mutex fixes (Anton Protopopov), couple of + daemon bug fixes (John Levon), OpenVZ MAC addresses generation + (Evgeniy Sokolov), poll call initialization fix (Daniel Berrange), + various Xen driver fixes (John Levon), segfault on device + back compat (Cole Robinson), couple Xen bug fixes coming from + RHEL (Markus Armbruster), buffer overflow in libvirt proxy + (rasputin@email.ru), vnc port report (John Levon), repair save + and restore on recent KVM versions (Daniel Berrange), Xen + cpu pinning XML fix (John Levon), various xen driver fixes + (Daniel Berrange), some memory leak fixes (Daniel Berrange)
  • Improvements: driver infrastructure and locking (Daniel Berrange), + Test driver infrastructure (Daniel Berrange), parallelism in the + daemon and associated config (Daniel Berrange), virsh help cleanups + (Jim Meyering), logrotate daemon logs (Guido Günther), more + regression tests (Jim Meyering), QEmu SDL graphics (Itamar Heim), + add --version flag to daemon (Dave Allan), memory consumption + cleanup (Dave Allan), QEmu pid file and XML states for daemon + restart (Guido Günther), gnulib updates (Jim Meyering and + Dan Berrange), PCI passthrough for KVM (Jason Krieg), generic + internal thread API (Daniel Berrange), RHEL-5 specific Xen + configure option and code (Markus Armbruster), save domain + state as string in status file (Guido Günther), add locking + to all API entry points (Daniel Berrange), new ref counting APIs + (Daniel Berrange), IP address for Xen bridges (John Levon), + driver format for disk file types (Daniel Berrange), improve + QEmu/KVM tun/tap performances (Mark McLoughlin), enable floppies + for Xen fully virt (John Levon), support VNC password settings + for QEmu/KVM (Daniel Berrange), qemu driver version reporting + (Daniel Berrange)
  • Cleanups: converting linked lists to arrays (Daniel Berrange), + daemon RPC handling refactoring (Daniel Berrange), strings cleanups + (Jim Meyering), gethostby* cleanup and test (Jim Meyering), some + code fixes (Dave Allan), various code cleanup (Jim Meyering), + virsh argument handling cleanup (Jim Meyering), virAsprintf + cleanup replacement (Guido Günther), QEmu monitor reads (Cole + Robinson), Makefile cleanups (Guido Günther), Xen code cleanups + (John Levon), revamp of ELF export scripts (John Levon), domain + event callback args (John Levon), enforce use of pid_t (John Levon), + virsh pool-*-as XML code merge (Cole Robinson), xgettext warnings + (Jim Meyering), add virKillProcess (Guido Günther), add + virGetHostname (David Lutterkort), add flags argument to the full + XML parsing stack (Guido Günther), various daemon code cleanups + (Guido Günther), handling of daemon missing config file (Jim + Meyering), rpcgen invocation cleanup (Richard Jones), devhelp + builkd makefile cleanups (John Levon), update error handling for + threading (Daniel Berrange), remove all non-rentrant POSIX calls + usage (Daniel Berrange), many small cleanups (Jim Meyering and + Daniel Berrange), examples Makefile generator (John Levon), + mis-use of PF_UNIX as a protocol (John Levon), cleanup OOM + error paths (Jim Meyering), temporary fix fro valgrind on lxc + (Daniel Berrange), QEmu driver init cleanups (Daniel Berrange)

0.5.1: Dec 4 2008

  • Portability: fix missing dep in spec file, fix compilation with new NUMA libraries (Daniel Berrange), udev compatibility for RHEL (Chris diff --git a/docs/news.html.in b/docs/news.html.in index bec0195aba..749caf2d1e 100644 --- a/docs/news.html.in +++ b/docs/news.html.in @@ -5,6 +5,83 @@

    Here is the list of official releases, however since it is early on in the development of libvirt, it is preferable when possible to just use the CVS version or snapshot, contact the mailing list and check the ChangeLog to gauge progress.

    +

    0.6.0: Jan 31 2009

    +
      +
    • New features: thread safety of the API and event handling (Daniel + Berrange), allow QEmu domains to survive daemon restart (Guido + Günther), extended logging capabilities, support copy-on-write + storage volumes (Daniel Berrange), support of storage cache + control options for QEmu/KVM (Daniel Berrange)
    • +
    • Portability: fix old DBus API problem, Debian portability fix + (Daniel Berrange), fix distcheck (Jim Meyering), build in + debug mode (Jim Meyering), libnuma API portability (Jim Meyering), + many portability fixes pointed by Solaris (John Levon), non-gcc + portability fixes (John Levon), various include fixes (Jim Meyering), + various Windows and Mingw portability fixes (Daniel Berrange), + solaris Xen fixes (John Levon), RPC portability to Solaris (Daniel + Berrange)
    • +
    • Documentation: typo fixes (Richard Jones), logging support, + vnc keymap attributes (Guido Günther), HACKING file updates + (Jim Meyering), new PCI passthrough format, libvirt-qpid and + UML driver documentation (Daniel Berrange), provide RNG schemas + for all XML formats used in libvirt APIs (Daniel Berrange),
    • +
    • Bug fixes: segfault on virtual network without bridge name (Cole + Robinson), various locking fixes (Cole Robinson), fix serial + and parallel devices on tcp/unix/telnet (Guido Günther), leak + in daemon (Jim Meyering), storage driver segfault (Miloslav TrmaC), + missing check in read-only connections (Daniel Berrange), + OpenVZ crash and mutex fixes (Anton Protopopov), couple of + daemon bug fixes (John Levon), OpenVZ MAC addresses generation + (Evgeniy Sokolov), poll call initialization fix (Daniel Berrange), + various Xen driver fixes (John Levon), segfault on device + back compat (Cole Robinson), couple Xen bug fixes coming from + RHEL (Markus Armbruster), buffer overflow in libvirt proxy + (rasputin@email.ru), vnc port report (John Levon), repair save + and restore on recent KVM versions (Daniel Berrange), Xen + cpu pinning XML fix (John Levon), various xen driver fixes + (Daniel Berrange), some memory leak fixes (Daniel Berrange)
    • +
    • Improvements: driver infrastructure and locking (Daniel Berrange), + Test driver infrastructure (Daniel Berrange), parallelism in the + daemon and associated config (Daniel Berrange), virsh help cleanups + (Jim Meyering), logrotate daemon logs (Guido Günther), more + regression tests (Jim Meyering), QEmu SDL graphics (Itamar Heim), + add --version flag to daemon (Dave Allan), memory consumption + cleanup (Dave Allan), QEmu pid file and XML states for daemon + restart (Guido Günther), gnulib updates (Jim Meyering and + Dan Berrange), PCI passthrough for KVM (Jason Krieg), generic + internal thread API (Daniel Berrange), RHEL-5 specific Xen + configure option and code (Markus Armbruster), save domain + state as string in status file (Guido Günther), add locking + to all API entry points (Daniel Berrange), new ref counting APIs + (Daniel Berrange), IP address for Xen bridges (John Levon), + driver format for disk file types (Daniel Berrange), improve + QEmu/KVM tun/tap performances (Mark McLoughlin), enable floppies + for Xen fully virt (John Levon), support VNC password settings + for QEmu/KVM (Daniel Berrange), qemu driver version reporting + (Daniel Berrange)
    • +
    • Cleanups: converting linked lists to arrays (Daniel Berrange), + daemon RPC handling refactoring (Daniel Berrange), strings cleanups + (Jim Meyering), gethostby* cleanup and test (Jim Meyering), some + code fixes (Dave Allan), various code cleanup (Jim Meyering), + virsh argument handling cleanup (Jim Meyering), virAsprintf + cleanup replacement (Guido Günther), QEmu monitor reads (Cole + Robinson), Makefile cleanups (Guido Günther), Xen code cleanups + (John Levon), revamp of ELF export scripts (John Levon), domain + event callback args (John Levon), enforce use of pid_t (John Levon), + virsh pool-*-as XML code merge (Cole Robinson), xgettext warnings + (Jim Meyering), add virKillProcess (Guido Günther), add + virGetHostname (David Lutterkort), add flags argument to the full + XML parsing stack (Guido Günther), various daemon code cleanups + (Guido Günther), handling of daemon missing config file (Jim + Meyering), rpcgen invocation cleanup (Richard Jones), devhelp + builkd makefile cleanups (John Levon), update error handling for + threading (Daniel Berrange), remove all non-rentrant POSIX calls + usage (Daniel Berrange), many small cleanups (Jim Meyering and + Daniel Berrange), examples Makefile generator (John Levon), + mis-use of PF_UNIX as a protocol (John Levon), cleanup OOM + error paths (Jim Meyering), temporary fix fro valgrind on lxc + (Daniel Berrange), QEmu driver init cleanups (Daniel Berrange)
    • +

    0.5.1: Dec 4 2008

    • Portability: fix missing dep in spec file, fix compilation with new -- 2.47.2