[one-users] OCCI Interface - HTTP commands

João Soares joaosoares at ua.pt
Tue Mar 22 04:09:18 PDT 2011


Hi Daniel,

The output of the log file is the following:

NoMethodError - private method `split' called for nil:NilClass:
 /var/lib/gems/1.8/gems/rack-1.2.2/lib/rack/auth/abstract/request.rb:14:in
`parts'
 /var/lib/gems/1.8/gems/rack-1.2.2/lib/rack/auth/abstract/request.rb:22:in
`params'
 /var/lib/gems/1.8/gems/rack-1.2.2/lib/rack/auth/basic.rb:48:in
`credentials'
 /usr/lib/one/ruby/cloud/occi/OCCIServer.rb:66:in `get_client'
 /usr/lib/one/ruby/cloud/occi/OCCIServer.rb:92:in `get_computes'
 /usr/lib/one/ruby/cloud/occi/occi-server.rb:101:in `GET /compute'
 /var/lib/gems/1.8/gems/sinatra-1.2.0/lib/sinatra/base.rb:1125:in `call'
 /var/lib/gems/1.8/gems/sinatra-1.2.0/lib/sinatra/base.rb:1125:in `compile!'
 /var/lib/gems/1.8/gems/sinatra-1.2.0/lib/sinatra/base.rb:709:in
`instance_eval'
 /var/lib/gems/1.8/gems/sinatra-1.2.0/lib/sinatra/base.rb:709:in
`route_eval'
 /var/lib/gems/1.8/gems/sinatra-1.2.0/lib/sinatra/base.rb:693:in `route!'
 /var/lib/gems/1.8/gems/sinatra-1.2.0/lib/sinatra/base.rb:741:in
`process_route'
 /var/lib/gems/1.8/gems/sinatra-1.2.0/lib/sinatra/base.rb:738:in `catch'
 /var/lib/gems/1.8/gems/sinatra-1.2.0/lib/sinatra/base.rb:738:in
`process_route'
 /var/lib/gems/1.8/gems/sinatra-1.2.0/lib/sinatra/base.rb:692:in `route!'
 /var/lib/gems/1.8/gems/sinatra-1.2.0/lib/sinatra/base.rb:691:in `each'
 /var/lib/gems/1.8/gems/sinatra-1.2.0/lib/sinatra/base.rb:691:in `route!'
 /var/lib/gems/1.8/gems/sinatra-1.2.0/lib/sinatra/base.rb:826:in `dispatch!'
 /var/lib/gems/1.8/gems/sinatra-1.2.0/lib/sinatra/base.rb:619:in `call!'
 /var/lib/gems/1.8/gems/sinatra-1.2.0/lib/sinatra/base.rb:791:in
`instance_eval'
 /var/lib/gems/1.8/gems/sinatra-1.2.0/lib/sinatra/base.rb:791:in `invoke'
 /var/lib/gems/1.8/gems/sinatra-1.2.0/lib/sinatra/base.rb:791:in `catch'
 /var/lib/gems/1.8/gems/sinatra-1.2.0/lib/sinatra/base.rb:791:in `invoke'
 /var/lib/gems/1.8/gems/sinatra-1.2.0/lib/sinatra/base.rb:619:in `call!'
 /var/lib/gems/1.8/gems/sinatra-1.2.0/lib/sinatra/base.rb:604:in `call'
 /var/lib/gems/1.8/gems/sinatra-1.2.0/lib/sinatra/showexceptions.rb:21:in
`call'
 /var/lib/gems/1.8/gems/rack-1.2.2/lib/rack/methodoverride.rb:24:in `call'
 /var/lib/gems/1.8/gems/rack-1.2.2/lib/rack/commonlogger.rb:18:in `call'
 /var/lib/gems/1.8/gems/sinatra-1.2.0/lib/sinatra/base.rb:1237:in `call'
 /var/lib/gems/1.8/gems/sinatra-1.2.0/lib/sinatra/base.rb:1263:in
`synchronize'
 /var/lib/gems/1.8/gems/sinatra-1.2.0/lib/sinatra/base.rb:1237:in `call'
 /var/lib/gems/1.8/gems/rack-1.2.2/lib/rack/content_length.rb:13:in `call'
 /var/lib/gems/1.8/gems/rack-1.2.2/lib/rack/chunked.rb:15:in `call'
 /var/lib/gems/1.8/gems/thin-1.2.8/lib/thin/connection.rb:84:in
`pre_process'
 /var/lib/gems/1.8/gems/thin-1.2.8/lib/thin/connection.rb:82:in `catch'
 /var/lib/gems/1.8/gems/thin-1.2.8/lib/thin/connection.rb:82:in
