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)