
{ CMPIInstance *inst = NULL; struct inst_list list; + bool val;
- inst_list_init(&list); + if ((type == CIM_RES_TYPE_DISK) || (type == CIM_RES_TYPE_NET)) { + int i = 0; + CMPIrc rc;
- if (type == CIM_RES_TYPE_MEM) { - *s = get_pool_by_name(broker, reference, "MemoryPool/0", &inst); - } else if (type == CIM_RES_TYPE_PROC) { - *s = get_pool_by_name(broker, reference, "ProcessorPool/0", &inst); - } else if (type == CIM_RES_TYPE_DISK) { + inst_list_init(&list); + *s = enum_pools(broker, reference, type, &list); - if ((s->rc == CMPI_RC_OK) && (list.cur > 0))
You probably should insert a CU_DEBUG here just to help debug
The code bit above is being removed, not added.
- inst = list.list[0]; - } else if (type == CIM_RES_TYPE_NET) { - *s = enum_pools(broker, reference, type, &list); - if ((s->rc == CMPI_RC_OK) && (list.cur > 0)) - inst = list.list[0]; Same here
Same here - this code bit it being removed.
- } else if (type == CIM_RES_TYPE_GRAPHICS) { - *s = get_pool_by_name(broker, - reference, - "GraphicsPool/0", - &inst); Same here
It's been removed here as well.
- } else if (type == CIM_RES_TYPE_INPUT) { - *s = get_pool_by_name(broker, - reference, - "InputPool/0", - &inst); + if ((s->rc == CMPI_RC_OK) && (list.cur > 0)) { + + for (i = 0; i < list.cur; i++) { + rc = cu_get_bool_prop(list.list[i], + "Primordial", + &val); + if ((rc != CMPI_RC_OK) || (val)) + continue; + + inst = list.list[i]; + break; + } Same here
I'll fix this and send an updated patch. -- Kaitlin Rupert IBM Linux Technology Center kaitlin@linux.vnet.ibm.com