2009/10/21 Daniel P. Berrange <berrange@xxxxxxxxxx>: > 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 -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list