Hi all, I took a shoot at a systemgroup.create with less more parameters as such and it returned the very same error:
%sgdetails = ( name => "m15_test_api", > description => "creation groupe via api"); > > my $sgcreate = $client->call('systemgroup.create', $session, > $sgdetails{name}, $sgdetails{description}); > Despite having seen in previous user list interaction ( https://www.redhat.com/archives/spacewalk-list/2009-September/msg00117.html) where perl hashes were directly used like in my test script, it seems to be returning badly the contains between { }: [2018-07-16 09:50:53,586] ERROR - REQUESTED FROM: 10.24.128.105 CALL: systemgroup.create(rvandepoel, {name=m15_test_api, description=creation groupe via api}) CALLER: (rvandepoel) TIME: 0.006 seconds And indeed, if I am calling each element instead of addressing the @args parts with the hash, and voila, working: %sgdetails = ( name => "m15_test_api", > description => "creation groupe via api"); > > my $sgcreate = $client->call('systemgroup.create', $session, > $sgdetails{name}, $sgdetails{description}); > [2018-07-16 09:54:13,863] INFO - REQUESTED FROM: 10.24.128.105 CALL: > auth.login(rvandepoel, ********) CALLER: (rvandepoel) TIME: 0.077 seconds > [2018-07-16 09:54:13,901] INFO - REQUESTED FROM: 10.24.128.105 CALL: > systemgroup.create(rvandepoel, m15_test_api, creation groupe via api) > CALLER: (rvandepoel) TIME: 0.018 seconds > [2018-07-16 09:54:13,960] INFO - REQUESTED FROM: 10.24.128.105 CALL: > auth.logout(2821x9d781f69660f753daa69814623a246890fe111ca6e398c54892e80e2f15a832a) > CALLER: (rvandepoel) TIME: 0.005 seconds > Also, reading through the issue with type in XML RPC, I also tried the following which is working too: $sgname = "name="."m15_test2_api"; > $sgdesc = "description="."creation groupe via api"; > my $sgcreate = $client->call('systemgroup.create', $session, $sgname, > $sgdesc); > [2018-07-16 10:10:08,575] INFO - REQUESTED FROM: 10.24.128.105 CALL: > auth.login(rvandepoel, ********) CALLER: (rvandepoel) TIME: 0.102 seconds > [2018-07-16 10:10:08,604] INFO - REQUESTED FROM: 10.24.128.105 CALL: > systemgroup.create(rvandepoel, name=m15_test2_api, description=creation > groupe via api) CALLER: (rvandepoel) TIME: 0.009 seconds > [2018-07-16 10:10:08,621] INFO - REQUESTED FROM: 10.24.128.105 CALL: > auth.logout(2822x55955c62befecc13c9888ff3a0c8af11caf900c66e0f4ec4c557dabdc7d0df08) > CALLER: (rvandepoel) TIME: 0.005 seconds > Am I doing something wrong or is there an issue with the way hashes are formatted and sent the API. Thanks for your help, Romuald On Sat, Jul 14, 2018 at 12:43 AM Rom <r.vandep...@gmail.com> wrote: > Dear SpaceWalkers, > > I am prototyping a perl script to create a spacewalk user but I am blocked > with an error that I can't figure out how to fix. > I would definitely appreciate some help. > > Here is the script: > > #!/usr/bin/perl >> use Frontier::Client; >> my $HOST = 'spacewalk'; >> my $user = 'rvandepoel'; >> my $pass = 'myverysecretpassword'; >> my $client = new Frontier::Client(url => "http://$HOST/rpc/api", debug >> => 1); >> my $session = $client->call('auth.login',$user, $pass); >> %userdetails = ( 'desiredLogin' => 'tvvvvv', >> 'desiredPassword' => 'xxxxx@yyyyy', >> 'firstName' => 'ttttt', >> 'lastName' => 'vvvvv', >> 'email' => 'ttttt.vv...@ourdomain.ext', >> ); >> my $createuser = $client->call('user.create', $session, \%userdetails); >> $client->call('auth.logout', $session); > > > Here is the debug output from the script: > > ---- request ---- >> >> <?xml version="1.0"?> >> >> <methodCall> >> >> <methodName>auth.login</methodName> >> >> <params> >> >> <param><value><string>rvandepoel</string></value></param> >> >> <param><value><string>myverysecretpassword</string></value></param> >> >> </params> >> >> </methodCall> >> >> ---- response ---- >> >> <?xml version="1.0" >>> encoding="UTF-8"?><methodResponse><params><param><value><string>2807x0e46953a64079e6d8b67a10cf2f6dbef4ba11a5fe6e60605aac4b6d4cd795c44</string></value></param></params></methodResponse>---- >>> request ---- >> >> <?xml version="1.0"?> >> >> <methodCall> >> >> <methodName>user.create</methodName> >> >> <params> >> >> >>> <param><value><string>2807x0e46953a64079e6d8b67a10cf2f6dbef4ba11a5fe6e60605aac4b6d4cd795c44</string></value></param> >> >> <param><value><struct> >> >> <member><name>email</name><value><string>ttttt.vv...@ourdomain.ext >>> </string></value></member> >> >> >>> <member><name>firstName</name><value><string>ttttt</string></value></member> >> >> >>> <member><name>desiredLogin</name><value><string>tvvvvv</string></value></member> >> >> <member><name>desiredPassword</name><value><string>xxxxx@yyyyy >>> </string></value></member> >> >> >>> <member><name>lastName</name><value><string>vvvvv</string></value></member> >> >> </struct></value> >> >> </param> >> >> </params> >> >> </methodCall> >> >> ---- response ---- >> >> Fault returned from XML RPC Server, fault code -1: >>> redstone.xmlrpc.XmlRpcFault: Could not find method: create in class: >>> com.redhat.rhn.frontend.xmlrpc.user.UserHandler with params: >>> [com.redhat.rhn.domain.user.legacy.UserImpl, redstone.xmlrpc.XmlRpcStruct] >> >> <?xml version="1.0" >>> encoding="UTF-8"?><methodResponse><fault><value><struct><member><name>faultCode</name><value><int>-1</int></value></member><member><name>faultString</name><value><string>redstone.xmlrpc.XmlRpcFault: >>> Could not find method: create in class: >>> com.redhat.rhn.frontend.xmlrpc.user.UserHandler with params: >>> [com.redhat.rhn.domain.user.legacy.UserImpl, >>> redstone.xmlrpc.XmlRpcStruct]</string></value></member></struct></value></fault></methodResponse> >> >> > > Here is the output of /var/log/rhn/rhn_web_api.log > > [2018-07-14 00:26:34,859] INFO - REQUESTED FROM: 10.24.128.105 CALL: >> auth.login(rvandepoel, ********) CALLER: (rvandepoel) TIME: 0.058 seconds > > [2018-07-14 00:26:34,886] ERROR - REQUESTED FROM: 10.24.128.105 CALL: >> user.create(rvandepoel, {firstName=ttttt, lastName=vvvvv, >> desiredPassword=xxxxx@yyyyy, email=ttttt.vv...@ourdomain.ext, >> desiredLogin=tvvvvv}) CALLER: (rvandepoel) TIME: 0.004 seconds >> redstone.xmlrpc.XmlRpcFault: Could not find method: create in class: >> com.redhat.rhn.frontend.xmlrpc.user.UserHandler with params: >> [com.redhat.rhn.domain.user.legacy.UserImpl, redstone.xmlrpc.XmlRpcStruct] >> at >> com.redhat.rhn.frontend.xmlrpc.BaseHandler.findMethods(BaseHandler.java:260) >> at >> com.redhat.rhn.frontend.xmlrpc.BaseHandler.invoke(BaseHandler.java:117) >> at >> redstone.xmlrpc.XmlRpcDispatcher.dispatch(XmlRpcDispatcher.java:123) >> at >> com.redhat.rhn.frontend.xmlrpc.RhnXmlRpcServer.execute(RhnXmlRpcServer.java:54) >> at >> com.redhat.rhn.frontend.xmlrpc.XmlRpcServlet.doPost(XmlRpcServlet.java:162) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:646) >> at javax.servlet.http.HttpServlet.service(HttpServlet.java:727) >> at >> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303) >> at >> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) >> at >> org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52) >> at >> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) >> at >> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) >> at >> com.opensymphony.sitemesh.webapp.SiteMeshFilter.obtainContent(SiteMeshFilter.java:129) >> at >> com.opensymphony.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:77) >> at >> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) >> at >> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) >> at >> com.redhat.rhn.frontend.servlets.LocalizedEnvironmentFilter.doFilter(LocalizedEnvironmentFilter.java:67) >> at >> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) >> at >> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) >> at >> com.redhat.rhn.frontend.servlets.EnvironmentFilter.doFilter(EnvironmentFilter.java:101) >> at >> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) >> at >> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) >> at >> com.redhat.rhn.frontend.servlets.SessionFilter.doFilter(SessionFilter.java:57) >> at >> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) >> at >> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) >> at >> com.redhat.rhn.frontend.servlets.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:97) >> at >> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241) >> at >> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208) >> at >> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220) >> at >> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122) >> at >> org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:501) >> at >> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) >> at >> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102) >> at >> org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950) >> at >> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116) >> at >> org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408) >> at >> org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:193) >> at >> org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:607) >> at >> org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314) >> at >> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) >> at >> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) >> at >> org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61) >> at java.lang.Thread.run(Thread.java:745) >> > > Any idea why this is failing? > > Thanks a lot for your precious help, > Rom;) > > > > > >
_______________________________________________ Spacewalk-list mailing list Spacewalk-list@redhat.com https://www.redhat.com/mailman/listinfo/spacewalk-list