[one-users] Strange behavior of ONE + EC2 API when using port forwaring
Christian Baun
cray at unix-ag.uni-kl.de
Fri Aug 13 01:44:11 PDT 2010
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
> >
>
More information about the Users
mailing list