[one-users] EC2 urls

Daniel Molina dmolina at opennebula.org
Fri Nov 4 10:28:33 PDT 2011


Hi Robert,

On 28 October 2011 17:05, Robert Parrott <parrott at seas.harvard.edu> wrote:
> Hi Folks,
>
> I have a question about EC2 url formats with the econe-server.
>
> I'd like to map queries to the econe service from apache to
> localhost:4567, using a URL of the form
>
>  https://my-opennebula-host/ec2/  --> http://localhost:4567/
>
> This way the endpoints for the services would be on one port (443).
>
> But I can't seem to make any headway with that. Is this possible using
> econe-server?

Some changes are needed in the econe code in order to support this
kind of URLs. I will open a ticket for this feature.

I have tested the following configuration and it works for me.

 * Apache configuration:
-------------------------------------------
<Location /ec2/>
ProxyPass          http://localhost:4567/
ProxyPassReverse   http://localhost:4567/
</Location>

 * econe configuration:
-------------------------------------------
# Host and port where econe server will run
:server: localhost
:port: 4567

# SSL proxy that serves the API (set if is being used)
:ssl_server: my-opennebula-host

 * Code changes (to add path support, in this case the path is
hardcoded "/ec2/":
-------------------------------------------
diff --git a/src/cloud/common/CloudAuth/EC2CloudAuth.rb
b/src/cloud/common/CloudAuth/EC2CloudAuth.rb
index e60f653..9c07f1a 100644
--- a/src/cloud/common/CloudAuth/EC2CloudAuth.rb
+++ b/src/cloud/common/CloudAuth/EC2CloudAuth.rb
@@ -68,7 +68,8 @@ module EC2CloudAuth
        canonical_str = AWS.canonical_string(
                                params,
                                server_str,
-                                env['REQUEST_METHOD'])
+                                env['REQUEST_METHOD'],
+                                '/ec2/')

diff --git a/src/cloud/ec2/lib/EC2QueryClient.rb
b/src/cloud/ec2/lib/EC2QueryClient.rb
index f39e525..3b52900 100644
--- a/src/cloud/ec2/lib/EC2QueryClient.rb
+++ b/src/cloud/ec2/lib/EC2QueryClient.rb
@@ -76,7 +76,8 @@ module EC2QueryClient
                :secret_access_key => @access_key_secret,
                :server            => @uri.host,
                :port              => @uri.port,
-                :use_ssl           => @uri.scheme == 'https')
+                :use_ssl           => @uri.scheme == 'https',
+                :path              => @uri.path)
        end

 * Request:
-------------------------------------------
$ econe-describe-images -K user -S sha1_password -U
https://my-opennebula-host/ec2/


Tested using OpenNebula git master branch and amazon-ec2 (0.9.17) gem

Hope this helps

>
> Thanks,
> Rob
>
>
> --
> Robert E. Parrott, Ph.D. (Phys. '06)
> Director, Academic Computing
> Harvard University Sch. of Eng. and App. Sci.
> Maxwell-Dworkin  211,
> 33 Oxford St.
> Cambridge, MA 02138
> (617)-496-1520
> _______________________________________________
> Users mailing list
> Users at lists.opennebula.org
> http://lists.opennebula.org/listinfo.cgi/users-opennebula.org
>



-- 
Daniel Molina
Project Engineer
OpenNebula - The Open Source Toolkit for Data Center Virtualization
www.OpenNebula.org | dmolina at opennebula.org | @OpenNebula


More information about the Users mailing list