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:32 UTC
Adds get/set blob metadata for ec2 driver
While updating the API docs and writing the line 'EC2 does not
support retrieving or setting of blob metadata values' I thought
I'd double check the EC2 API/appoxy aws rubygem. It seems I missed
this (or the EC2 API was updated... weak I know ... ). This patch
adds the 'blob_metadata' and 'update_blob_metadata' methods to the
EC2 driver:
retrieve metadata like:
HEAD /api/buckets/:bucket/:blob
(since its HEAD, no message body, but response headers contain the
blob metadata)
set metadata like:
POST /api/buckets/:bucket/:blob
X-Deltacloud-Blobmeta-KEY:Value
X-Deltacloud-Blobmeta-Version:2.1
marios
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
>
[PATCH] Adds get and update blob metadata for ec2 driver:
Posted by ma...@redhat.com.
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: Adds get/set blob metadata for ec2 driver
Posted by "marios@redhat.com" <ma...@redhat.com>.
<nag> this patch is now 1 week old so I feel entitled to ask for a
review (pretty please?) </nag>
On 14/07/11 17:58, marios@redhat.com wrote:
> While updating the API docs and writing the line 'EC2 does not
> support retrieving or setting of blob metadata values' I thought
> I'd double check the EC2 API/appoxy aws rubygem. It seems I missed
> this (or the EC2 API was updated... weak I know ... ). This patch
> adds the 'blob_metadata' and 'update_blob_metadata' methods to the
> EC2 driver:
>
> retrieve metadata like:
>
> HEAD /api/buckets/:bucket/:blob
> (since its HEAD, no message body, but response headers contain the
> blob metadata)
>
> set metadata like:
>
> POST /api/buckets/:bucket/:blob
> X-Deltacloud-Blobmeta-KEY:Value
> X-Deltacloud-Blobmeta-Version:2.1
>
> marios