`pre_process'
 /var/lib/gems/1.8/gems/thin-1.2.8/lib/thin/connection.rb:57:in `process'
 /var/lib/gems/1.8/gems/thin-1.2.8/lib/thin/connection.rb:42:in
`receive_data'
 /var/lib/gems/1.8/gems/eventmachine-0.12.10/lib/eventmachine.rb:256:in
`run_machine'
 /var/lib/gems/1.8/gems/eventmachine-0.12.10/lib/eventmachine.rb:256:in
`run'
 /var/lib/gems/1.8/gems/thin-1.2.8/lib/thin/backends/base.rb:61:in `start'
 /var/lib/gems/1.8/gems/thin-1.2.8/lib/thin/server.rb:159:in `start'
 /var/lib/gems/1.8/gems/rack-1.2.2/lib/rack/handler/thin.rb:14:in `run'
 /var/lib/gems/1.8/gems/sinatra-1.2.0/lib/sinatra/base.rb:1208:in `run!'
 /var/lib/gems/1.8/gems/sinatra-1.2.0/lib/sinatra/main.rb:25
 /usr/lib/one/ruby/cloud/occi/occi-server.rb:159
127.0.0.1 - - [22/Mar/2011 10:46:24] "GET /compute HTTP/1.1" 500 122391
0.1457

___________________________________________________________________________

Regarding my VM, this is the output...

<VM>
 <ID>
  129
 </ID>
 <UID>
  5
 </UID>
 <NAME>
  MyCompute
 </NAME>
 <LAST_POLL>
  1300790571
 </LAST_POLL>
 <STATE>
  3
 </STATE>
 <LCM_STATE>
  3
 </LCM_STATE>
 <STIME>
  1300717277
 </STIME>
 <ETIME>
  0
 </ETIME>
 <DEPLOY_ID>
  one-129
 </DEPLOY_ID>
 <MEMORY>
  65536
 </MEMORY>
 <CPU>
  1
 </CPU>
 <NET_TX>
  0
 </NET_TX>
 <NET_RX>
  7
 </NET_RX>
 <LAST_SEQ>
  0
 </LAST_SEQ>
 <TEMPLATE>
  <CONTEXT>
   <DATA>
    <![CDATA[DATA1]]>
   </DATA>
   <HOSTNAME>
    <![CDATA[MAINHOST]]>
   </HOSTNAME>
   <TARGET>
    <![CDATA[hdb]]>
   </TARGET>
  </CONTEXT>
  <CPU>
   <![CDATA[0.5]]>
  </CPU>
  <DISK>
   <CLONE>
    <![CDATA[YES]]>
   </CLONE>
   <DISK_ID>
    <![CDATA[0]]>
   </DISK_ID>
   <IMAGE>
    <![CDATA[FEDORA DESKTOP]]>
   </IMAGE>
   <IMAGE_ID>
    <![CDATA[2]]>
   </IMAGE_ID>
   <READONLY>
    <![CDATA[NO]]>
   </READONLY>
   <SAVE>
    <![CDATA[NO]]>
   </SAVE>
   <SOURCE>
 
<![CDATA[/var/lib/one//images/68a84d5700b0dfe79e90717a9de49a926f405a30]]>
   </SOURCE>
   <TARGET>
    <![CDATA[hda]]>
   </TARGET>
   <TYPE>
    <![CDATA[DISK]]>
   </TYPE>
  </DISK>
  <INSTANCE_TYPE>
   <![CDATA[small]]>
  </INSTANCE_TYPE>
  <MEMORY>
   <![CDATA[64]]>
  </MEMORY>
  <NAME>
   <![CDATA[MyCompute]]>
  </NAME>
  <NIC>
   <BRIDGE>
    <![CDATA[eth0]]>
   </BRIDGE>
   <IP>
    <![CDATA[192.168.1.12]]>
   </IP>
   <MAC>
    <![CDATA[02:00:c0:a8:01:0c]]>
   </MAC>
   <NETWORK>
    <![CDATA[MyServiceNetwork]]>
   </NETWORK>
   <NETWORK_ID>
    <![CDATA[5]]>
   </NETWORK_ID>
  </NIC>
  <OS>
   <INITRD>
    <![CDATA[/boot/initrd.img-2.6.24-28-xen]]>
   </INITRD>
   <KERNEL>
    <![CDATA[/boot/vmlinuz-2.6.24-28-xen]]>
   </KERNEL>
  </OS>
  <VMID>
   <![CDATA[129]]>
  </VMID>
 </TEMPLATE>
 <HISTORY>
  <SEQ>
   0
  </SEQ>
  <HOSTNAME>
   cluster01.dyndns-work.com
  </HOSTNAME>
  <HID>
   32
  </HID>
  <STIME>
   1300717278
  </STIME>
  <ETIME>
   0
  </ETIME>
  <PSTIME>
   1300717278
  </PSTIME>
  <PETIME>
   1300717280
  </PETIME>
  <RSTIME>
   1300717280
  </RSTIME>
  <RETIME>
   0
  </RETIME>
  <ESTIME>
   0
  </ESTIME>
  <EETIME>
   0
  </EETIME>
  <REASON>
   0
  </REASON>
 </HISTORY>
</VM>


_____________________________________________________________________

If I do "GET /compute" I get the same output as "GET /compute/".

Thanks,

João

-----Original Message-----
From: Daniel Molina [mailto:dmolina at opennebula.org] 
Sent: terça-feira, 22 de Março de 2011 10:17
To: João Soares
Cc: users at lists.opennebula.org
Subject: Re: [one-users] OCCI Interface - HTTP commands

Hi,

Comments inline,

2011/3/21 João Soares <joaosoares at ua.pt>:
> Hi,
>
>
>
> I am trying to use the OCCI interface, I am able to launch VMs through the
> “occi-compute” command, but I am having some issues when trying to use for
> example the GET request:
>
> I create a VM by using the occi-compute which returns me the ID 129. Then:
>
>
>
> telnet localhost 4567
>
>
>
> GET /compute/129 HTTP/1.1
>
>
>
> Trying ::1...
> Trying 127.0.0.1...
> Connected to localhost.
> Escape character is '^]'.
> GET /compute/129 HTTP/1.1
>
> HTTP/1.1 500 Internal Server Error
> Content-Type: text/html
> Content-Length: 122449
> Connection: keep-alive
> Server: thin 1.2.8 codename Black Keys
>
> <!DOCTYPE html>
> <html>
> <head>
>   <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
>   <title>NoMethodError at /compute/129</title>
>
>   <script type="text/javascript">
>   //<!--
>   function toggle(id) {
>     var pre  = document.getElementById("pre-" + id);
>     var post = document.getElementById("post-" + id);
>     var context = document.getElementById("context-" + id);
>
>     if (pre.style.display == 'block') {
>       pre.style.display = 'none';
>       post.style.display = 'none';
>       context.style.background = "none";
>     } else {
>       pre.style.display = 'block';
>       post.style.display = 'block';
>       context.style.background = "#fffed9";
>     }
>   }
>
>   function toggleBacktrace(){
>
> ................................................... (continues)


>
>            <td>rack.version</td>
>            <td class="code"><div>[1, 0]</div></td>
>          </tr>
>
>          <tr>
>            <td>sinatra.error</td>
>            <td class="code"><div>#<NoMethodError: private method
> `split' called for nil:NilClass></div></td>
>          </tr>
>
>       </table>
>       <div class="clear"></div>
>     </div> <!-- /RACK ENV -->
>
>     <p id="explanation">You're seeing this error because you have
> enabled the <code>show_exceptions</code> setting.</p>
>   </div> <!-- /WRAP -->
>   </body>
> </html>
>

