You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltacloud.apache.org by mf...@apache.org on 2012/05/22 22:19:37 UTC

[27/50] [abbrv] git commit: Core: Fixed advertising of collection features other than instances

Core: Fixed advertising of collection features other than instances


Project: http://git-wip-us.apache.org/repos/asf/deltacloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/deltacloud/commit/2c5e1930
Tree: http://git-wip-us.apache.org/repos/asf/deltacloud/tree/2c5e1930
Diff: http://git-wip-us.apache.org/repos/asf/deltacloud/diff/2c5e1930

Branch: refs/heads/master
Commit: 2c5e1930e7a7b5a4dafbd7f741d2dbfb700a3917
Parents: cd83a41
Author: Michal Fojtik <mf...@redhat.com>
Authored: Thu May 17 13:55:22 2012 +0200
Committer: Michal fojtik <mf...@redhat.com>
Committed: Tue May 22 22:17:37 2012 +0200

----------------------------------------------------------------------
 server/lib/deltacloud/collections/buckets.rb    |    9 ++---
 server/lib/deltacloud/collections/images.rb     |    3 ++
 server/lib/deltacloud/collections/instances.rb  |    2 +-
 server/lib/deltacloud/drivers/base_driver.rb    |    7 ++--
 server/lib/deltacloud/drivers/ec2/ec2_driver.rb |    4 +-
 server/lib/deltacloud/drivers/features.rb       |   31 +++++++++++++++++-
 6 files changed, 44 insertions(+), 12 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/deltacloud/blob/2c5e1930/server/lib/deltacloud/collections/buckets.rb
----------------------------------------------------------------------
diff --git a/server/lib/deltacloud/collections/buckets.rb b/server/lib/deltacloud/collections/buckets.rb
index 3a5591d..16f3f8f 100644
--- a/server/lib/deltacloud/collections/buckets.rb
+++ b/server/lib/deltacloud/collections/buckets.rb
@@ -15,14 +15,13 @@
 
 module Deltacloud::Collections
   class Buckets < Base
+
+    include Deltacloud::Features
+
     check_capability :for => lambda { |m| driver.respond_to? m }
     check_features :for => lambda { |c, f| driver.class.has_feature?(c, f) }
 
-    get route_for('/buckets/new') do
-      respond_to do |format|
-        format.html { haml :"buckets/new" }
-      end
-    end
+    new_route_for :buckets
 
     get route_for('/buckets/:bucket/%s' % NEW_BLOB_FORM_ID) do
       @bucket_id = params[:bucket]

http://git-wip-us.apache.org/repos/asf/deltacloud/blob/2c5e1930/server/lib/deltacloud/collections/images.rb
----------------------------------------------------------------------
diff --git a/server/lib/deltacloud/collections/images.rb b/server/lib/deltacloud/collections/images.rb
index c8b3e08..0edd7c0 100644
--- a/server/lib/deltacloud/collections/images.rb
+++ b/server/lib/deltacloud/collections/images.rb
@@ -15,6 +15,9 @@
 
 module Deltacloud::Collections
   class Images < Base
+
+    include Deltacloud::Features
+
     check_capability :for => lambda { |m| driver.respond_to? m }
     check_features :for => lambda { |c, f| driver.class.has_feature?(c, f) }
 

http://git-wip-us.apache.org/repos/asf/deltacloud/blob/2c5e1930/server/lib/deltacloud/collections/instances.rb
----------------------------------------------------------------------
diff --git a/server/lib/deltacloud/collections/instances.rb b/server/lib/deltacloud/collections/instances.rb
index 0da94f2..bba2ef9 100644
--- a/server/lib/deltacloud/collections/instances.rb
+++ b/server/lib/deltacloud/collections/instances.rb
@@ -16,7 +16,7 @@
 module Deltacloud::Collections
   class Instances < Base
 
-    include Deltacloud::InstanceFeatures
+    include Deltacloud::Features
 
     check_capability :for => lambda { |m| driver.respond_to? m }
     check_features :for => lambda { |c, f| driver.class.has_feature?(c, f) }

