]> xenbits.xensource.com Git - libvirt.git/commitdiff
storage: Introduce storageConnectGetStoragePoolCapabilities
authorJohn Ferlan <jferlan@redhat.com>
Thu, 7 Feb 2019 17:03:08 +0000 (12:03 -0500)
committerJohn Ferlan <jferlan@redhat.com>
Wed, 6 Mar 2019 16:12:48 +0000 (11:12 -0500)
https://bugzilla.redhat.com/show_bug.cgi?id=1581670

Create the storage driver code to generate the output for the
storage pool capabilities XML.

Signed-off-by: John Ferlan <jferlan@redhat.com>
ACKed-by: Michal Privoznik <mprivozn@redhat.com>
src/storage/storage_driver.c

index caa255dd3da9bc3f77a3c10717151fde2a089a81..62acb3eb71ceefef5a48835b79f6268b515efd1e 100644 (file)
@@ -35,6 +35,7 @@
 #include "datatypes.h"
 #include "driver.h"
 #include "storage_driver.h"
+#include "storage_capabilities.h"
 #include "storage_conf.h"
 #include "storage_event.h"
 #include "viralloc.h"
@@ -638,6 +639,28 @@ storageConnectFindStoragePoolSources(virConnectPtr conn,
 }
 
 
+static char *
+storageConnectGetStoragePoolCapabilities(virConnectPtr conn,
+                                         unsigned int flags)
+{
+    virStoragePoolCapsPtr caps = NULL;
+    char *ret;
+
+    virCheckFlags(0, NULL);
+
+    if (virConnectGetStoragePoolCapabilitiesEnsureACL(conn) < 0)
+        return NULL;
+
+    if (!(caps = virStoragePoolCapsNew(driver->caps)))
+        return NULL;
+
+    ret = virStoragePoolCapsFormat(caps);
+
+    virObjectUnref(caps);
+    return ret;
+}
+
+
 static int
 storagePoolIsActive(virStoragePoolPtr pool)
 {
@@ -2776,6 +2799,7 @@ static virStorageDriver storageDriver = {
     .connectStoragePoolEventRegisterAny = storageConnectStoragePoolEventRegisterAny, /* 2.0.0 */
     .connectStoragePoolEventDeregisterAny = storageConnectStoragePoolEventDeregisterAny, /* 2.0.0 */
     .connectFindStoragePoolSources = storageConnectFindStoragePoolSources, /* 0.4.0 */
+    .connectGetStoragePoolCapabilities = storageConnectGetStoragePoolCapabilities, /* 5.2.0 */
     .storagePoolLookupByName = storagePoolLookupByName, /* 0.4.0 */
     .storagePoolLookupByUUID = storagePoolLookupByUUID, /* 0.4.0 */
     .storagePoolLookupByVolume = storagePoolLookupByVolume, /* 0.4.0 */