From d9bf6cef3253d6f887d7b8f659d129ca2cffd911 Mon Sep 17 00:00:00 2001 From: John Ferlan Date: Thu, 7 Feb 2019 12:03:08 -0500 Subject: [PATCH] storage: Introduce storageConnectGetStoragePoolCapabilities 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 ACKed-by: Michal Privoznik --- src/storage/storage_driver.c | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/src/storage/storage_driver.c b/src/storage/storage_driver.c index caa255dd3d..62acb3eb71 100644 --- a/src/storage/storage_driver.c +++ b/src/storage/storage_driver.c @@ -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 */