Hi Chris,

basically, what David said... more inline

On 17/08/11 21:00, David Lutterkort wrote:
On Wed, 2011-08-17 at 11:20 -0400, Chris Lalancette wrote:
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

This is true - however, our API defines that the way to *update blob metadata* is using request headers (http://incubator.apache.org/deltacloud/api#h4_3_11). I don't think we ever supported blob header updates using form fields. I mean, I don't think this has anything to do with 0.4 as this wouldn't have worked for the blob update operation even in 0.3. I checked through the git history though this stuff is a little old so i may have missed something and be wrong on this.

and seems to fix it in my tests.  However, it is also possible that my
libdeltacloud client is doing the wrong thing here.  Thoughts?


It's a little confusing since we also take the metadata params as
request params - but that is only there to support the HTML UI, and only
done for POST.

As David says, I suspect the confusion stems from the fact that for the blob *create* operation using POST, blob metadata is defined using form fields (http://incubator.apache.org/deltacloud/api#h4_3_8). The POST operation for creating blobs is a special case, and is only there to support the HTML interface. More on this in response to your other email ("Blob Creation")

marios


The intended way to pass metadata is by using request headers, i.e. for
each key/value pair have a header

         X-Deltacloud-Blobmeta-KEY: VALUE

That's also how they are reported back (as response headers)

David





Reply via email to