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 2012/06/01 13:24:02 UTC
[PATCH 3/7] Fixes issues/bugs from recent modular deltacloud change, especially adds explicit HEAD route for blob metadata HEAD /bucket/blob.
From: marios <ma...@redhat.com>
Signed-off-by: marios <ma...@redhat.com>
---
server/lib/deltacloud/collections/buckets.rb | 24 +++++++++++++++++++++---
1 files changed, 21 insertions(+), 3 deletions(-)
diff --git a/server/lib/deltacloud/collections/buckets.rb b/server/lib/deltacloud/collections/buckets.rb
index ba5af1e..355d4d0 100644
--- a/server/lib/deltacloud/collections/buckets.rb
+++ b/server/lib/deltacloud/collections/buckets.rb
@@ -30,6 +30,24 @@ module Deltacloud::Collections
end
end
+
+ head route_for('/buckets/:bucket/:blob') do
+ @blob_id = params[:blob]
+ @blob_metadata = driver.blob_metadata(credentials, {:id => params[:blob], 'bucket' => params[:bucket]})
+ if @blob_metadata
+ @blob_metadata.each do |k,v|
+ headers["X-Deltacloud-Blobmeta-#{k}"] = v
+ end
+ status 204
+ respond_to do |format|
+ format.xml
+ format.json
+ end
+ else
+ report_error(404)
+ end
+ end
+
collection :buckets do
standard_show_operation
@@ -162,8 +180,8 @@ module Deltacloud::Collections
action :metadata, :http_method => :head, :with_capability => :blob_metadata do
control do
- @blob_id = params[:blob]
- @blob_metadata = driver.blob_metadata(credentials, {:id => params[:blob], 'bucket' => params[:bucket]})
+ @blob_id = params[:blob_id]
+ @blob_metadata = driver.blob_metadata(credentials, {:id => params[:blob_id], 'bucket' => params[:id]})
if @blob_metadata
@blob_metadata.each do |k,v|
headers["X-Deltacloud-Blobmeta-#{k}"] = v
@@ -182,7 +200,7 @@ module Deltacloud::Collections
action :update, :http_method => :post, :with_capability => :update_blob_metadata do
control do
meta_hash = BlobHelper::extract_blob_metadata_hash(request.env)
- success = driver.update_blob_metadata(credentials, {'bucket'=>params[:bucket], :id =>params[:blob], 'meta_hash' => meta_hash})
+ success = driver.update_blob_metadata(credentials, {'bucket'=>params[:id], :id =>params[:blob_id], 'meta_hash' => meta_hash})
if(success)
meta_hash.each do |k,v|
headers["X-Deltacloud-Blobmeta-#{k}"] = v
--
1.7.6.5