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 2011/07/14 16:58:33 UTC

[PATCH] Adds get and update blob metadata for ec2 driver:

From: marios <ma...@redhat.com>


Signed-off-by: marios <ma...@redhat.com>
---
 server/lib/deltacloud/drivers/ec2/ec2_driver.rb |   18 ++++++++++++++++++
 1 files changed, 18 insertions(+), 0 deletions(-)

diff --git a/server/lib/deltacloud/drivers/ec2/ec2_driver.rb b/server/lib/deltacloud/drivers/ec2/ec2_driver.rb
index 45032d6..175e4ca 100644
--- a/server/lib/deltacloud/drivers/ec2/ec2_driver.rb
+++ b/server/lib/deltacloud/drivers/ec2/ec2_driver.rb
@@ -415,6 +415,24 @@ module Deltacloud
           end
         end
 
+        def blob_metadata(credentials, opts={})
+          s3_client = new_client(credentials, :s3)
+          blob_meta = {}
+          safely do
+            the_blob = s3_client.bucket(opts['bucket']).key(opts[:id], true)
+            blob_meta = the_blob.meta_headers
+          end
+          blob_meta
+        end
+
+        def update_blob_metadata(credentials, opts={})
+          s3_client = new_client(credentials, :s3)
+          meta_hash = BlobHelper::rename_metadata_headers(opts['meta_hash'], '')
+          safely do
+            the_blob = s3_client.bucket(opts['bucket']).key(opts[:id])
+            the_blob.save_meta(meta_hash)
+          end
+        end
 
         def blob_data(credentials, bucket_id, blob_id, opts={})
           s3_client = new_client(credentials, :s3)
-- 
1.7.3.4


Re: [PATCH] Adds get and update blob metadata for ec2 driver:

Posted by Michal Fojtik <mi...@mifo.sk>.
On Jul 14, 2011, at 4:58 PM, marios@redhat.com wrote:

ACK. Sorry for delay ;-)

  -- Michal

> From: marios <ma...@redhat.com>
> 
> 
> Signed-off-by: marios <ma...@redhat.com>
> ---
> server/lib/deltacloud/drivers/ec2/ec2_driver.rb |   18 ++++++++++++++++++
> 1 files changed, 18 insertions(+), 0 deletions(-)
> 
> diff --git a/server/lib/deltacloud/drivers/ec2/ec2_driver.rb b/server/lib/deltacloud/drivers/ec2/ec2_driver.rb
> index 45032d6..175e4ca 100644
> --- a/server/lib/deltacloud/drivers/ec2/ec2_driver.rb
> +++ b/server/lib/deltacloud/drivers/ec2/ec2_driver.rb
> @@ -415,6 +415,24 @@ module Deltacloud
>           end
>         end
> 
> +        def blob_metadata(credentials, opts={})
> +          s3_client = new_client(credentials, :s3)
> +          blob_meta = {}
> +          safely do
> +            the_blob = s3_client.bucket(opts['bucket']).key(opts[:id], true)
> +            blob_meta = the_blob.meta_headers
> +          end
> +          blob_meta

Just a minor catch: If you're using 'block' the value returned from it is the value of the
last statement in this block. In this case, it's 'blob_meta', so it's safe to use just:

def blob_metadata(...)
  ......
  safely do
    .....
    blob_meta = the_blob.meta_headers
  end
end

> +        end
> +
> +        def update_blob_metadata(credentials, opts={})
> +          s3_client = new_client(credentials, :s3)
> +          meta_hash = BlobHelper::rename_metadata_headers(opts['meta_hash'], '')
> +          safely do
> +            the_blob = s3_client.bucket(opts['bucket']).key(opts[:id])
> +            the_blob.save_meta(meta_hash)
> +          end
> +        end
> 
>         def blob_data(credentials, bucket_id, blob_id, opts={})
>           s3_client = new_client(credentials, :s3)
> -- 
> 1.7.3.4
>