http://git-wip-us.apache.org/repos/asf/deltacloud/blob/2c5e1930/server/lib/deltacloud/drivers/base_driver.rb
----------------------------------------------------------------------
diff --git a/server/lib/deltacloud/drivers/base_driver.rb b/server/lib/deltacloud/drivers/base_driver.rb
index 9913c27..a360807 100644
--- a/server/lib/deltacloud/drivers/base_driver.rb
+++ b/server/lib/deltacloud/drivers/base_driver.rb
@@ -30,7 +30,7 @@ module Deltacloud
     end
 
     def self.features
-      @features ||= []
+      @features ||= {}
     end
 
     def self.features_for(entity)
@@ -45,7 +45,8 @@ module Deltacloud
       constraints[collection] ||= {}
       constraints[collection][feature_name] ||= {}
       constraints[collection][feature_name].merge!(yield) if block_given?
-      features << { collection => feature_name }
+      features[collection] ||= []
+      features[collection] << feature_name
     end
 
     def self.constraints(opts={})
@@ -57,7 +58,7 @@ module Deltacloud
     end
 
     def self.has_feature?(collection, feature_name)
-      features.any? { |f| (f.values.first == feature_name) && (f.keys.first == collection) }
+      features.has_key?(collection) and features[collection].include?(feature_name)
     end
 
     def name

http://git-wip-us.apache.org/repos/asf/deltacloud/blob/2c5e1930/server/lib/deltacloud/drivers/ec2/ec2_driver.rb
----------------------------------------------------------------------
diff --git a/server/lib/deltacloud/drivers/ec2/ec2_driver.rb b/server/lib/deltacloud/drivers/ec2/ec2_driver.rb
index f7559a3..b55132e 100644
--- a/server/lib/deltacloud/drivers/ec2/ec2_driver.rb
+++ b/server/lib/deltacloud/drivers/ec2/ec2_driver.rb
@@ -36,8 +36,8 @@ module Deltacloud
         feature :instances, :firewalls
         feature :instances, :instance_count
         feature :images, :owner_id
-        feature :images, :user_name
-        feature :images, :user_description
+        feature :images, :image_name
+        feature :images, :image_description
         feature :buckets, :bucket_location
         feature :instances, :attach_snapshot
 

http://git-wip-us.apache.org/repos/asf/deltacloud/blob/2c5e1930/server/lib/deltacloud/drivers/features.rb
----------------------------------------------------------------------
diff --git a/server/lib/deltacloud/drivers/features.rb b/server/lib/deltacloud/drivers/features.rb
index 01d8656..c772a42 100644
--- a/server/lib/deltacloud/drivers/features.rb
+++ b/server/lib/deltacloud/drivers/features.rb
@@ -14,7 +14,8 @@
 # under the License.
 
 module Deltacloud
-  module InstanceFeatures
+
+  module Features
 
     def self.included(k)
       current_features = features
@@ -29,6 +30,34 @@ module Deltacloud
 
     features do
 
+      feature :owner_id, :for => :images do
+        description "Filter images using owner id"
+        operation :index do
+          param :owner_id,  :string,  :optional,  [],  "Owner ID"
+        end
+      end
+
+      feature :image_name, :for => :images do
+        description "Allow specifying user name for created image"
+        operation :create do
+          param :name,  :string,  :optional,  [],  "Image name"
+        end
+      end
+
+      feature :image_description, :for => :images do
+        description "Allow specifying user description for created image"
+        operation :create do
+          param :description, :string,  :optional,  [],  "Image description"
+        end
+      end
+
+      feature :bucket_location, :for => :buckets do
+        description "Take extra location parameter for Bucket creation (e.g. S3, 'eu' or 'us-west-1')"
+        operation :create do
+          param :location, :string, :optional
+        end
+      end
+
       feature :user_name, :for => :instances do
         description "Allow to set user-defined name for the instance"
         operation :create do