You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@deltacloud.apache.org by ma...@redhat.com on 2010/12/02 18:08:55 UTC
[PATCH] Adds create_blob and delete_blob for the Microsoft Azure driver
From: marios <ma...@redhat.com>
---
.../lib/deltacloud/drivers/azure/azure_driver.rb | 33 +++++++++++++++++++-
1 files changed, 32 insertions(+), 1 deletions(-)
diff --git a/server/lib/deltacloud/drivers/azure/azure_driver.rb b/server/lib/deltacloud/drivers/azure/azure_driver.rb
index c197214..9342823 100644
--- a/server/lib/deltacloud/drivers/azure/azure_driver.rb
+++ b/server/lib/deltacloud/drivers/azure/azure_driver.rb
@@ -17,8 +17,9 @@
# under the License.
#Windows Azure (WAZ) gem at http://github.com/johnnyhalife/waz-storage
-require 'waz-blobs'
require 'deltacloud/base_driver'
+require 'waz-blobs'
+
module Deltacloud
module Drivers
module Azure
@@ -46,6 +47,9 @@ class AzureDriver < Deltacloud::BaseDriver
# Create bucket
#--
def create_bucket(credentials, name, opts)
+ #for whatever reason, bucket names MUST be lowercase...
+ #http://msdn.microsoft.com/en-us/library/dd135715.aspx
+ name = name.downcase
bucket = nil
azure_connect(credentials)
safely do
@@ -87,6 +91,33 @@ class AzureDriver < Deltacloud::BaseDriver
yield WAZ::Blobs::Container.find(bucket_id)[blob_id].value
end
+#--
+# Create Blob
+#--
+ def create_blob(credentials, bucket_id, blob_id, blob_data, opts=nil)
+ azure_connect(credentials)
+ #get a handle to the bucket in order to put there
+ the_bucket = WAZ::Blobs::Container.find(bucket_id)
+ the_bucket.store(blob_id, blob_data[:tempfile], blob_data[:type])
+ Blob.new( { :id => blob_id,
+ :bucket => bucket_id,
+ :content_lengh => blob_data[:tempfile].length,
+ :content_type => blob_data[:type],
+ :last_modified => ''
+ } )
+ end
+
+#--
+# Delete Blob
+#--
+ def delete_blob(credentials, bucket_id, blob_id, opts=nil)
+ azure_connect(credentials)
+ #get a handle to bucket and blob, and destroy!
+ the_bucket = WAZ::Blobs::Container.find(bucket_id)
+ the_blob = the_bucket[blob_id]
+ the_blob.destroy!
+ end
+
private
def azure_connect(credentials)
--
1.7.2.3
Re: [PATCH] Adds create_blob and delete_blob for the Microsoft Azure
driver
Posted by "marios@redhat.com" <ma...@redhat.com>.
Ok thanks Michal, made the edit and pushed
On 03/12/10 13:40, Michal Fojtik wrote:
> On 02/12/10 19:08 +0200, marios@redhat.com wrote:
>
> Hi,
>
> I'm not going to test this with live Azure (don't have an Account ;)
> just 1 inline code comment:
>
> Otherwise code looks sane to me, ACK.
>
> -- Michal
>
>> From: marios <ma...@redhat.com>
>>
>> ---
>> .../lib/deltacloud/drivers/azure/azure_driver.rb | 33
>> +++++++++++++++++++-
>> 1 files changed, 32 insertions(+), 1 deletions(-)
>>
>> diff --git a/server/lib/deltacloud/drivers/azure/azure_driver.rb
>> b/server/lib/deltacloud/drivers/azure/azure_driver.rb
>> index c197214..9342823 100644
>> --- a/server/lib/deltacloud/drivers/azure/azure_driver.rb
>> +++ b/server/lib/deltacloud/drivers/azure/azure_driver.rb
>> @@ -17,8 +17,9 @@
>> # under the License.
>>
>> #Windows Azure (WAZ) gem at http://github.com/johnnyhalife/waz-storage
>> -require 'waz-blobs'
>> require 'deltacloud/base_driver'
>> +require 'waz-blobs'
>> +
>> module Deltacloud
>> module Drivers
>> module Azure
>> @@ -46,6 +47,9 @@ class AzureDriver < Deltacloud::BaseDriver
>> # Create bucket
>> #--
>> def create_bucket(credentials, name, opts)
>> + #for whatever reason, bucket names MUST be lowercase...
>> + #http://msdn.microsoft.com/en-us/library/dd135715.aspx
>> + name = name.downcase
>
> You can use name.downcase! here.
>
>> bucket = nil
>> azure_connect(credentials)
>> safely do
>> @@ -87,6 +91,33 @@ class AzureDriver < Deltacloud::BaseDriver
>> yield WAZ::Blobs::Container.find(bucket_id)[blob_id].value
>> end
>>
>> +#--
>> +# Create Blob
>> +#--
>> + def create_blob(credentials, bucket_id, blob_id, blob_data, opts=nil)
>> + azure_connect(credentials)
>> + #get a handle to the bucket in order to put there
>> + the_bucket = WAZ::Blobs::Container.find(bucket_id)
>> + the_bucket.store(blob_id, blob_data[:tempfile], blob_data[:type])
>> + Blob.new( { :id => blob_id,
>> + :bucket => bucket_id,
>> + :content_lengh => blob_data[:tempfile].length,
>> + :content_type => blob_data[:type],
>> + :last_modified => ''
>> + } )
>> + end
>> +
>> +#--
>> +# Delete Blob
>> +#--
>> + def delete_blob(credentials, bucket_id, blob_id, opts=nil)
>> + azure_connect(credentials)
>> + #get a handle to bucket and blob, and destroy!
>> + the_bucket = WAZ::Blobs::Container.find(bucket_id)
>> + the_blob = the_bucket[blob_id]
>> + the_blob.destroy!
>> + end
>> +
>> private
>>
>> def azure_connect(credentials)
>> --
>> 1.7.2.3
>>
>
Re: [PATCH] Adds create_blob and delete_blob for the Microsoft
Azure driver
Posted by Michal Fojtik <mf...@redhat.com>.
On 02/12/10 19:08 +0200, marios@redhat.com wrote:
Hi,
I'm not going to test this with live Azure (don't have an Account ;)
just 1 inline code comment:
Otherwise code looks sane to me, ACK.
-- Michal
>From: marios <ma...@redhat.com>
>
>---
> .../lib/deltacloud/drivers/azure/azure_driver.rb | 33 +++++++++++++++++++-
> 1 files changed, 32 insertions(+), 1 deletions(-)
>
>diff --git a/server/lib/deltacloud/drivers/azure/azure_driver.rb b/server/lib/deltacloud/drivers/azure/azure_driver.rb
>index c197214..9342823 100644
>--- a/server/lib/deltacloud/drivers/azure/azure_driver.rb
>+++ b/server/lib/deltacloud/drivers/azure/azure_driver.rb
>@@ -17,8 +17,9 @@
> # under the License.
>
> #Windows Azure (WAZ) gem at http://github.com/johnnyhalife/waz-storage
>-require 'waz-blobs'
> require 'deltacloud/base_driver'
>+require 'waz-blobs'
>+
> module Deltacloud
> module Drivers
> module Azure
>@@ -46,6 +47,9 @@ class AzureDriver < Deltacloud::BaseDriver
> # Create bucket
> #--
> def create_bucket(credentials, name, opts)
>+ #for whatever reason, bucket names MUST be lowercase...
>+ #http://msdn.microsoft.com/en-us/library/dd135715.aspx
>+ name = name.downcase
You can use name.downcase! here.
> bucket = nil
> azure_connect(credentials)
> safely do
>@@ -87,6 +91,33 @@ class AzureDriver < Deltacloud::BaseDriver
> yield WAZ::Blobs::Container.find(bucket_id)[blob_id].value
> end
>
>+#--
>+# Create Blob
>+#--
>+ def create_blob(credentials, bucket_id, blob_id, blob_data, opts=nil)
>+ azure_connect(credentials)
>+ #get a handle to the bucket in order to put there
>+ the_bucket = WAZ::Blobs::Container.find(bucket_id)
>+ the_bucket.store(blob_id, blob_data[:tempfile], blob_data[:type])
>+ Blob.new( { :id => blob_id,
>+ :bucket => bucket_id,
>+ :content_lengh => blob_data[:tempfile].length,
>+ :content_type => blob_data[:type],
>+ :last_modified => ''
>+ } )
>+ end
>+
>+#--
>+# Delete Blob
>+#--
>+ def delete_blob(credentials, bucket_id, blob_id, opts=nil)
>+ azure_connect(credentials)
>+ #get a handle to bucket and blob, and destroy!
>+ the_bucket = WAZ::Blobs::Container.find(bucket_id)
>+ the_blob = the_bucket[blob_id]
>+ the_blob.destroy!
>+ end
>+
> private
>
> def azure_connect(credentials)
>--
>1.7.2.3
>
--
--------------------------------------------------------
Michal Fojtik, mfojtik@redhat.com
Deltacloud API: http://deltacloud.org
--------------------------------------------------------