Re: How do I pass in an array of references to cimcli?
Kirk Augustin <[email protected]>
| Newsgroups | gmane.network.open-pegasus.general |
|---|---|
| Message-ID | <[email protected]> |
I though cimcli did support passing an array of strings, but if not, then try a different language interface instead of cimcli. Cimcli is not a complete interface, but just for minimal interaction. Kirk & Trish Augustin 11821 NW McNamee Rd Portland, OR 97231 HM: 503-289-4356 >________________________________ >From: "Hwang, Johnny" <[email protected]> >To: "Hwang, Johnny" <[email protected]>; Ashok K Pathak <[email protected]> >Cc: "[email protected]" <[email protected]> >Sent: Monday, June 11, 2012 11:45 PM >Subject: RE: How do I pass in an array of references to cimcli? > >Ugh retract previous message. Brain is fried. The provider is fine accepting reference param array. The problem is cimcli doesn't support passing an array of refs. > >-----Original Message----- >From: Hwang, Johnny >Sent: Monday, June 11, 2012 11:44 PM >To: 'Ashok K Pathak' >Cc: [email protected] >Subject: RE: How do I pass in an array of references to cimcli? > >References is fine, but for array of references, it looks like I need to pull some changes from the nightlies. > >-----Original Message----- >From: Ashok K Pathak [mailto:[email protected]] >Sent: Monday, June 11, 2012 11:19 PM >To: Hwang, Johnny >Cc: [email protected] >Subject: Re: How do I pass in an array of references to cimcli? > >The reference could be specified using the string form of a CIM object >path. For a >class reference, it is simply specifying the class name or "<namespace>:<classname>". > >some test example > >TestMethodTestProvider.cpp >(src/Providers/TestProviders/MethodTestProvider/testclient) > > > >/* Test for method invoke and response that handles ref parameter arrays. > This functions sends two ref array in parameters and expects exactly the > same reference arrays back in the two out parameters. >*/ >void callMethodRefParamArray(const CIMName& methodName) { > try > { > CIMClient client; > client.connectLocal(); > > Array<CIMParamValue> inParams; > Array<CIMParamValue> outParams; > > CIMObjectPath instName = > CIMObjectPath("Test_MethodProviderClass.Id=1"); > > CIMObjectPath inParamA1( > String("//atp:77/root/cimv2:CIM_ComputerSystem." > "last=\"Rafter\",first=\"Patrick\"")); > > CIMObjectPath inParamA2( > String("//atp:77/root/cimv2:CIM_ComputerSystem." > "last=\"Rafter\",first=\"Rafter\"")); > > CIMObjectPath inParamB1( > String("//atp:77/root/cimv2:CIM_ComputerSystem." > "last=\"Rafter\",first=\"Fred\"")); > > CIMObjectPath inParamB2( > String("//atp:77/root/cimv2:CIM_ComputerSystem." > "last=\"Rafter\",first=\"John\"")); > > Array<CIMObjectPath> InParamAArray; > InParamAArray.append(inParamA1); > InParamAArray.append(inParamA2); > CIMValue inParam1(InParamAArray); > > Array<CIMObjectPath> InParamBArray; > InParamBArray.append(inParamB1); > InParamBArray.append(inParamB2); > CIMValue inParam2(InParamBArray); > > inParams.append(CIMParamValue("InParam1", inParam1)); > inParams.append(CIMParamValue("InParam2", inParam2)); > > CIMValue returnValue = client.invokeMethod(ou > NAMESPACE, > instName, > methodName, > inParams, > outParams); > > Uint32 rc; > returnValue.get(rc); > PEGASUS_TEST_ASSERT(rc == 10); > > PEGASUS_TEST_ASSERT(outParams.size() == 2); > > Array<CIMObjectPath> outParam1; > Array<CIMObjectPath> outParam2; > > for (Uint32 i = 0; i < 2; i++) > { > if (outParams[i].getParameterName() == "OutParam1") > { > outParams[i].getValue().get(outParam1); > } > else if (outParams[i].getParameterName() == "OutParam2") > { > outParams[i].getValue().get(outParam2); > } > else > {k > PEGASUS_TEST_ASSERT(0); > } > } > PEGASUS_TEST_ASSERT(outParam1 == inParam1); > PEGASUS_TEST_ASSERT(outParam2 == inParam2); > } > catch (Exception& e) > { > cerr << "Error: " << e.getMessage() << endl; > exit(1); > } >} > > >I am not sure whether cimcli handles that parameter type correctly , if you see any issue with ref parameter passing you can raise a defect in bugzilla to address it > >Regards >Ashok > > > > "Hwang, Johnny" > <Johnny.Hwang@net > app.com> To > "[email protected]" > 06/12/2012 05:49 <[email protected]>, > AM cc > > Subject > How do I pass in an array of > references to cimcli? > > > > > > > > > > >I’m using Pegasus 2.11.1 with Bug 9007 patch >http://bugzilla.openpegasus.org/show_bug.cgi?id=9007 > >This is what I need to pass: > >Description ("The list of Identities to assign privilege to share") > : Translatable] reference Identities[], > >This is what I’m trying to do: > >[root@smis-rhel5x64-07 ~]# cimcli -n root/ontap im 'ONTAP_FileExportService.CreationClassName="ONTAP_FileExportService",Name="ONTAP >File Export >Service",SystemCreationClassName="ONTAP_StorageSystem",SystemName="ONTAP:12345"' >AssignPrivilegeToExportedShare Identities= { 'ONTAP_Identity.InstanceID="ONTAP:12345:NETAPP\\user1"' >'ONTAP_Identity.InstanceID="ONTAP:12345:NETAPP\\user2"'} >/usr/ontap/smis/pegasus/bin/cimcli Pegasus Exception: The CIM name is not >valid: ONTAP_Identity.InstanceID="ONTAP:12345:NETAPP\\user1". Cmd = im Object = ONTAP_FileExportService.CreationClassName="ONTAP_FileExportService",Name="ONTAP >File Export >Service",SystemCreationClassName="ONTAP_StorageSystem",SystemName="ONTAP:12345" >WARNING: Expected exit code 0. Program delivered exit code (50) Pegasus Exception > >How do I pass an array reference as a parameter properly? > > > >