[Libvirt-cim] [PATCH] Use libvirt to get StorageVolume Path to set SV InstanceID
Richard Maciel
rmaciel at linux.vnet.ibm.com
Mon Mar 22 11:48:17 UTC 2010
I didn't ack because there are changes to be made in the code. Please,
check the comments.
Em 19-03-2010 21:19, Sharad Mishra escreveu:
> Richard,
>
> Apart from the test, does the code look okay?
> I have tested it and Deepti has tested it too. So if the code review is
> good, then please ack it.
>
> Thanks
> Sharad Mishra
> System x Enablement
> Linux Technology Center
> IBM
>
> Inactive hide details for Richard Maciel ---03/19/2010 03:54:31 PM---I
> tested volume creation, but I don't really have a way toRichard Maciel
> ---03/19/2010 03:54:31 PM---I tested volume creation, but I don't really
> have a way to check if this
>
> *Richard Maciel <rmaciel at linux.vnet.ibm.com>*
> Sent by: libvirt-cim-bounces at redhat.com
>
> 03/19/10 03:50 PM
> Please respond to
> List for discussion and development of libvirt
> CIM <libvirt-cim at redhat.com>
>
>
>
> To
>
> libvirt-cim at redhat.com
>
> cc
>
>
> Subject
>
> Re: [Libvirt-cim] [PATCH] Use libvirt to get StorageVolume Path to set
> SV InstanceID
>
>
>
>
> I tested volume creation, but I don't really have a way to check if this
> code work, since I can't directly access a StorageVolume to check the
> InstanceID. :-/
>
>
> Em 08-03-2010 22:10, Sharad Mishra escreveu:
> > # HG changeset patch
> > # User Sharad Mishra<snmishra at us.ibm.com>
> > # Date 1268096483 28800
> > # Node ID fa15816439a7ef1e9ff212cf1833cafa7b1fd704
> > # Parent 4ee7c4354bc550780bc02ef1f69fbda387b3fe13
> > Use libvirt to get StorageVolume Path to set SV InstanceID.
> >
> > InstanceID of a StorageVolume was set using the 'Path' field of
> StorageVolume RASD. If 'Path' was not set by the user, the InstanceID
> would be invalid. This patch fixed the issue by using libvirt to get the
> storage volume path. The path returned by libvirt is used to set the
> InstanceID.
> >
> > Signed-off-by: Sharad Mishra<snmishra at us.ibm.com>
> >
> > diff -r 4ee7c4354bc5 -r fa15816439a7 libxkutil/pool_parsing.c
> > --- a/libxkutil/pool_parsing.c Tue Mar 02 15:23:45 2010 -0800
> > +++ b/libxkutil/pool_parsing.c Mon Mar 08 17:01:23 2010 -0800
> > @@ -353,12 +353,12 @@
> > }
> >
> > #if VIR_USE_LIBVIRT_STORAGE
> > -int create_resource(virConnectPtr conn,
> > +char *create_resource(virConnectPtr conn,
> > const char *pname,
> > const char *xml,
> > int res_type)
>
> All function parameters must be aligned
>
> > {
> > - int ret = 0;
> > + char *path = NULL;
> > virStoragePoolPtr ptr = NULL;
> > virStorageVolPtr vptr = NULL;
> >
> > @@ -376,14 +376,19 @@
> > goto out;
> > }
> >
> > - ret = 1;
> > + path = virStorageVolGetPath(vptr);
> > + if (path == NULL) {
> > + CU_DEBUG("Unable to get storage volume path");
> > + goto out;
> > + }
> > +
> > }
> >
> > out:
> > virStoragePoolFree(ptr);
> > virStorageVolFree(vptr);
> >
> > - return ret;
> > + return path;
> > }
> >
> > int delete_resource(virConnectPtr conn,
> > @@ -414,13 +419,13 @@
> > return ret;
> > }
> > #else
> > -int create_resource(virConnectPtr conn,
> > +char *create_resource(virConnectPtr conn,
> > const char *pname,
> > const char *xml,
> > int res_type)
>
> Align those parameters too
>
> > {
> > CU_DEBUG("Creating resources within libvirt pools not supported");
> > - return 0;
> > + return NULL;
> > }
> >
> > int delete_resource(virConnectPtr conn,
> > diff -r 4ee7c4354bc5 -r fa15816439a7 libxkutil/pool_parsing.h
> > --- a/libxkutil/pool_parsing.h Tue Mar 02 15:23:45 2010 -0800
> > +++ b/libxkutil/pool_parsing.h Mon Mar 08 17:01:23 2010 -0800
> > @@ -90,7 +90,7 @@
> > int define_pool(virConnectPtr conn, const char *xml, int res_type);
> > int destroy_pool(virConnectPtr conn, const char *name, int res_type);
> >
> > -int create_resource(virConnectPtr conn, const char *pname,
> > +char *create_resource(virConnectPtr conn, const char *pname,
> > const char *xml, int res_type);
> >
> > int delete_resource(virConnectPtr conn, const char *rname, int res_type);
> > diff -r 4ee7c4354bc5 -r fa15816439a7
> src/Virt_ResourcePoolConfigurationService.c
> > --- a/src/Virt_ResourcePoolConfigurationService.c Tue Mar 02 15:23:45
> 2010 -0800
> > +++ b/src/Virt_ResourcePoolConfigurationService.c Mon Mar 08 17:01:23
> 2010 -0800
> > @@ -832,6 +832,7 @@
> > {
> > virConnectPtr conn;
> > CMPIInstance *inst = NULL;
> > + char *path = NULL;
> >
> > conn = connect_by_classname(_BROKER, CLASSNAME(ref), s);
> > if (conn == NULL) {
> > @@ -839,7 +840,8 @@
> > return NULL;
> > }
> >
> > - if (create_resource(conn, res->pool_id, xml, res->type) == 0) {
> > + path = create_resource(conn, res->pool_id, xml, res->type);
> > + if (path == NULL) {
> > virt_set_status(_BROKER, s,
> > CMPI_RC_ERR_FAILED,
> > conn,
> > @@ -855,6 +857,8 @@
> > "Failed to lookup resulting resource");
> > }
> >
> > + CMSetProperty(inst, "InstanceID", (CMPIValue *)path, CMPI_chars);
> > +
>
> Don't you need to free the path pointer as well?
>
>
> > out:
> > virConnectClose(conn);
> >
> >
> > _______________________________________________
> > 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
>
> _______________________________________________
> Libvirt-cim mailing list
> Libvirt-cim at redhat.com
> https://www.redhat.com/mailman/listinfo/libvirt-cim
>
>
>
> _______________________________________________
> 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