
2009/10/21 Daniel P. Berrange <berrange@redhat.com>:
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. --- include/libvirt/libvirt.h.in | 16 +++ src/driver.h | 34 +++++ src/esx/esx_driver.c | 4 + src/interface/netcf_driver.c | 1 + src/libvirt.c | 301 ++++++++++++++++++++++++++++++++++++++++++ src/libvirt_public.syms | 13 ++ src/lxc/lxc_driver.c | 4 + src/network/bridge_driver.c | 2 + src/opennebula/one_driver.c | 4 + src/openvz/openvz_driver.c | 4 + src/phyp/phyp_driver.c | 4 + src/qemu/qemu_driver.c | 4 + src/remote/remote_driver.c | 10 ++ src/test/test_driver.c | 10 ++ src/uml/uml_driver.c | 4 + src/vbox/vbox_tmpl.c | 4 + src/xen/xen_driver.c | 4 + 17 files changed, 423 insertions(+), 0 deletions(-)
[...]
diff --git a/src/driver.h b/src/driver.h index 0c8f923..7ab915d 100644 --- a/src/driver.h +++ b/src/driver.h [...]
@@ -668,6 +694,12 @@ typedef virStorageVolPtr virStorageVolPtr clone, unsigned int flags);
+typedef int + (*virDrvStoragePoolIsActive)(virStoragePoolPtr pool); +typedef int + (*virDrvStoragePoolIsPersistent)(virStoragePoolPtr pool); + +
typedef struct _virStorageDriver virStorageDriver; typedef virStorageDriver *virStorageDriverPtr; @@ -719,6 +751,8 @@ struct _virStorageDriver { virDrvStorageVolGetInfo volGetInfo; virDrvStorageVolGetXMLDesc volGetXMLDesc; virDrvStorageVolGetPath volGetPath; + virDrvStoragePoolIsPersistent poolIsActive; + virDrvStoragePoolIsPersistent poolIsPersistent; };
You added virDrvStoragePoolIsPersistent twice instead of virDrvStoragePoolIsActive once and virDrvStoragePoolIsPersistent once. I assume it compiles because the signature is the same.
#ifdef WITH_LIBVIRTD diff --git a/src/esx/esx_driver.c b/src/esx/esx_driver.c index e063b46..3a57613 100644 --- a/src/esx/esx_driver.c +++ b/src/esx/esx_driver.c @@ -3275,6 +3275,10 @@ static virDriver esxDriver = { NULL, /* nodeDeviceReAttach */ NULL, /* nodeDeviceReset */ NULL, /* domainMigratePrepareTunnel */ + NULL, /* isEncrypted */ + NULL, /* isSecure */ + NULL, /* domainIsActive */ + NULL, /* domainIsEncrypted */ };
s/domainIsEncrypted/domainIsPersistent/ [...]
diff --git a/src/libvirt_public.syms b/src/libvirt_public.syms index 8921c1a..62fa6cf 100644 --- a/src/libvirt_public.syms +++ b/src/libvirt_public.syms @@ -329,4 +329,17 @@ LIBVIRT_0.7.2 { virDomainMigrateToURI; } LIBVIRT_0.7.1;
+LIBVIRT_0.7.4 { + global: + virConnectIsEncrypted; + virConnectIsSecure; + virDomainIsActive; + virDomainIsPersistent; + virNetworkIsActive; + virNetworkIsPersistent; + virStoragePoolIsActive; + virStoragePoolIsPersistent; + virInterfaceIsActive; +} LIBVIRT_0.7.2; + # .... define new API here using predicted next version number ....
Shouldn't that be LIBVIRT_0.7.3 instead of LIBVIRT_0.7.4?
diff --git a/src/lxc/lxc_driver.c b/src/lxc/lxc_driver.c index 8224376..92502fe 100644 --- a/src/lxc/lxc_driver.c +++ b/src/lxc/lxc_driver.c @@ -2348,6 +2348,10 @@ static virDriver lxcDriver = { NULL, /* nodeDeviceReAttach */ NULL, /* nodeDeviceReset */ NULL, /* domainMigratePrepareTunnel */ + NULL, /* isEncrypted */ + NULL, /* isSecure */ + NULL, /* domainIsActive */ + NULL, /* domainIsEncrypted */ };
s/domainIsEncrypted/domainIsPersistent/
static virStateDriver lxcStateDriver = { diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c index 3c62636..311838c 100644 --- a/src/network/bridge_driver.c +++ b/src/network/bridge_driver.c @@ -1497,6 +1497,8 @@ static virNetworkDriver networkDriver = { networkGetBridgeName, /* networkGetBridgeName */ networkGetAutostart, /* networkGetAutostart */ networkSetAutostart, /* networkSetAutostart */ + NULL, /* networkIsActive */ + NULL, /* networkIsEncrypted */ };
s/networkIsEncrypted/networkIsPersistent/
static virStateDriver networkStateDriver = { diff --git a/src/opennebula/one_driver.c b/src/opennebula/one_driver.c index 9c6f120..9707bf8 100644 --- a/src/opennebula/one_driver.c +++ b/src/opennebula/one_driver.c @@ -788,6 +788,10 @@ static virDriver oneDriver = { NULL, /* nodeDeviceReAttach; */ NULL, /* nodeDeviceReset; */ NULL, /* domainMigratePrepareTunnel */ + NULL, /* isEncrypted */ + NULL, /* isSecure */ + NULL, /* domainIsActive */ + NULL, /* domainIsEncrypted */ };
s/domainIsEncrypted/domainIsPersistent/
static virStateDriver oneStateDriver = { diff --git a/src/openvz/openvz_driver.c b/src/openvz/openvz_driver.c index 57482b8..4d7f56c 100644 --- a/src/openvz/openvz_driver.c +++ b/src/openvz/openvz_driver.c @@ -1433,6 +1433,10 @@ static virDriver openvzDriver = { NULL, /* nodeDeviceReAttach */ NULL, /* nodeDeviceReset */ NULL, /* domainMigratePrepareTunnel */ + NULL, /* isEncrypted */ + NULL, /* isSecure */ + NULL, /* domainIsActive */ + NULL, /* domainIsEncrypted */ };
s/domainIsEncrypted/domainIsPersistent/
int openvzRegister(void) { diff --git a/src/phyp/phyp_driver.c b/src/phyp/phyp_driver.c index ef465ed..cd0e9a7 100644 --- a/src/phyp/phyp_driver.c +++ b/src/phyp/phyp_driver.c @@ -1378,6 +1378,10 @@ virDriver phypDriver = { NULL, /* nodeDeviceReAttach */ NULL, /* nodeDeviceReset */ NULL, /* domainMigratePrepareTunnel */ + NULL, /* isEncrypted */ + NULL, /* isSecure */ + NULL, /* domainIsActive */ + NULL, /* domainIsEncrypted */ };
s/domainIsEncrypted/domainIsPersistent/
int diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 03e8457..0264797 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -7166,6 +7166,10 @@ static virDriver qemuDriver = { qemudNodeDeviceReAttach, /* nodeDeviceReAttach */ qemudNodeDeviceReset, /* nodeDeviceReset */ qemudDomainMigratePrepareTunnel, /* domainMigratePrepareTunnel */ + NULL, /* isEncrypted */ + NULL, /* isSecure */ + NULL, /* domainIsActive */ + NULL, /* domainIsEncrypted */ };
s/domainIsEncrypted/domainIsPersistent/
diff --git a/src/remote/remote_driver.c b/src/remote/remote_driver.c index bf001eb..9a265ac 100644 --- a/src/remote/remote_driver.c +++ b/src/remote/remote_driver.c @@ -8449,6 +8449,10 @@ static virDriver remote_driver = { remoteNodeDeviceReAttach, /* nodeDeviceReAttach */ remoteNodeDeviceReset, /* nodeDeviceReset */ remoteDomainMigratePrepareTunnel, /* domainMigratePrepareTunnel */ + NULL, /* isEncrypted */ + NULL, /* isSecure */ + NULL, /* domainIsActive */ + NULL, /* domainIsEncrypted */ };
s/domainIsEncrypted/domainIsPersistent/ [...]
diff --git a/src/test/test_driver.c b/src/test/test_driver.c index b0f91de..88dc6a5 100644 --- a/src/test/test_driver.c +++ b/src/test/test_driver.c @@ -4558,6 +4558,10 @@ static virDriver testDriver = { NULL, /* nodeDeviceReAttach */ NULL, /* nodeDeviceReset */ NULL, /* domainMigratePrepareTunnel */ + NULL, /* isEncrypted */ + NULL, /* isSecure */ + NULL, /* domainIsActive */ + NULL, /* domainIsEncrypted */ };
s/domainIsEncrypted/domainIsPersistent/
static virNetworkDriver testNetworkDriver = { @@ -4579,6 +4583,8 @@ static virNetworkDriver testNetworkDriver = { testNetworkGetBridgeName, /* networkGetBridgeName */ testNetworkGetAutostart, /* networkGetAutostart */ testNetworkSetAutostart, /* networkSetAutostart */ + NULL, /* networkIsActive */ + NULL, /* networkIsEncrypted */ };
s/networkIsEncrypted/networkIsPersistent/ [...]
@@ -4636,6 +4643,9 @@ static virStorageDriver testStorageDriver = { .volGetInfo = testStorageVolumeGetInfo, .volGetXMLDesc = testStorageVolumeGetXMLDesc, .volGetPath = testStorageVolumeGetPath, + + .poolIsActive = NULL, /* poolIsActive */ + .poolIsPersistent = NULL, /* poolIsEncrypted */ };
s/poolIsEncrypted/poolIsPersistent/
static virDeviceMonitor testDevMonitor = { diff --git a/src/uml/uml_driver.c b/src/uml/uml_driver.c index 6f60592..9b450d9 100644 --- a/src/uml/uml_driver.c +++ b/src/uml/uml_driver.c @@ -1862,6 +1862,10 @@ static virDriver umlDriver = { NULL, /* nodeDeviceReAttach */ NULL, /* nodeDeviceReset */ NULL, /* domainMigratePrepareTunnel */ + NULL, /* isEncrypted */ + NULL, /* isSecure */ + NULL, /* domainIsActive */ + NULL, /* domainIsEncrypted */ };
s/domainIsEncrypted/domainIsPersistent/
diff --git a/src/vbox/vbox_tmpl.c b/src/vbox/vbox_tmpl.c index 4f43901..5878154 100644 --- a/src/vbox/vbox_tmpl.c +++ b/src/vbox/vbox_tmpl.c @@ -6468,6 +6468,10 @@ virDriver NAME(Driver) = { NULL, /* nodeDeviceReAttach */ NULL, /* nodeDeviceReset */ NULL, /* domainMigratePrepareTunnel */ + NULL, /* isEncrypted */ + NULL, /* isSecure */ + NULL, /* domainIsActive */ + NULL, /* domainIsEncrypted */ };
s/domainIsEncrypted/domainIsPersistent/
virNetworkDriver NAME(NetworkDriver) = { diff --git a/src/xen/xen_driver.c b/src/xen/xen_driver.c index 5273a11..da05253 100644 --- a/src/xen/xen_driver.c +++ b/src/xen/xen_driver.c @@ -1726,6 +1726,10 @@ static virDriver xenUnifiedDriver = { xenUnifiedNodeDeviceReAttach, /* nodeDeviceReAttach */ xenUnifiedNodeDeviceReset, /* nodeDeviceReset */ NULL, /* domainMigratePrepareTunnel */ + NULL, /* isEncrypted */ + NULL, /* isSecure */ + NULL, /* domainIsActive */ + NULL, /* domainIsEncrypted */ };
s/domainIsEncrypted/domainIsPersistent/ ACK, once this minor issues are fixed. Matthias