<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=us-ascii">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; color: rgb(0, 0, 0); font-size: 14px; font-family: Calibri, sans-serif; ">
<div>Hi,</div>
<div>Sorry, please ignore my previous email</div>
<div>Turns out this error is caused by my modifications in our use of sunstone.</div>
<div><br>
</div>
<div>Hyunwoo</div>
<div>FermiCloud</div>
<div><br>
</div>
<span id="OLK_SRC_BODY_SECTION">
<div style="font-family:Calibri; font-size:11pt; text-align:left; color:black; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: #b5c4df 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 3pt">
<span style="font-weight:bold">From: </span>Hyunwoo Kim <<a href="mailto:hyunwoo@fnal.gov">hyunwoo@fnal.gov</a>><br>
<span style="font-weight:bold">Date: </span>Thursday, May 8, 2014 3:34 PM<br>
<span style="font-weight:bold">To: </span>users <<a href="mailto:users@lists.opennebula.org">users@lists.opennebula.org</a>><br>
<span style="font-weight:bold">Subject: </span>[one-users] sunstone nil<br>
</div>
<div><br>
</div>
<div>
<div style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; color: rgb(0, 0, 0); font-size: 14px; font-family: Calibri, sans-serif; ">
<div>
<div>
<div>Hi,</div>
<div><br>
</div>
<div>We are testing ON4.6 here in Fermilab</div>
<div>and sunstone produces the following error right after we start sunstone<br>
as shown in C far below.</div>
<div><br>
</div>
<div>My guess is as follows:</div>
<div><br>
</div>
<div>The error message  A originates from another message B</div>
<div>
<div>A : NoMethodError - undefined method `call' for nil:NilClass:</div>
<div>B:  /usr/lib/one/sunstone/sunstone-server.rb:470:in `GET /:pool'</div>
</div>
<div><br>
</div>
<div>and B is found in   /usr/lib/one/sunstone/sunstone-server.rb</div>
<div>
<div>
<div>get '/:pool' do</div>
<div>    zone_client = nil</div>
<div><br>
</div>
<div>    if params[:zone_id]</div>
<div>        zone = OpenNebula::Zone.new_with_id(params[:zone_id].to_i,</div>
<div>                                            $cloud_auth.client(session[:user]))</div>
<div>        rc   = zone.info</div>
<div>        return [500, rc.message] if OpenNebula.is_error?(rc)</div>
<div>        zone_client = $cloud_auth.client(session[:user],</div>
<div>                                         zone['TEMPLATE/ENDPOINT'])</div>
<div>    end</div>
<div><br>
</div>
<div>    @SunstoneServer.get_pool(params[:pool],</div>
<div>                             session[:user_gid],</div>
<div>                             zone_client)</div>
<div>end</div>
</div>
</div>
<div><br>
</div>
<div>My guess is, zone_client is still nil in @SunstoneServer.get_pool</div>
<div>and the reason might be not properly setting up ZONE in our configuration.</div>
<div>I could not find what to do about ZONE in ON manual.</div>
<div><br>
</div>
<div>Please point us at the right direction regarding this error.</div>
<div>Thank you.</div>
<div>Hyunwoo Kim</div>
<div>FermiCloud</div>
<div><br>
</div>
<div>=====================================================</div>
<div><br>
</div>
<div>
<div>A : NoMethodError - undefined method `call' for nil:NilClass:</div>
<div>B:  /usr/lib/one/sunstone/sunstone-server.rb:470:in `GET /:pool'</div>
</div>
<div><br>
</div>
<div>C: The entire original error messages:</div>
<div>/var/log/one/sunstone.error</div>
<div>NoMethodError - undefined method `call' for nil:NilClass:</div>
<div> /usr/lib/one/ruby/opennebula/pool.rb:132:in `xmlrpc_info'</div>
<div> /usr/lib/one/ruby/opennebula/pool.rb:59:in `info'</div>
<div> /usr/lib/one/ruby/opennebula/zone_pool.rb:53:in `info'</div>
<div> /usr/lib/one/ruby/opennebula/pool.rb:183:in `get_hash'</div>
<div> /usr/lib/one/sunstone/models/SunstoneServer.rb:71:in `get_pool'</div>
<div> /usr/lib/one/sunstone/sunstone-server.rb:470:in `GET /:pool'</div>
<div> /usr/lib/ruby/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:863:in `call'</div>
<div> /usr/lib/ruby/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:863:in `route'</div>
<div> /usr/lib/ruby/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:521:in `instance_eval'</div>
<div> /usr/lib/ruby/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:521:in `route_eval'</div>
<div> /usr/lib/ruby/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:500:in `route!'</div>
<div> /usr/lib/ruby/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:497:in `catch'</div>
<div> /usr/lib/ruby/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:497:in `route!'</div>
<div> /usr/lib/ruby/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:476:in `each'</div>
<div> /usr/lib/ruby/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:476:in `route!'</div>
<div> /usr/lib/ruby/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:601:in `dispatch!'</div>
<div> /usr/lib/ruby/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:411:in `call!'</div>
<div> /usr/lib/ruby/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:566:in `instance_eval'</div>
<div> /usr/lib/ruby/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:566:in `invoke'</div>
<div> /usr/lib/ruby/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:566:in `catch'</div>
<div> /usr/lib/ruby/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:566:in `invoke'</div>
<div> /usr/lib/ruby/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:411:in `call!'</div>
<div> /usr/lib/ruby/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:399:in `call'</div>
<div> /usr/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/commonlogger.rb:18:in `call'</div>
<div> /usr/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/deflater.rb:13:in `call'</div>
<div> /usr/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/session/abstract/id.rb:63:in `context'</div>
<div> /usr/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/session/abstract/id.rb:58:in `call'</div>
<div> /usr/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/showexceptions.rb:24:in `call'</div>
<div> /usr/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/methodoverride.rb:24:in `call'</div>
<div> /usr/lib/ruby/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:979:in `call'</div>
<div> /usr/lib/ruby/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:1005:in `synchronize'</div>
<div> /usr/lib/ruby/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:979:in `call'</div>
<div> /usr/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/content_length.rb:13:in `call'</div>
<div> /usr/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/chunked.rb:15:in `call'</div>
<div> /usr/lib/ruby/gems/1.8/gems/thin-1.2.8/lib/thin/connection.rb:84:in `pre_process'</div>
<div> /usr/lib/ruby/gems/1.8/gems/thin-1.2.8/lib/thin/connection.rb:82:in `catch'</div>
<div> /usr/lib/ruby/gems/1.8/gems/thin-1.2.8/lib/thin/connection.rb:82:in `pre_process'</div>
<div> /usr/lib/ruby/gems/1.8/gems/thin-1.2.8/lib/thin/connection.rb:57:in `process'</div>
<div> /usr/lib/ruby/gems/1.8/gems/thin-1.2.8/lib/thin/connection.rb:42:in `receive_data'</div>
<div> /usr/lib/ruby/gems/1.8/gems/eventmachine-0.12.10/lib/eventmachine.rb:256:in `run_machine'</div>
<div> /usr/lib/ruby/gems/1.8/gems/eventmachine-0.12.10/lib/eventmachine.rb:256:in `run'</div>
<div> /usr/lib/ruby/gems/1.8/gems/thin-1.2.8/lib/thin/backends/base.rb:61:in `start'</div>
<div> /usr/lib/ruby/gems/1.8/gems/thin-1.2.8/lib/thin/server.rb:159:in `start'</div>
<div> /usr/lib/ruby/gems/1.8/gems/rack-1.1.0/lib/rack/handler/thin.rb:14:in `run'</div>
<div> /usr/lib/ruby/gems/1.8/gems/sinatra-1.0/lib/sinatra/base.rb:946:in `run!'</div>
<div> /usr/lib/one/sunstone/sunstone-server.rb:545</div>
<div><br>
</div>
</div>
<div><br>
</div>
<div><br>
</div>
<div> /usr/lib/one/sunstone/sunstone-server.rb</div>
<div>get '/:pool' do</div>
<div>    zone_client = nil</div>
<div><br>
</div>
<div>    if params[:zone_id]</div>
<div>        zone = OpenNebula::Zone.new_with_id(params[:zone_id].to_i,</div>
<div>                                            $cloud_auth.client(session[:user]))</div>
<div>        rc   = zone.info</div>
<div>        return [500, rc.message] if OpenNebula.is_error?(rc)</div>
<div>        zone_client = $cloud_auth.client(session[:user],</div>
<div>                                         zone['TEMPLATE/ENDPOINT'])</div>
<div>    end</div>
<div><br>
</div>
<div>    @SunstoneServer.get_pool(params[:pool],</div>
<div>                             session[:user_gid],</div>
<div>                             zone_client)</div>
<div>end</div>
</div>
<div><br>
</div>
</div>
</div>
</span>
</body>
</html>