Add a new API to search the currently defined pool list for a pool with
a matching UUID and return the locked pool object pointer.
Signed-off-by: John Ferlan <jferlan(a)redhat.com>
---
src/storage/storage_driver.c | 21 +++++++++++++++++++++
src/storage/storage_driver.h | 3 +++
2 files changed, 24 insertions(+)
diff --git a/src/storage/storage_driver.c b/src/storage/storage_driver.c
index aeb67a7..bbf21f6 100644
--- a/src/storage/storage_driver.c
+++ b/src/storage/storage_driver.c
@@ -3370,3 +3370,24 @@ virStorageTranslateDiskSourcePool(virConnectPtr conn,
virStoragePoolDefFree(pooldef);
return ret;
}
+
+
+/*
+ * virStoragePoolObjFindPoolByUUID
+ * @uuid: The uuid to lookup
+ *
+ * Using the passed @uuid, search the driver pools for a matching uuid.
+ * If found, then lock the pool
+ *
+ * Returns NULL if pool is not found or a locked pool object pointer
+ */
+virStoragePoolObjPtr
+virStoragePoolObjFindPoolByUUID(const unsigned char *uuid)
+{
+ virStoragePoolObjPtr pool;
+
+ storageDriverLock();
+ pool = virStoragePoolObjFindByUUID(&driver->pools, uuid);
+ storageDriverUnlock();
+ return pool;
+}
diff --git a/src/storage/storage_driver.h b/src/storage/storage_driver.h
index 4f28dc1..912c232 100644
--- a/src/storage/storage_driver.h
+++ b/src/storage/storage_driver.h
@@ -57,6 +57,9 @@ int virStorageFileGetMetadata(virStorageSourcePtr src,
int virStorageTranslateDiskSourcePool(virConnectPtr conn,
virDomainDiskDefPtr def);
+virStoragePoolObjPtr virStoragePoolObjFindPoolByUUID(const unsigned char *uuid)
+ ATTRIBUTE_NONNULL(1);
+
virStoragePoolPtr
storagePoolLookupByTargetPath(virConnectPtr conn,
const char *path)
--
2.1.0