[one-users] Strange behavior of ONE + EC2 API when using port forwaring

Christian Baun cray at unix-ag.uni-kl.de
Mon Aug 16 02:47:03 PDT 2010


Hi Javier,

It works now. We simply changed inside econe.conf to 

PORT=8188

Now, it works with Hybridfox and boto. 

I don't know, what went wrong with our previous tests. 

Best Regards,
    Christian 

--
---------
M.Sc. Christian Baun                                               UIN: 9107054
Karlsruher Institut für Technologie                                baun at kit.edu
Steinbuch Centrum für Computing (SCC)                         Tel: 07247-828603
Hermann-von-Helmholtz-Platz 1                               Mobil: 0170-2817531
76344 Eggenstein-Leopoldshafen                             Privat: 0621-1815740

Neues Cloud Computing-Buch: C.Baun, M.Kunze, J.Nimis, S.Tai. ISBN:3-642-01593-X
Cloud Computing: Web-basierte dynamische IT-Services. Springer. Oktober 2009

Am Montag, 16. August 2010 schrieb Javier Fontan:
> Hello,
> 
> The problem is that every configuration value in the conf file is a
> string and the code breaks because you are providing a number in that
> variable, modify the line you have changed to:
> 
> @server_port="8188"
> 
> The proper way would be adding a port variable like SSL_SERVER but we
> don't have that right now.
> 
> Starting the server changing the PORT in configuration file should
> work, maybe you have some other daemon listening in that port, can you
> verify that?
> 
> Bye
> 
> On Fri, Aug 13, 2010 at 10:44 AM, Christian Baun <cray at unix-ag.uni-kl.de> wrote:
> > Hi Jaime,
> >
> > I erased the forwarding rules, changed the line in
> > /srv/cloud/one/lib/ruby/cloud/econe/EC2QueryServer.rb
> > and did a stop/start of econe-server.
> >
> > When I send a request for a list of instances now, the result is a huge ammount of output.
> >
> > ...
> > boto.exception.BotoServerError: BotoServerError: 500 Internal Server Error
> > <!DOCTYPE html>
> > <html>
> > <head>
> >  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
> >  <title>TypeError at /</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';
> >
> > ...
> > ### several hundred lines of output ###
> > ...
> >         <tr>
> >           <td>sinatra.error</td>
> >           <td class="code"><div>#<TypeError: can't convert Fixnum into String></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>
> >
> >
> > The econe-server.log says:
> >
> > ...
> >        /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.7/lib/thin/backends/base.rb:57:in `start'
> >        /var/lib/gems/1.8/gems/thin-1.2.7/lib/thin/server.rb:156:in `start'
> >        /usr/lib/ruby/1.8/rack/handler/thin.rb:14:in `run'
> >        /usr/lib/ruby/1.8/sinatra/base.rb:930:in `run!'
> >        /usr/lib/ruby/1.8/sinatra/main.rb:25
> >        /srv/cloud/one/lib/ruby/cloud/econe/econe-server.rb:110
> > 84.161.124.220 - - [13/Aug/2010 10:37:20] "GET /?AWSAccessKeyId=oneadmin&Action=DescribeInstances&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2010-08-13T08%3A37%3A01&Version=2010-06-15&Signature=Jp63548ALT6fTdJJTydhSoPaPU6Hj9X3xZZifGiEFyc%3D HTTP/1.1" 500 103926 0.0774
> >
> >
> > Is there anything else, I can try?
> >
> > Regads,
> >   Christian
> >
> >
> > Am Freitag, 13. August 2010 schrieb Jaime Melis:
> >> Hi Christian,
> >>
> >> the way authentication works is by creating a "canonical string" which
> >> includes the server port and matching it with your connection parameters.
> >> Therefore if the port of the client differs from the one of the server it
> >> will probably fail.
> >>
> >> Can you change line 77 of EC2QueryServer.rb:
> >> @server_port=@config[:port] => @server_port=8188
> >>
> >> Can you test that? If that works we could create a fix using environment
> >> variables.
> >>
> >> Regards,
> >> Jaime
> >>
> >>
> >>
> >> On Thu, Aug 12, 2010 at 4:25 PM, Christian Baun <cray at unix-ag.uni-kl.de>wrote:
> >>
> >> > Hi,
> >> >
> >> > I try using the EC2 API with boto[1], a Python interface to Amazon Web
> >> > Services.
> >> > The oned and econe server are up an running.
> >> >
> >> > When I try to access the econe server via Port 4567, it is working without
> >> > problems. I send a request for a list of instances and econe-server.log
> >> > says:
> >> >
> >> > 84.161.122.172 - - [12/Aug/2010 16:17:30] "GET
> >> > /?AWSAccessKeyId=oneadmin&Action=DescribeInstances&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2010-08-12T14%3A17%3A31&Version=2010-06-15&Signature=t9jOxhD3TYAmNCzDpuuFrsSDQ2BItvzDdJjNxGdoye8%3D
> >> > HTTP/1.1" 200 1335 0.0377
> >> >
> >> > It simply works.
> >> >
> >> > The problem: For several reasons I need access to ONE via the EC2 API over
> >> > port 8188.
> >> >
> >> > I did a port forwarding via:
> >> > iptables -I INPUT -p tcp --dport 8188 -j ACCEPT
> >> > iptables -I PREROUTING -t nat -i eth0 -p tcp --dport 8188 -j REDIRECT
> >> > --to-port 4567
> >> >
> >> > the econe server can now be reached via 8188:
> >> >
> >> > telnet 141.52.167.35 8188
> >> > Trying 141.52.167.35...
> >> > Connected to 141.52.167.35.
> >> > Escape character is '^]'.
> >> >
> >> > But when I send a request for a list of instances, the result is:
> >> >
> >> > boto.exception.EC2ResponseError: EC2ResponseError: 400 Bad Request
> >> > <Response><Errors><Error><Code>AuthFailure</Code><Message>User not
> >> > authorized</Message></Error></Errors><RequestID>0</RequestID></Response>
> >> >
> >> > and econe-server.log says:
> >> >
> >> > 84.161.122.172 - - [12/Aug/2010 16:20:24] "GET
> >> > /?AWSAccessKeyId=oneadmin&Action=DescribeInstances&SignatureMethod=HmacSHA256&SignatureVersion=2&Timestamp=2010-08-12T14%3A20%3A25&Version=2010-06-15&Signature=DRA%2BiKREW2MFyARp%2Bxk3JWKrFBFFnJldRISauZ%2Bz6cc%3D
> >> > HTTP/1.1" 400 139 0.0042
> >> >
> >> > Is this a known issue?
> >> >
> >> > The econe.conf has this values:
> >> > ONE_XMLRPC=http://localhost:2633/RPC2
> >> > SERVER=141.52.167.35
> >> > PORT=4567
> >> > VM_TYPE=[NAME=m1.small, TEMPLATE=m1.small.erb]
> >> > USER=...
> >> > PASSWORD=...
> >> > IMAGE_DIR=/srv/cloud/images
> >> >
> >> > When I change in econe.conf to Port 8188 and the server vaule to a FQDN the
> >> > econe server is not starting. These are the only vaules that allow me to
> >> > start the econe server.
> >> >
> >> > Any ideas?
> >> >
> >> > Thanks in advance for any help
> >> >
> >> >        Christian
> >> >
> >> > [1] http://code.google.com/p/boto/
> >> > _______________________________________________
> >> > Users mailing list
> >> > Users at lists.opennebula.org
> >> > http://lists.opennebula.org/listinfo.cgi/users-opennebula.org
> >> >
> >>
> >
> >
> > _______________________________________________
> > Users mailing list
> > Users at lists.opennebula.org
> > http://lists.opennebula.org/listinfo.cgi/users-opennebula.org
> >
> 
> 
> 




More information about the Users mailing list