You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltacloud.apache.org by ma...@apache.org on 2013/04/26 17:47:04 UTC
[07/14] git commit: Network API rev 3 - Collection helpers (passing
context to views - check for presence of resource)
Network API rev 3 - Collection helpers (passing context to views - check for presence of resource)
Project: http://git-wip-us.apache.org/repos/asf/deltacloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/deltacloud/commit/483be9a4
Tree: http://git-wip-us.apache.org/repos/asf/deltacloud/tree/483be9a4
Diff: http://git-wip-us.apache.org/repos/asf/deltacloud/diff/483be9a4
Branch: refs/heads/master
Commit: 483be9a49ea1d14371f292a17363cfdb1a7a7c29
Parents: 895a9c6
Author: marios <ma...@redhat.com>
Authored: Fri Apr 12 12:11:04 2013 +0300
Committer: marios <ma...@redhat.com>
Committed: Fri Apr 26 18:01:55 2013 +0300
----------------------------------------------------------------------
server/lib/deltacloud/helpers/deltacloud_helper.rb | 15 +++++++++------
server/lib/deltacloud/helpers/rabbit_helper.rb | 8 ++++----
2 files changed, 13 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/483be9a4/server/lib/deltacloud/helpers/deltacloud_helper.rb
----------------------------------------------------------------------
diff --git a/server/lib/deltacloud/helpers/deltacloud_helper.rb b/server/lib/deltacloud/helpers/deltacloud_helper.rb
index e069312..242effc 100644
--- a/server/lib/deltacloud/helpers/deltacloud_helper.rb
+++ b/server/lib/deltacloud/helpers/deltacloud_helper.rb
@@ -65,18 +65,19 @@ module Deltacloud::Helpers
http_method || Deltacloud::Rabbit::BaseCollection.http_method_for(action)
end
- def filter_all(model)
+ def filter_all(model, opts={})
begin
@benchmark = Benchmark.measure { @elements = driver.send(model.to_sym, credentials, params) }
rescue => e
@exception = e
end
+ locals = opts[:check] ? {:elements => @elements, opts[:check]=>driver.respond_to?(opts[:check])} : {:elements => @elements}
if @elements
headers['X-Backend-Runtime'] = @benchmark.real.to_s
instance_variable_set(:"@#{model}", @elements)
respond_to do |format|
- format.html { haml :"#{model}/index", :locals => { :elements => @elements } }
- format.xml { haml :"#{model}/index", :locals => { :elements => @elements } }
+ format.html { haml :"#{model}/index", :locals => locals}
+ format.xml { haml :"#{model}/index", :locals => locals}
format.json { JSON::dump({ model => @elements.map { |el| el.to_hash(self) }}) }
end
else
@@ -84,16 +85,18 @@ module Deltacloud::Helpers
end
end
- def show(model)
+ def show(model, opts={})
@benchmark = Benchmark.measure do
@element = driver.send(model, credentials, { :id => params[:id]} )
end
headers['X-Backend-Runtime'] = @benchmark.real.to_s
instance_variable_set("@#{model}", @element)
+ #checks for methods in opts:
+ locals = opts[:check] ? {model => @element, opts[:check]=>driver.respond_to?(opts[:check])} : {model => @element}
if @element
respond_to do |format|
- format.html { haml :"#{model.to_s.pluralize}/show", :locals=>{model=>@element}}
- format.xml { haml :"#{model.to_s.pluralize}/show" , :locals=>{model=>@element}}
+ format.html { haml :"#{model.to_s.pluralize}/show", :locals=>locals}
+ format.xml { haml :"#{model.to_s.pluralize}/show" , :locals=>locals}
format.json { JSON::dump(model => @element.to_hash(self)) }
end
else
http://git-wip-us.apache.org/repos/asf/deltacloud/blob/483be9a4/server/lib/deltacloud/helpers/rabbit_helper.rb
----------------------------------------------------------------------
diff --git a/server/lib/deltacloud/helpers/rabbit_helper.rb b/server/lib/deltacloud/helpers/rabbit_helper.rb
index cdd0ae1..3c4d43f 100644
--- a/server/lib/deltacloud/helpers/rabbit_helper.rb
+++ b/server/lib/deltacloud/helpers/rabbit_helper.rb
@@ -18,15 +18,15 @@ Sinatra::Rabbit::Collection.class_eval do
def self.standard_index_operation(opts={})
collection_name = @collection_name
- operation :index, :with_capability => opts[:capability] || collection_name do
- control { filter_all collection_name }
+ operation :index, :with_capability => opts.delete(:capability) || collection_name do
+ control { filter_all collection_name, opts }
end
end
def self.standard_show_operation(opts={})
collection_name = @collection_name
- operation :show, :with_capability => opts[:capability] || collection_name do
- control { show collection_name.to_s.singularize.intern }
+ operation :show, :with_capability => opts.delete(:capability) || collection_name do
+ control { show collection_name.to_s.singularize.intern, opts}
end
end