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 2010/09/30 16:39:37 UTC

svn commit: r1003081 - in /incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock: ./ data/buckets/ data/buckets/blobs/

Author: marios
Date: Thu Sep 30 14:39:37 2010
New Revision: 1003081

URL: http://svn.apache.org/viewvc?rev=1003081&view=rev
Log:
updates mock driver with basic blobstore functions (get+post+delete buckets, get blobs). Also some yaml for mocking buckets/blobs.

Added:
    incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/data/buckets/
    incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/data/buckets/blobs/
    incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/data/buckets/blobs/blob1.yml
    incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/data/buckets/blobs/blob2.yml
    incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/data/buckets/blobs/blob3.yml
    incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/data/buckets/blobs/blob4.yml
    incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/data/buckets/blobs/blob5.yml
    incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/data/buckets/bucket1.yml
    incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/data/buckets/bucket2.yml
Modified:
    incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/mock_driver.rb

Added: incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/data/buckets/blobs/blob1.yml
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/data/buckets/blobs/blob1.yml?rev=1003081&view=auto
==============================================================================
--- incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/data/buckets/blobs/blob1.yml (added)
+++ incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/data/buckets/blobs/blob1.yml Thu Sep 30 14:39:37 2010
@@ -0,0 +1,5 @@
+:bucket: bucket1
+:content_length: 12627
+:content_type: text/plain
+:last_modified: 2010-09-23 16:44:54 +0100
+:content: "content of blob 1"
\ No newline at end of file

Added: incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/data/buckets/blobs/blob2.yml
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/data/buckets/blobs/blob2.yml?rev=1003081&view=auto
==============================================================================
--- incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/data/buckets/blobs/blob2.yml (added)
+++ incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/data/buckets/blobs/blob2.yml Thu Sep 30 14:39:37 2010
@@ -0,0 +1,5 @@
+:bucket: bucket1
+:content_length: 4420
+:content_type: text/html
+:last_modified: 2010-09-23 16:55:05 +0100
+:content: "content of blob 2"
\ No newline at end of file

Added: incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/data/buckets/blobs/blob3.yml
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/data/buckets/blobs/blob3.yml?rev=1003081&view=auto
==============================================================================
--- incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/data/buckets/blobs/blob3.yml (added)
+++ incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/data/buckets/blobs/blob3.yml Thu Sep 30 14:39:37 2010
@@ -0,0 +1,5 @@
+:bucket: bucket1
+:content_length: 98732
+:content_type: text/plain
+:last_modified: 2010-08-14 02:14:31 +0100
+:content: "content of blob 3"
\ No newline at end of file

Added: incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/data/buckets/blobs/blob4.yml
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/data/buckets/blobs/blob4.yml?rev=1003081&view=auto
==============================================================================
--- incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/data/buckets/blobs/blob4.yml (added)
+++ incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/data/buckets/blobs/blob4.yml Thu Sep 30 14:39:37 2010
@@ -0,0 +1,5 @@
+:bucket: bucket2
+:content_length: 983232
+:content_type: application/octet-stream
+:last_modified: 2010-09-21 06:17:24 +0100
+:content: "content of blob 4"
\ No newline at end of file

Added: incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/data/buckets/blobs/blob5.yml
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/data/buckets/blobs/blob5.yml?rev=1003081&view=auto
==============================================================================
--- incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/data/buckets/blobs/blob5.yml (added)
+++ incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/data/buckets/blobs/blob5.yml Thu Sep 30 14:39:37 2010
@@ -0,0 +1,5 @@
+:bucket: bucket2
+:content_length: 651922
+:content_type: application/pdf
+:last_modified: 2009-07-21 11:12:13 +0100
+:content: "content of blob 5"
\ No newline at end of file

Added: incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/data/buckets/bucket1.yml
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/data/buckets/bucket1.yml?rev=1003081&view=auto
==============================================================================
--- incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/data/buckets/bucket1.yml (added)
+++ incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/data/buckets/bucket1.yml Thu Sep 30 14:39:37 2010
@@ -0,0 +1,2 @@
+:blob_list: [blob1, blob2, blob3]
+:size: 3

