[Libvirt-cim] [PATCH] This patch replaces get_previous_instance function with get_rasd_by_name()

Richard Maciel rmaciel at linux.vnet.ibm.com
Mon Sep 21 15:08:21 UTC 2009


+1

On 09/18/2009 01:54 PM, Sharad Mishra wrote:
> # HG changeset patch
> # User Sharad Mishra<snmishra at us.ibm.com>
> # Date 1253292817 25200
> # Node ID f916b221ea7e21b091d36ef841eb3bde1813798d
> # Parent  fc50acd35fe7f344e296441a88a00f42a7636ad6
> This patch replaces get_previous_instance function with get_rasd_by_name().
>
> Signed-off-by: Sharad Mishra<snmishra at us.ibm.com>
>
> diff -r fc50acd35fe7 -r f916b221ea7e src/Virt_VirtualSystemManagementService.c
> --- a/src/Virt_VirtualSystemManagementService.c	Wed Sep 16 11:49:21 2009 -0700
> +++ b/src/Virt_VirtualSystemManagementService.c	Fri Sep 18 09:53:37 2009 -0700
> @@ -2185,49 +2185,6 @@
>           return s;
>   }
>
> -static CMPIInstance *get_previous_instance(struct domain *dominfo,
> -                                           const CMPIObjectPath *ref,
> -                                           uint16_t type,
> -                                           const char *devid)
> -{
> -        CMPIStatus s;
> -        const char *props[] = {NULL};
> -        const char *inst_id;
> -        struct inst_list list;
> -        CMPIInstance  *prev_inst = NULL;
> -        int i, ret;
> -
> -        inst_list_init(&list);
> -        s = enum_rasds(_BROKER, ref, dominfo->name, type, props,&list);
> -        if (s.rc != CMPI_RC_OK) {
> -                CU_DEBUG("Failed to enumerate rasd");
> -                goto out;
> -        }
> -
> -        for(i = 0; i<  list.cur; i++) {
> -                prev_inst = list.list[i];
> -                ret = cu_get_str_prop(prev_inst,
> -                                      "InstanceID",
> -&inst_id);
> -
> -                if (ret != CMPI_RC_OK) {
> -                        CU_DEBUG("Cannot get InstanceID ... ignoring");
> -                        continue;
> -                }
> -
> -                if (STREQ(inst_id, get_fq_devid(dominfo->name, (char *)devid)))
> -                        break;
> -        }
> -
> -	if (prev_inst == NULL)
> -                CU_DEBUG("PreviousInstance is NULL");
> -
> - out:
> -        inst_list_free(&list);
> -
> -        return prev_inst;
> -}
> -
>   static CMPIStatus _update_resources_for(const CMPIContext *context,
>                                           const CMPIObjectPath *ref,
>                                           virDomainPtr dom,
> @@ -2276,7 +2233,24 @@
>           }
>           else {
>                   indication = strdup(RASD_IND_MODIFIED);
> -                prev_inst = get_previous_instance(dominfo, ref, type, devid);
> +                char *dummy_name = NULL;
> +
> +                if (asprintf(&dummy_name, "%s/%s",dominfo->name, devid) == -1) {
> +                        CU_DEBUG("Unable to set name");
> +                        goto out;
> +                }
> +                s = get_rasd_by_name(_BROKER,
> +                                     ref,
> +                                     dummy_name,
> +                                     type,
> +                                     NULL,
> +&prev_inst);
> +                free(dummy_name);
> +
> +                if (s.rc != CMPI_RC_OK) {
> +                        CU_DEBUG("Failed to get Previous Instance");
> +                        goto out;
> +                }
>           }
>
>           s = func(dominfo, rasd, type, devid, NAMESPACE(ref));
>
> _______________________________________________
> Libvirt-cim mailing list
> Libvirt-cim at redhat.com
> https://www.redhat.com/mailman/listinfo/libvirt-cim


-- 
Richard Maciel, MSc
IBM Linux Technology Center
rmaciel at linux.vnet.ibm.com




More information about the Libvirt-cim mailing list