
On Wed, Oct 21, 2009 at 11:54:14AM +0100, Daniel P. Berrange wrote:
Introduce a number of new APIs to expose some boolean properties of objects, which cannot otherwise reliably determined, nor are aspects of the XML configuration.
* virDomainIsActive: Checking virDomainGetID is not reliable since it is not possible to distinguish between error condition and inactive domain for ID of -1. * virDomainIsPersistent: Check whether a persistent config exists for the domain
* virNetworkIsActive: Check whether the network is active * virNetworkIsPersistent: Check whether a persistent config exists for the network
* virStoragePoolIsActive: Check whether the storage pool is active * virStoragePoolIsPersistent: Check whether a persistent config exists for the storage pool
* virInterfaceIsActive: Check whether the host interface is active
* virConnectIsSecure: whether the communication channel to the hypervisor is secure * virConnectIsEncrypted: whether any network based commnunication channels are encrypted
NB, a channel can be secure, even if not encrypted, eg if it does not involve the network, like a UNIX socket, or pipe.
Okay, this makes sense !
include/libvirt/libvirt.h.in | 16 +++ src/libvirt.c | 298 ++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 314 insertions(+), 0 deletions(-)
diff --git a/include/libvirt/libvirt.h.in b/include/libvirt/libvirt.h.in index 6186d4e..05a164b 100644 --- a/include/libvirt/libvirt.h.in +++ b/include/libvirt/libvirt.h.in @@ -1649,6 +1649,22 @@ int virStreamAbort(virStreamPtr st); int virStreamFree(virStreamPtr st);
+int virDomainIsActive(virDomainPtr dom); +int virDomainIsPersistent(virDomainPtr dom); + +int virNetworkIsActive(virNetworkPtr net); +int virNetworkIsPersistent(virNetworkPtr net); + +int virStoragePoolIsActive(virStoragePoolPtr pool); +int virStoragePoolIsPersistent(virStoragePoolPtr pool); + +int virInterfaceIsActive(virInterfacePtr iface); + +int virConnectIsEncrypted(virConnectPtr conn); +int virConnectIsSecure(virConnectPtr conn);
The only small remark I would have is that it's not consistent with int virDomainGetAutostart (virDomainPtr domain, int *autostart); which is also looking at a boolean value. But since we don't expect to add a way to modify those properties (i.e. no Set operation) I think it's fine to go with the simpler signature you suggest. [...]
+/** + * virDomainIsPersistent: + * + * Determine if the domain has a persistent configuration
maybe emphasise a bit on the definition and try to hook up to the 'Defined' terminology used in the API for example: * which means it will still be defined after being terminated
+/** + * virNetworkIsPersistent: + * + * Determine if the network has a persistent configuration
similar
+ * Returns > 0 if persistent, 0 if transient, -1 on error + */ C[...] +/** + * virStoragepoolIsActive:
typo virStoragePoolIsActive
+ * + * Determine if the storagepool is currently running
missing space * Determine if the storage pool is currently running
+ * + * Returns > 0 if running, 0 if inactive, -1 on error
+/** + * virStoragepoolIsPersistent:
StoragePool
+ * + * Determine if the storagepool has a persistent configuration
-> defined
+ * + * Returns > 0 if persistent, 0 if transient, -1 on error + */
With those small fixes in, ACK ! thanks ! Daniel -- Daniel Veillard | libxml Gnome XML XSLT toolkit http://xmlsoft.org/ daniel@veillard.com | Rpmfind RPM search engine http://rpmfind.net/ http://veillard.com/ | virtualization library http://libvirt.org/