All,
    It seems to me that blob metadata updates aren't quite working in 0.4.0.
It looks like BlobHelper::extract_blob_metadata_hash is being fed request.env
directly, but I don't think that is right.  If your client does a POST with
form parameters like:

HTTP-X-Deltacloud-Blobmeta-name=myname

Then those parameters are actually available in
request.env['rack.request.query_hash'].  The attached patch makes that change
and seems to fix it in my tests.  However, it is also possible that my
libdeltacloud client is doing the wrong thing here.  Thoughts?

-- 
Chris Lalancette
>From 3f3ea9744cf3014bed3baef8c2bcadd05f5b143c Mon Sep 17 00:00:00 2001
From: Chris Lalancette <[email protected]>
Date: Wed, 17 Aug 2011 11:10:36 -0400
Subject: [PATCH] Fix blob metadata updates.

Signed-off-by: Chris Lalancette <[email protected]>
---
 server/server.rb |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/server/server.rb b/server/server.rb
index 6bdb066..29d4c53 100644
--- a/server/server.rb
+++ b/server/server.rb
@@ -832,7 +832,7 @@ end
 
 #update blob metadata
 post "#{Sinatra::UrlForHelper::DEFAULT_URI_PREFIX}/buckets/:bucket/:blob" do
-  meta_hash = BlobHelper::extract_blob_metadata_hash(request.env)
+  meta_hash = 
BlobHelper::extract_blob_metadata_hash(request.env['rack.request.query_hash'])
   success = driver.update_blob_metadata(credentials, 
{'bucket'=>params[:bucket], :id =>params[:blob], 'meta_hash' => meta_hash})
   if(success)
     meta_hash.each do |k,v|
-- 
1.7.4.4

Reply via email to