Added: incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/data/buckets/bucket2.yml
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/data/buckets/bucket2.yml?rev=1003081&view=auto
==============================================================================
--- incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/data/buckets/bucket2.yml (added)
+++ incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/data/buckets/bucket2.yml Thu Sep 30 14:39:37 2010
@@ -0,0 +1,2 @@
+:blob_list: [blob4, blob5]
+:size: 2

Modified: incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/mock_driver.rb
URL: http://svn.apache.org/viewvc/incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/mock_driver.rb?rev=1003081&r1=1003080&r2=1003081&view=diff
==============================================================================
--- incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/mock_driver.rb (original)
+++ incubator/deltacloud/trunk/server/lib/deltacloud/drivers/mock/mock_driver.rb Thu Sep 30 14:39:37 2010
@@ -25,6 +25,10 @@ module Deltacloud
     module Mock
 class MockDriver < Deltacloud::BaseDriver
 
+  def supported_collections
+    DEFAULT_COLLECTIONS + [ :buckets ]
+  end
+
   ( REALMS = [
     Realm.new({
       :id=>'us',
@@ -104,7 +108,6 @@ class MockDriver < Deltacloud::BaseDrive
   #
   # Images
   #
-
   def images(credentials, opts=nil )
     check_credentials( credentials )
     images = []
@@ -251,6 +254,79 @@ class MockDriver < Deltacloud::BaseDrive
     snapshots
   end
 
+#--
+# Buckets
+#--
+  def buckets(credentials, opts=nil)
+    check_credentials(credentials)
+    buckets=[]
+     Dir[ "#{@storage_root}/buckets/*.yml" ].each do |bucket_file|
+      bucket = YAML.load( File.read( bucket_file ) )
+      bucket[:id] = File.basename( bucket_file, ".yml" )
+      bucket[:name] = bucket[:id]
+      buckets << Bucket.new( bucket )
+    end
+    buckets = filter_on( buckets, :id, opts )
+    buckets
+  end
+
+#--
+# Create bucket
+#--
+  def create_bucket(credentials, name, opts=nil)
+    check_credentials(credentials)
+    bucket = {
+      :name=>name,
+      :size=>'0',
+      :blob_list=>[]
+    }
+    File.open( "#{@storage_root}/buckets/#{name}.yml", 'w' ) {|b| YAML.dump( bucket, b )}
+    Bucket.new(bucket)
+  end
+
+#--
+# Delete bucket
+#--
+  def delete_bucket(credentials, name, opts=nil)
+    bucket = bucket(credentials, {:id => name})
+    unless (bucket.size == "0")
+     raise Deltacloud::BackendError.new(403, self.class.to_s, "bucket-not-empty", "delete operation not valid for non-empty bucket")
+    end
+    safely do
+      File.delete("#{@storage_root}/buckets/#{name}.yml")
+    end
+  end
+
+#--
+# Blobs
+#--
+  def blobs(credentials, opts = nil)
+    check_credentials(credentials)
+    blobs=[]
+    Dir[ "#{@storage_root}/buckets/blobs/*.yml" ].each do |blob_file|
+      blob = YAML.load( File.read( blob_file ) )
+      blob[:id] = File.basename( blob_file, ".yml" )
+      blob[:name] = blob[:id]
+      blobs << Blob.new( blob )
+    end
+    blobs = filter_on( blobs, :id, opts )
+    blobs
+  end
+
+#--
+# Blob content
+#--
+  def blob_data(credentials, bucket_id, blob_id, opts = nil)
+    check_credentials(credentials)
+    blob=nil
+    Dir[ "#{@storage_root}/buckets/blobs/*.yml" ].each do |blob_file|
+      if File.basename(blob_file, ".yml") == blob_id
+        blob = YAML.load(File.read(blob_file))
+        blob[:content].each {|part| yield part}
+      end
+    end
+  end
+
   def valid_credentials?(credentials)
     begin
       check_credentials(credentials)