Hi Daniel et.al., nokigiri was installed, as per the installation documentation:
[root ~]# ls -ld /usr/lib/ruby/gems/1.8/gems/noko* drwxr-xr-x 4 root root 4096 Apr 8 14:07 /usr/lib/ruby/gems/1.8/gems/nokogiri-1.3.1 Is there somehing that needs to be done in order to ensure that it it used instead of the default REXML? Rob On Thu, Apr 14, 2011 at 5:07 AM, Daniel Molina <[email protected]> wrote: > I think the problem is the ruby version, are you using the default > REXML gem? if so, would you mind to try installing the nokogiri gem > (and restart both one and sunstone). If this gem is installed > OpenNebula will use it instead of REXML. > > $ gem install nokogiri. > > Hope this helps > > On 14 April 2011 00:08, Robert Parrott <[email protected]> wrote: >> Hi Folks, >> >> A little more investigation, and I've confirmed that the issue is with >> the sunstone code or with some sort of XML parsing issues, >> >> I can call the "to_xml" method on the user_pool object (again in >> SunstoneServer.authorize() method of file SunstoneServer.rb), and I >> see the proper XML output, the same as if I execute "oneuser list -x" >> on the command line. So the data is there in sunstone. >> >> However, the query on the XML returns "nil" when in fact the user is >> there. I.e. in the sunstone source referred to above, the line >> >> user_pass = user_pool["USER[NAME=\"#{user}\"]/PASSWORD"] >> >> returns "nil" whether or not the data is correct and present. So it >> seems that the XPath query, or the XML query library is broken. >> >> Here's an example of a session, with tons of debugging thrown in: >> >> user = testuser >> sha1_pass = 5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8 >> user_pool.info = nil >> user_pass = nil >> user_pool = #<OpenNebula::UserPool:0x2b6281b765d8> >> UserPool methods = >> mapmethodsinstance_evalany?to_setsortdupmininstance_variablesinclude?instance_of?to_yaml_propertiesextenddclonepretty_inspecteql?namefind_alleachpretty_print_cycleto_jsonhashidsingleton_methodseach_elementinjecttaintsort_byinstance_variable_getfrozen?has_elements?pretty_printmaxkind_of?methodselectto_adisplayto_xmltypeinitialize_xmlprotected_methodsto_strpartitionpretty_print_inspectgrepinstance_variable_settextis_a?respond_to?to_srejectattrobject_idclassprivate_methods==tainted?__id__===member?to_hashuntaintnil?template_strfindeach_with_indextaguriinspectsendcollectall?pretty_print_instance_variablesinfo=~clonetaguri=retrieve_elementsentriespublic_methods__send__freezeequal?template_like_strdetectfactoryzip[]to_yamlto_yaml_style >> user_pool as XML = <USER_POOL> >> <USER> >> <ID>0</ID> >> <NAME>oneadmin</NAME> >> <PASSWORD>5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8</PASSWORD> >> <ENABLED>1</ENABLED> >> </USER> >> <USER> >> <ID>1</ID> >> <NAME>testuser</NAME> >> <PASSWORD>5baa61e4c9b93f3f0682250b6cf8331b7ee68fd8</PASSWORD> >> <ENABLED>1</ENABLED> >> </USER> >> </USER_POOL> >> USER object static string = >> 0oneadmin5baa61e4c9b93f3f0682250b6cf8331b7ee68fd811testuser5baa61e4c9b93f3f0682250b6cf8331b7ee68fd81 >> USER/NAME = oneadmintestuser >> USER/PASSWORD = >> 5baa61e4c9b93f3f0682250b6cf8331b7ee68fd85baa61e4c9b93f3f0682250b6cf8331b7ee68fd8 >> USER/ID = 01 >> USER[NAME="testuser"] = nil >> >> Assuming that the query is correct, I guess there's an issue in a >> parser library. Further input is greatly appreciated. >> >> Rob >> >> >> >> >> >> On Wed, Apr 13, 2011 at 2:21 PM, Robert Parrott >> <[email protected]> wrote: >>> I've added some debugging to the sunstone, and see the following behavior. >>> >>> 1) In the build-session method of the sunstone-server.rb, the username >>> and password are properly passwd into the server, and the SHA1 hash >>> calculated is what is expected. >>> >>> 2) In the SunstoneServer.authorize() method in the file >>> SunstoneServer.rb, the username and sha1 hash are passed into the >>> method properly, but the query to the UserPool object, >>> >>> user_pass = user_pool["USER[NAME=\"#{user}\"]/PASSWORD"] >>> >>> returns "nil." >>> >>> Thus it is the communication with the oned where the problem lies. >>> >>> 3) In the oned.log file, I see that the method UserPoolInfo method is >>> executed as soon as there is a login attempt from sunstone: >>> >>> ==> /var/log/one/oned.log <== >>> Wed Apr 13 14:11:06 2011 [ReM][D]: UserPoolInfo method invoked >>> >>> >>> >>> I've wiped the installation and reinstalled afresh, but with the same >>> error. The system is a CentOS 5.5 installation, ruby v1.8.5. >>> >>> >>> Thanks, >>> rob >>> >> >> >> >> -- >> Robert E. Parrott, Ph.D. (Phys. '06) >> Director, Academic and Research Computing >> Harvard University Sch. of Eng. and App. Sci. >> Maxwell-Dworkin 211, >> 33 Oxford St. >> Cambridge, MA 02138 >> (617)-496-1520 >> > > > > -- > Daniel Molina, Cloud Technology Engineer/Researcher > Major Contributor > OpenNebula - The Open Source Toolkit for Cloud Computing > www.OpenNebula.org | [email protected] > -- Robert E. Parrott, Ph.D. (Phys. '06) Director, Academic and Research Computing Harvard University Sch. of Eng. and App. Sci. Maxwell-Dworkin 211, 33 Oxford St. Cambridge, MA 02138 (617)-496-1520 _______________________________________________ Users mailing list [email protected] http://lists.opennebula.org/listinfo.cgi/users-opennebula.org
