You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@deltacloud.apache.org by mf...@redhat.com on 2012/05/28 10:52:05 UTC
[PATCH core 1/2] EC2 frontend minor fixed and improvements
From: Michal Fojtik <mf...@redhat.com>
Signed-off-by: Michal fojtik <mf...@redhat.com>
---
server/lib/ec2/query_parser.rb | 4 +++-
server/lib/ec2/server.rb | 12 +++++++++++-
server/lib/ec2/views/describe_images.haml | 2 +-
server/lib/ec2/views/describe_instance_set.haml | 7 ++++---
server/lib/ec2/views/error.haml | 4 ++++
5 files changed, 23 insertions(+), 6 deletions(-)
create mode 100644 server/lib/ec2/views/error.haml
diff --git a/server/lib/ec2/query_parser.rb b/server/lib/ec2/query_parser.rb
index 8d2abc9..8050119 100644
--- a/server/lib/ec2/query_parser.rb
+++ b/server/lib/ec2/query_parser.rb
@@ -100,10 +100,12 @@ module Deltacloud::EC2
class QueryParser
+ class InvalidAction < StandardError; end
+
def self.parse(params, request_id)
parser = new(request_id, params)
unless parser.valid_action?
- raise 'Invalid action (%s)' % parser.action
+ raise InvalidAction.new('Invalid action (%s)' % parser.action)
else
ActionHandler.new(parser)
end
diff --git a/server/lib/ec2/server.rb b/server/lib/ec2/server.rb
index d229c94..9b045e4 100644
--- a/server/lib/ec2/server.rb
+++ b/server/lib/ec2/server.rb
@@ -44,13 +44,23 @@ module Deltacloud::EC2
set :version, Deltacloud[:version]
set :root_url, Deltacloud[:root_url]
set :root, File.join(File.dirname(__FILE__), '..', '..')
+ set :views, File.join(File.dirname(__FILE__), 'views')
+
+ error Deltacloud::EC2::QueryParser::InvalidAction do
+ status 400
+ haml :error, :locals => { :code => 'InvalidAction', :message => 'The requested action is not valid for this web service' }
+ end
after do
headers 'Server' => 'Apache-Deltacloud-EC2/' + settings.version
end
get '/' do
- content_type :xml
+ headers 'Connection' => 'close'
+ unless params['Action']
+ redirect settings.root_url, 301
+ halt
+ end
ec2_action = QueryParser.parse(params, request_id)
ec2_action.perform!(credentials, driver)
ec2_action.to_xml(self)
diff --git a/server/lib/ec2/views/describe_images.haml b/server/lib/ec2/views/describe_images.haml
index a49a5ee..2dd5978 100644
--- a/server/lib/ec2/views/describe_images.haml
+++ b/server/lib/ec2/views/describe_images.haml
@@ -4,7 +4,7 @@
%imageId=item.id
%imageState=item.state.downcase
%imageOwnerId=item.owner_id
- %architecture item.architecture
+ %architecture=item.architecture
%imageType machine
%name=item.name
%description=item.description
diff --git a/server/lib/ec2/views/describe_instance_set.haml b/server/lib/ec2/views/describe_instance_set.haml
index b8c7c1c..7a6a7b8 100644
--- a/server/lib/ec2/views/describe_instance_set.haml
+++ b/server/lib/ec2/views/describe_instance_set.haml
@@ -4,13 +4,14 @@
%instanceId=item.id
%imageId=item.image_id
%instanceType=item.instance_profile.name
- %launchTime=item.launch_time
+ %launchTime=item.launch_time || Time.now.to_s
%ipAddress=item.public_addresses.first.address
%privateIpAddress=item.public_addresses.first.address
%dnsName=item.public_addresses.first.address
%privateDnsName=item.private_addresses.first.address
- %architecture=item.instance_profile.architecture
- %keyName=item.keyname
+ %architecture=item.instance_profile.architecture || 'i386'
+ - if item.keyname
+ %keyName=item.keyname
%instanceState
%code=instance_state_code(item.state.downcase)
%name=item.state.downcase
diff --git a/server/lib/ec2/views/error.haml b/server/lib/ec2/views/error.haml
new file mode 100644
index 0000000..9b07c73
--- /dev/null
+++ b/server/lib/ec2/views/error.haml
@@ -0,0 +1,4 @@
+%Response
+ %Errors
+ %Code=code
+ %Message=message
--
1.7.10.2
Re: [PATCH core 2/2] Core: Fixed displaying drivers using
deltacloudd --drivers
Posted by Michal Fojtik <mf...@redhat.com>.
On 05/28/12, marios@redhat.com wrote:
> ACK both
Thanks! Pushed.
>
> On 28/05/12 11:52, mfojtik@redhat.com wrote:
> > From: Michal Fojtik <mf...@redhat.com>
> >
> >
> > Signed-off-by: Michal fojtik <mf...@redhat.com>
> > ---
> > server/bin/deltacloudd | 4 ++--
> > server/lib/deltacloud/core_ext.rb | 8 ++++++++
> > 2 files changed, 10 insertions(+), 2 deletions(-)
> >
> > diff --git a/server/bin/deltacloudd b/server/bin/deltacloudd
> > index 8eb448d..3dbe967 100755
> > --- a/server/bin/deltacloudd
> > +++ b/server/bin/deltacloudd
> > @@ -128,9 +128,9 @@ end
> > if options[:drivers]
> > $:.unshift File.join($top_srcdir, 'lib')
> > server_dir = ENV['API_FRONTEND'] == 'cimi' ? 'cimi' : 'deltacloud'
> > - load File.join($top_srcdir, 'lib', server_dir, 'server.rb')
> > + load File.join($top_srcdir, 'lib', server_dir, 'api.rb')
> > puts "Available drivers:\n\n"
> > - puts "* " + driver_config.keys.map{ |d| d.to_s }.join("\n* ")
> > + puts Deltacloud.drivers.keys.join("\n")
> > puts
> > exit(0)
> > end
> > diff --git a/server/lib/deltacloud/core_ext.rb b/server/lib/deltacloud/core_ext.rb
> > index edaaa00..b448adb 100644
> > --- a/server/lib/deltacloud/core_ext.rb
> > +++ b/server/lib/deltacloud/core_ext.rb
> > @@ -14,6 +14,14 @@
> > # under the License.
> > #
> >
> > +unless Kernel.respond_to?(:require_relative)
> > + module Kernel
> > + def require_relative(path)
> > + require File.join(File.dirname(caller[0]), path.to_str)
> > + end
> > + end
> > +end
> > +
> > require_relative './core_ext/array'
> > require_relative './core_ext/hash'
> > require_relative './core_ext/integer'
>
--
Michal Fojtik
Sr. Software Engineer, Deltacloud API (http://deltacloud.org)
Re: [PATCH core 2/2] Core: Fixed displaying drivers using deltacloudd
--drivers
Posted by "marios@redhat.com" <ma...@redhat.com>.
ACK both
On 28/05/12 11:52, mfojtik@redhat.com wrote:
> From: Michal Fojtik <mf...@redhat.com>
>
>
> Signed-off-by: Michal fojtik <mf...@redhat.com>
> ---
> server/bin/deltacloudd | 4 ++--
> server/lib/deltacloud/core_ext.rb | 8 ++++++++
> 2 files changed, 10 insertions(+), 2 deletions(-)
>
> diff --git a/server/bin/deltacloudd b/server/bin/deltacloudd
> index 8eb448d..3dbe967 100755
> --- a/server/bin/deltacloudd
> +++ b/server/bin/deltacloudd
> @@ -128,9 +128,9 @@ end
> if options[:drivers]
> $:.unshift File.join($top_srcdir, 'lib')
> server_dir = ENV['API_FRONTEND'] == 'cimi' ? 'cimi' : 'deltacloud'
> - load File.join($top_srcdir, 'lib', server_dir, 'server.rb')
> + load File.join($top_srcdir, 'lib', server_dir, 'api.rb')
> puts "Available drivers:\n\n"
> - puts "* " + driver_config.keys.map{ |d| d.to_s }.join("\n* ")
> + puts Deltacloud.drivers.keys.join("\n")
> puts
> exit(0)
> end
> diff --git a/server/lib/deltacloud/core_ext.rb b/server/lib/deltacloud/core_ext.rb
> index edaaa00..b448adb 100644
> --- a/server/lib/deltacloud/core_ext.rb
> +++ b/server/lib/deltacloud/core_ext.rb
> @@ -14,6 +14,14 @@
> # under the License.
> #
>
> +unless Kernel.respond_to?(:require_relative)
> + module Kernel
> + def require_relative(path)
> + require File.join(File.dirname(caller[0]), path.to_str)
> + end
> + end
> +end
> +
> require_relative './core_ext/array'
> require_relative './core_ext/hash'
> require_relative './core_ext/integer'
[PATCH core 2/2] Core: Fixed displaying drivers using deltacloudd --drivers
Posted by mf...@redhat.com.
From: Michal Fojtik <mf...@redhat.com>
Signed-off-by: Michal fojtik <mf...@redhat.com>
---
server/bin/deltacloudd | 4 ++--
server/lib/deltacloud/core_ext.rb | 8 ++++++++
2 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/server/bin/deltacloudd b/server/bin/deltacloudd
index 8eb448d..3dbe967 100755
--- a/server/bin/deltacloudd
+++ b/server/bin/deltacloudd
@@ -128,9 +128,9 @@ end
if options[:drivers]
$:.unshift File.join($top_srcdir, 'lib')
server_dir = ENV['API_FRONTEND'] == 'cimi' ? 'cimi' : 'deltacloud'
- load File.join($top_srcdir, 'lib', server_dir, 'server.rb')
+ load File.join($top_srcdir, 'lib', server_dir, 'api.rb')
puts "Available drivers:\n\n"
- puts "* " + driver_config.keys.map{ |d| d.to_s }.join("\n* ")
+ puts Deltacloud.drivers.keys.join("\n")
puts
exit(0)
end
diff --git a/server/lib/deltacloud/core_ext.rb b/server/lib/deltacloud/core_ext.rb
index edaaa00..b448adb 100644
--- a/server/lib/deltacloud/core_ext.rb
+++ b/server/lib/deltacloud/core_ext.rb
@@ -14,6 +14,14 @@
# under the License.
#
+unless Kernel.respond_to?(:require_relative)
+ module Kernel
+ def require_relative(path)
+ require File.join(File.dirname(caller[0]), path.to_str)
+ end
+ end
+end
+
require_relative './core_ext/array'
require_relative './core_ext/hash'
require_relative './core_ext/integer'
--
1.7.10.2