
# HG changeset patch # User Sharad Mishra <snmishra@us.ibm.com> # Date 1299089374 28800 # Node ID 1a894e2ab420ffb16d21d8ffa8c9850bea58b31c # Parent 7a2ce3106321ac1729aeff2b9e42fb2e75da9295 Auto refresh StoragePools This patch refreshes storage pool after volumes have been created or deleted from this pool. This patch also refreshes the pool before enumerating them. Signed-off-by: Sharad Mishra <snmishra@us.ibm.com> diff -r 7a2ce3106321 -r 1a894e2ab420 libxkutil/pool_parsing.c --- a/libxkutil/pool_parsing.c Mon Feb 28 05:57:22 2011 -0800 +++ b/libxkutil/pool_parsing.c Wed Mar 02 10:09:34 2011 -0800 @@ -400,6 +400,9 @@ goto out; } + if ((virStoragePoolRefresh(ptr, 0)) == -1) + CU_DEBUG("Unable to refresh storage pool"); + path = virStorageVolGetPath(vptr); if (path == NULL) { CU_DEBUG("Unable to get storage volume path"); @@ -420,9 +423,11 @@ int res_type) { int ret = 0; + virStorageVolPtr ptr; + virStoragePoolPtr pool_ptr; if (res_type == CIM_RES_TYPE_IMAGE) { - virStorageVolPtr ptr = virStorageVolLookupByPath(conn, rname); + ptr = virStorageVolLookupByPath(conn, rname); if (ptr == NULL) { CU_DEBUG("Storage volume %s is not defined", rname); goto out; @@ -432,6 +437,16 @@ if (ret != 0) { CU_DEBUG("Unable to delete storage volume %s", rname); } else { + pool_ptr = virStoragePoolLookupByVolume(ptr); + if (pool_ptr == NULL) { + CU_DEBUG("Unable to get storage pool " + "from volume"); + } else { + ret = virStoragePoolRefresh(pool_ptr, 0); + if (ret != 0) + CU_DEBUG("Unable to refresh storage " + "pool"); + } ret = 1; } diff -r 7a2ce3106321 -r 1a894e2ab420 src/Virt_DevicePool.c --- a/src/Virt_DevicePool.c Mon Feb 28 05:57:22 2011 -0800 +++ b/src/Virt_DevicePool.c Wed Mar 02 10:09:34 2011 -0800 @@ -182,6 +182,10 @@ goto out; } + if ((virStoragePoolRefresh(pool, 0)) == -1) + CU_DEBUG("Unable to refresh storage pool"); + + if (virStoragePoolGetInfo(pool, &info) == -1) { CU_DEBUG("Failed to get info for pool `%s'", _pool->tag); goto out;