
+1. Thanks. Pushed. Sharad Mishra wrote:
# HG changeset patch # User Sharad Mishra <snmishra@us.ibm.com> # Date 1293496322 28800 # Node ID 28f3d6f46a06aa5be6aba8bcfeda55bd0ddc5468 # Parent 35396e5b805193c024b6d4f065136d7b57a0b03d Patch to fix missing DiskPool type.
DiskPool type was not being populated.
Signed-off-by: Sharad Mishra <snmishra@us.ibm.com>
diff -r 35396e5b8051 -r 28f3d6f46a06 libxkutil/pool_parsing.c --- a/libxkutil/pool_parsing.c Tue Dec 14 13:59:51 2010 -0800 +++ b/libxkutil/pool_parsing.c Mon Dec 27 16:32:02 2010 -0800 @@ -166,6 +166,30 @@ return 1; }
+char *get_disk_pool_type(uint16_t type) +{ + + switch (type) { + case DISK_POOL_DIR: + return "dir"; + case DISK_POOL_FS: + return "fs"; + case DISK_POOL_NETFS: + return "netfs"; + case DISK_POOL_DISK: + return "disk"; + case DISK_POOL_ISCSI: + return "iscsi"; + case DISK_POOL_LOGICAL: + return "logical"; + case DISK_POOL_SCSI: + return "scsi"; + default: + return NULL; + } + +} + static const char *parse_disk_pool(xmlNodeSet *nsv, struct disk_pool *pool) { xmlNode **nodes = nsv->nodeTab; diff -r 35396e5b8051 -r 28f3d6f46a06 libxkutil/pool_parsing.h --- a/libxkutil/pool_parsing.h Tue Dec 14 13:59:51 2010 -0800 +++ b/libxkutil/pool_parsing.h Mon Dec 27 16:32:02 2010 -0800 @@ -86,6 +86,7 @@ void cleanup_virt_pool_res(struct virt_pool_res **res);
int get_pool_from_xml(const char *xml, struct virt_pool *pool, int type); +char *get_disk_pool_type(uint16_t type);
int define_pool(virConnectPtr conn, const char *xml, int res_type); int destroy_pool(virConnectPtr conn, const char *name, int res_type); diff -r 35396e5b8051 -r 28f3d6f46a06 src/Virt_DevicePool.c --- a/src/Virt_DevicePool.c Tue Dec 14 13:59:51 2010 -0800 +++ b/src/Virt_DevicePool.c Mon Dec 27 16:32:02 2010 -0800 @@ -172,6 +172,7 @@ virStoragePoolInfo info; uint64_t cap; uint64_t res; + uint16_t type; struct virt_pool *pool_vals = NULL; const char *pool_str = NULL;
@@ -204,6 +205,10 @@ CMSetProperty(inst, "Path", (CMPIValue *)pool_str, CMPI_chars); } + type = pool_vals->pool_info.disk.pool_type; + CMSetProperty(inst, "OtherResourceType", + (CMPIValue *)get_disk_pool_type(type), + CMPI_chars); }
result = true; @@ -957,11 +962,19 @@ const char *refcn, const CMPIBroker *broker) { + CMPIStatus s = {CMPI_RC_OK, NULL}; CMPIInstance *inst; char *poolid = NULL;
inst = get_typed_instance(broker, refcn, "DiskPool", ns);
+ if (inst == NULL) { + cu_statusf(broker, &s, + CMPI_RC_ERR_FAILED, + "Unable to init DiskPool instance"); + goto out; + } + if (asprintf(&poolid, "DiskPool/%s", pool->tag) == -1) return NULL;
@@ -976,6 +989,7 @@ CU_DEBUG("Failed to set capacity for disk pool: %s", pool->tag);
+out: free(poolid);
return inst;
_______________________________________________ Libvirt-cim mailing list Libvirt-cim@redhat.com https://www.redhat.com/mailman/listinfo/libvirt-cim
-- Chip Vincent Open Virtualization, Linux Technology Center IBM Systems & Technology Group phone: 919-254-4482, T/L 444-4482 email: cvincent@us.ibm.com