Would you mind to send the $ONE_LOCATION/var/occi-server.log file and
the output of the following command, `onevm show 129 -x`? What
OpenNebula version are you using?

>
> On the other hand, if I try:
>
>
> GET /compute/ HTTP/1.1
>
> HTTP/1.1 404 Not Found
> X-Cascade: pass
> Content-Type: text/html;charset=utf-8
> Content-Length: 417
> Connection: keep-alive
> Server: thin 1.2.8 codename Black Keys
>
> <!DOCTYPE html>
> <html>
> <head>
>   <style type="text/css">
>   body { text-align:center;font-family:helvetica,arial;font-size:22px;
>     color:#888;margin:20px}
>   #c {margin:0 auto;width:500px;text-align:left}
>   </style>
> </head>
> <body>
>   <h2>Sinatra doesn't know this ditty.</h2>
>   <img src='/__sinatra__/404.png'>
>   <div id="c">
>     Try this:
>     <pre>get '/compute/' do
>   "Hello World"
> end</pre>
>   </div>
> </body>
> </html>
>
>

Try sending the following request "GET /compute" instead of "GET /compute/"?

>
> I am not fully aware how the interface works so I might be making a silly
> mistake
any help?
>
>
>
> Thanks in advanced,
>
>
>
> João
>
> _______________________________________________
> Users mailing list
> Users at lists.opennebula.org
> http://lists.opennebula.org/listinfo.cgi/users-opennebula.org
>
>

Regards

-- 
Daniel Molina, Cloud Technology Engineer/Researcher
Major Contributor
OpenNebula - The Open Source Toolkit for Cloud Computing
www.OpenNebula.org | dmolina at opennebula.org




More information about the Users mailing list