[Libvirt-cim] [PATCH 7/7] Changes to 3 of 3 from code review
Boris Fiuczynski
fiuczy at linux.vnet.ibm.com
Fri Mar 14 09:45:49 UTC 2014
On 03/13/2014 11:27 PM, John Ferlan wrote:
> Signed-off-by: John Ferlan <jferlan at redhat.com>
> ---
> src/Virt_VirtualSystemManagementService.c | 38 ++++++++++++++++++++++++++-----
> 1 file changed, 32 insertions(+), 6 deletions(-)
>
> diff --git a/src/Virt_VirtualSystemManagementService.c b/src/Virt_VirtualSystemManagementService.c
> index 9634481..b478d41 100644
> --- a/src/Virt_VirtualSystemManagementService.c
> +++ b/src/Virt_VirtualSystemManagementService.c
> @@ -1841,23 +1841,42 @@ static const char *input_rasd_to_vdev(CMPIInstance *inst,
> static const char *controller_rasd_to_vdev(CMPIInstance *inst,
> struct virt_device *dev)
> {
> - const char *val;
> + const char *val = NULL;
> + const char *msg = NULL;
> + int ret;
>
> - if (cu_get_str_prop(inst, "Type", &val) != CMPI_RC_OK) {
> - CU_DEBUG("ControllerRASD Type field not valid");
> + if (cu_get_str_prop(inst, "ResourceSubType", &val) != CMPI_RC_OK) {
> + CU_DEBUG("ControllerRASD ResourceSubType field not valid");
> goto out;
> }
> dev->dev.controller.type = strdup(val);
>
cu_get_u64_prop if Index is of type uint64
> + if (cu_get_u32_prop(inst, "Index",
> + &dev->dev.controller.index) != CMPI_RC_OK) {
CU_DEBUG("ControllerRASD Index not set - DEFAULT");
dev->dev.controller.index =
CONTROLLER_INDEX_NOT_SET;
} else {
if (asprintf(&dev->id,
"controller:%s:%" PRIu64,
dev->dev.controller.type,
dev->dev.controller.index) == -1) {
CU_DEBUG("Failed to create controller
id string");
msg = "Failed to create controller id
string";
goto out;
}
}
It is possible that index during the creation of domain is not specified
and than libvirt will define the index itself.
> + CU_DEBUG("ControllerRASD Index field not valid");
> + goto out;
> + }
> +
> if (cu_get_str_prop(inst, "Model", &val) != CMPI_RC_OK) {
> CU_DEBUG("Invalid value for Model in ControllerRASD");
> goto out;
> }
> dev->dev.controller.model = strdup(val);
>
---- snip ----
> + ret = asprintf(&dev->id, "controller:%s:%s",
> + dev->dev.controller.type,
> + dev->dev.controller.index);
> + if (ret == -1) {
> + msg = "Failed to create controller string";
> + goto out;
> + }
---- snap ----
the above block could be deleted
> +
> + msg = rasd_to_device_address(inst, &dev->dev.controller.address);
> +
> +
> out:
>
> - return NULL;
> + return ;
This should probably be
return msg;
> }
>
> static const char *_sysvirt_rasd_to_vdev(CMPIInstance *inst,
> @@ -2131,13 +2150,20 @@ static const char *classify_resources(CMPIArray *resources,
> ns,
> p_error);
> } else if (type == CIM_RES_TYPE_CONTROLLER) {
> + struct virt_device dev;
> + int dcount = count + domain->dev_controller_ct;
> +
> + memset(&dev, 0, sizeof(dev));
> msg = rasd_to_vdev(inst,
> domain,
> - &domain->dev_controller[domain->dev_controller_ct],
> + &dev,
> ns,
> p_error);
> if (msg == NULL)
> - domain->dev_controller_ct += 1;
> + msg = add_device_nodup(&dev,
> + domain->dev_controller,
> + dcount,
> + &domain->dev_controller_ct);
> }
>
> if (msg != NULL)
>
--
Mit freundlichen Grüßen/Kind regards
Boris Fiuczynski
IBM Deutschland Research & Development GmbH
Vorsitzender des Aufsichtsrats: Martina Köderitz
Geschäftsführung: Dirk Wittkopp
Sitz der Gesellschaft: Böblingen
Registergericht: Amtsgericht Stuttgart, HRB 243294
More information about the Libvirt-cim
mailing list