You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@deltacloud.apache.org by lu...@apache.org on 2010/07/09 01:18:02 UTC

svn commit: r962029 - /incubator/deltacloud/trunk/drivers/mock/lib/mock_driver.rb

Author: lutter
Date: Thu Jul  8 23:18:01 2010
New Revision: 962029

URL: http://svn.apache.org/viewvc?rev=962029&view=rev
Log:
Support filtering on collections via the opts hash.

Modified:
    incubator/deltacloud/trunk/drivers/mock/lib/mock_driver.rb

Modified: incubator/deltacloud/trunk/drivers/mock/lib/mock_driver.rb
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/drivers/mock/lib/mock_driver.rb?rev=962029&r1=962028&r2=962029&view=diff
==============================================================================
--- incubator/deltacloud/trunk/drivers/mock/lib/mock_driver.rb (original)
+++ incubator/deltacloud/trunk/drivers/mock/lib/mock_driver.rb Thu Jul  8 23:18:01 2010
@@ -46,10 +46,18 @@ class MockDriver < DeltaCloud::BaseDrive
     return FLAVORS if ( opts.nil? )
     results = FLAVORS
     if ( opts[:id] )
-      results = results.select{|f| opts[:id] == f[:id]}
+      if ( opts[:id].is_a?( Array ) )
+        results = results.select{|f| opts[:id].include?( f[:id] )}
+      else
+        results = results.select{|f| opts[:id] == f[:id]}
+      end
     end
     if ( opts[:architecture] )
-      results = results.select{|f| opts[:architecture] == f[:architecture]}
+      if ( opts[:architecture].is_a?( Array ) )
+        results = results.select{|f| opts[:architecture].include?( f[:architecture] )}
+      else
+        results = results.select{|f| opts[:architecture] == f[:architecture]}
+      end
     end
     results
   end
@@ -69,13 +77,11 @@ class MockDriver < DeltaCloud::BaseDrive
     if (opts)
       if ( opts[:id] )
         images = images.select{|e| e[:id] == opts[:id]}
-      elsif ( opts[:id] == :self )
-        images = images.select{|e| e[:owner_id] == credentials[:name] }
-      elsif ( opts[:owner] )
-        if ( opts[:owner] == 'self' )
+      elsif ( opts[:owner_id] )
+        if ( opts[:owner_id] == 'self' )
           images = images.select{|e| e[:owner_id] == credentials[:name] }
         else
-          images = images.select{|e| e[:owner_id] == opts[:owner] }
+          images = images.select{|e| e[:owner_id] == opts[:owner_id] }
         end
       elsif
         images = []
@@ -93,14 +99,23 @@ class MockDriver < DeltaCloud::BaseDrive
     instances = []
     Dir[ "#{STORAGE_ROOT}/instances/*.yml" ].each do |instance_file|
       instance = YAML.load( File.read( instance_file ) )
+      puts "opts ==> #{opts.inspect}"
       if ( instance[:owner_id] == credentials[:name] )
         instance[:id] = File.basename( instance_file, ".yml" )
-        instances << instance
+        if ( opts.nil? || ( opts[:id].nil? ) )
+          instances << instance
+        else 
+          if ( opts[:id].is_a?( Array ) )
+            if ( opts[:id].include?( instance[:id] )  )
+              puts "1D"
+              instances << instance
+            end
+          elsif ( opts[:id] == instance[:id] )
+            instances << instance
+          end
+        end
       end
     end
-    if ( opts )
-      instances = instances.select{|e| opts[:id] == e[:id] }
-    end
     instances
   end