[Libvirt-cim] [PATCH] NetRASD enumeration to show VSI fields

Chip Vincent cvincent at linux.vnet.ibm.com
Thu Jul 29 15:07:22 UTC 2010


+1

Sharad Mishra wrote:
> # HG changeset patch
> # User Sharad Mishra <snmishra at us.ibm.com>
> # Date 1279667490 18000
> # Node ID 74e5764714b5e172ce703aee980544d7bc0d03b5
> # Parent  ad15531492da607d5aa44a4fa2c67f6ef41a6e1b
> NetRASD enumeration to show VSI fields.
>
> This fixes the bug where VSI fields were not populated for NetRASD.
>
> Signed-off-by: Sharad Mishra <snmishra at us.ibm.com>
>
> diff -r ad15531492da -r 74e5764714b5 libxkutil/device_parsing.c
> --- a/libxkutil/device_parsing.c	Wed Jul 14 11:54:31 2010 -0400
> +++ b/libxkutil/device_parsing.c	Tue Jul 20 18:11:30 2010 -0500
> @@ -77,7 +77,6 @@
>          free(dev->model);
>          free(dev->device);
>          free(dev->net_mode);
> -        cleanup_vsi_device(&dev->vsi);
>  }
>
>  static void cleanup_emu_device(struct emu_device *dev)
> @@ -296,11 +295,55 @@
>          }
>  }
>
> +static int parse_vsi_device(xmlNode *dnode, struct net_device *vdevs)
> +{
> +        struct vsi_device *vsi_dev = NULL;
> +        xmlNode * child = NULL;
> +
> +        vsi_dev = calloc(1, sizeof(*vsi_dev));
> +        if (vsi_dev == NULL)
> +                goto err;
> +
> +        vsi_dev->vsi_type = get_attr_value(dnode, "type");
> +        if (vsi_dev->vsi_type == NULL)
> +                goto err;
> +
> +        for (child = dnode->children; child != NULL; child = child->next) {
> +                if (XSTREQ(child->name, "parameters")) {
> +                        vsi_dev->manager_id = get_attr_value(child, 
> +                                                             "managerid");
> +                        if (vsi_dev->manager_id == NULL)
> +                                goto err;
> +
> +                        vsi_dev->type_id = get_attr_value(child, "typeid");
> +                        if (vsi_dev->type_id == NULL)
> +                                goto err;
> +
> +                        vsi_dev->type_id_version = 
> +                                get_attr_value(child, "typeidversion");
> +                        if (vsi_dev->type_id_version == NULL)
> +                                goto err;
> +
> +                        vsi_dev->instance_id = get_attr_value(child, 
> +                                                              "instanceid");
> +                        vsi_dev->profile_id = get_attr_value(child, 
> +                                                             "profileid");
> +                 }
> +        }
> +
> +        memcpy(&(vdevs->vsi), vsi_dev, sizeof(*vsi_dev));
> +        return 1;
> +
> +err:
> +        cleanup_vsi_device(vsi_dev);
> +        free(vsi_dev);
> +        return 0;
> +}
> +
>  static int parse_net_device(xmlNode *inode, struct virt_device **vdevs)
>  {
>          struct virt_device *vdev = NULL;
>          struct net_device *ndev = NULL;
> -        struct vsi_device *vsi_dev = NULL;
>          xmlNode *child = NULL;
>
>          vdev = calloc(1, sizeof(*vdev));
> @@ -308,7 +351,6 @@
>                  goto err;
>
>          ndev = &(vdev->dev.net);
> -        vsi_dev = &(ndev->vsi);
>
>          ndev->type = get_attr_value(inode, "type");
>          if (ndev->type == NULL)
> @@ -340,24 +382,7 @@
>                          if (ndev->model == NULL)
>                                  goto err;
>                  } else if (XSTREQ(child->name, "virtualport")) {
> -                        vsi_dev->vsi_type = get_attr_value(child, "type");
> -                        if (vsi_dev->vsi_type == NULL)
> -                                goto err;
> -                } else if (XSTREQ(child->name, "parameters")) {
> -                        vsi_dev->manager_id = get_attr_value(child, "managerid");
> -                        if (vsi_dev->manager_id == NULL)
> -                                goto err;
> -
> -                        vsi_dev->type_id = get_attr_value(child, "typeid");
> -                        if (vsi_dev->type_id == NULL)
> -                                goto err;
> -
> -                        vsi_dev->type_id_version = get_attr_value(child, "typeidversion");
> -                        if (vsi_dev->type_id_version == NULL)
> -                                goto err;
> -
> -                        vsi_dev->instance_id = get_attr_value(child, "instanceid");
> -                        vsi_dev->profile_id = get_attr_value(child, "profileid");
> +                        parse_vsi_device(child, ndev);
>                  }
>          }
>
>
> _______________________________________________
> Libvirt-cim mailing list
> Libvirt-cim at 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 at us.ibm.com




More information about the Libvirt-cim mailing list