<div dir="ltr">I looked into the pointers mentioned above,<div>and the <span style="font-family:arial,sans-serif;font-size:13px">make_pre_authed_request function was exactly what I needed.</span></div><div style><span style="font-family:arial,sans-serif;font-size:13px">I used:</span></div>
<div style><div><font face="arial, sans-serif"> resp = make_pre_authed_request(env, 'GET', req.path, agent='MyCall', </font><span style="font-family:arial,sans-serif">swift_source='MC').get_response(self.app)</span></div>
<div style="font-family:arial,sans-serif;font-size:13px">and got the requested object in resp, including metadata in the headers and the actual object body.</div><div style="font-family:arial,sans-serif;font-size:13px"><br>
</div><div style="font-family:arial,sans-serif;font-size:13px">Thanks!</div><div style="font-family:arial,sans-serif;font-size:13px">- Itamar.</div><div style="font-family:arial,sans-serif;font-size:13px"><br></div></div>
</div><div class="gmail_extra"><br><br><div class="gmail_quote">On Tue, Apr 23, 2013 at 7:51 AM, Itamar O <span dir="ltr"><<a href="mailto:itamarost@gmail.com" target="_blank">itamarost@gmail.com</a>></span> wrote:<br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">David, Chmouel,<div>Thank you for the pointers!</div><div>I will look into it soon, hoping it solves my needs.</div>
<div><br></div><div>Sorry for not posting to the dev-list from the beginning. I wasn't aware of it...</div><span class="HOEnZb"><font color="#888888">
<div><br></div><div>- Itamar.</div></font></span></div><div class="HOEnZb"><div class="h5"><div class="gmail_extra"><br><br><div class="gmail_quote">On Mon, Apr 22, 2013 at 8:06 PM, David Goetz <span dir="ltr"><<a href="mailto:david.goetz@rackspace.com" target="_blank">david.goetz@rackspace.com</a>></span> wrote:<br>

<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">There are examples in swift.common.middleware of doing this.<br>
<br>
If you want to try changing the metadata on the way out you can look at:<br>
<br>
<a href="https://github.com/openstack/swift/blob/master/swift/common/middleware/staticweb.py#L367-L384" target="_blank">https://github.com/openstack/swift/blob/master/swift/common/middleware/staticweb.py#L367-L384</a><br>


<br>
it makes use of the WSGIContext class which allows you to make a call down the pipeline and respond to it on the way back out.<br>
<br>
If you want to just kinda peek at the object before sending the request you can use make_pre_authed_request as done here for containers:<br>
<br>
<a href="https://github.com/openstack/swift/blob/master/swift/common/middleware/staticweb.py#L198-L201" target="_blank">https://github.com/openstack/swift/blob/master/swift/common/middleware/staticweb.py#L198-L201</a><br>


<br>
that function will take auth out of the environment so you want to be careful about using it. It you want to keep auth you can do something along the lines of:<br>
<br>
<a href="https://github.com/openstack/swift/blob/master/swift/common/middleware/bulk.py#L250-L259" target="_blank">https://github.com/openstack/swift/blob/master/swift/common/middleware/bulk.py#L250-L259</a><br>
<br>
which just makes a sub request using a copy of the current environment. In your case, after you get that response you'd probably just want to let the request continue on the pipeline instead of just completely overriding it like the bulk middleware does.<br>


<br>
David<br>
<div><div><br>
<br>
<br>
<br>
<br>
On Apr 21, 2013, at 10:11 AM, Itamar O wrote:<br>
<br>
> Hello list,<br>
> I am new to OpenStack development, and trying to implement a simple Swift middleware.<br>
> I was able to successfully manipulate a PUT request for an object, processing the data that was uploaded by the request and storing some information in the object metadata.<br>
> But now I am struggling with handling GET requests for objects.<br>
> I would like to access the data and metadata of the requested object before it is passed down the pipeline, but I have no clue how to achieve this.<br>
><br>
> In case this is not the appropriate mailing list for this question, I apologize, and would appreciate if someone could refer me to the correct list.<br>
> Otherwise, any advice will be much appreciated!<br>
><br>
> Thanks,<br>
> - Itamar.<br>
</div></div>> _______________________________________________<br>
> Mailing list: <a href="https://launchpad.net/~openstack" target="_blank">https://launchpad.net/~openstack</a><br>
> Post to     : <a href="mailto:openstack@lists.launchpad.net" target="_blank">openstack@lists.launchpad.net</a><br>
> Unsubscribe : <a href="https://launchpad.net/~openstack" target="_blank">https://launchpad.net/~openstack</a><br>
> More help   : <a href="https://help.launchpad.net/ListHelp" target="_blank">https://help.launchpad.net/ListHelp</a><br>
<br>
</blockquote></div><br></div>
</div></div></blockquote></div><br></div>