Yeah, I think it sounds useful.

Thanks,
Brad

On Tue, Oct 18, 2011 at 7:11 AM, Salvatore Orlando
<[email protected]> wrote:
> Is this something we might consider for Quantum as well as concerns resource 
> extensions?
>
> Salvatore
>
> -----Original Message-----
> From: openstack-bounces+salvatore.orlando=eu.citrix....@lists.launchpad.net 
> [mailto:openstack-bounces+salvatore.orlando=eu.citrix....@lists.launchpad.net]
>  On Behalf Of Kevin L. Mitchell
> Sent: 18 October 2011 00:53
> To: [email protected]
> Subject: [Openstack] Change to api-paste.ini
>
> Just writing to let everyone know that there has been a minor change in 
> api-paste.ini introduced by my recent XML templates merge-prop.  The line in 
> question is the pipeline for [pipeline:openstackapi11]: the addition of the 
> serialize middleware just before the extensions middleware.  Below you will 
> find a [filter:serialize] section that should also be added, but I would also 
> like to point out that Brian Waldon's recent change, which nuked the 
> Openstack v1.0 API, also completely removed the [pipeline:openstackapi10] 
> section.
>
>        [filter:serialize]
>        paste.filter_factory = 
> nova.api.openstack.wsgi:LazySerializationMiddleware.factory
>
> I'll finish this email with a brief description of the import of the change.  
> The tl;dr summary is: It is now possible to write request extensions without 
> having to deserialize and then reserialize the response body.
>
> The longer version: The XML templates code replaces most of our current XML 
> serializations with an XML template system; instead of hand-coding conversion 
> to XML, which is what we were doing before, you construct a template (in a 
> fashion similar to how you constructed the XML directly; templates are 
> deliberately designed to have a similar interface).  That template is then 
> passed an object, which it serializes into an XML tree.
>
> The key innovation is the ability to create slave templates.  A slave 
> template has just the basic tree information, plus any additional attributes 
> or elements necessary to serialize data that the original master template did 
> not know about.  The slave template can then be attached to the master 
> template, and when the master template is rendered, the patches proposed by 
> the slave template will also be rendered.
>
> Another important point is that serialization can now be done lazily, which 
> is the purpose of the serialization middleware; when installed, it sets a 
> WSGI environment variable that causes the serializer (and associated 
> template, if any) to be inserted into the environment.
>
> These two innovations together make request extensions possible; up until 
> now, if someone wanted to build an extension that modified a request, one 
> would have to discern the type of the data, deserialize it, add the 
> additional data, then reserialize it, probably with another hand-coded XML 
> serializer, if the requested representation type was XML.
> Now, the request extension handlers are passed the object (rather than having 
> to pull it out of response.body) and can modify it, and/or attach slave 
> templates to the template in the "nova.template" WSGI environment variable.
> --
> Kevin L. Mitchell <[email protected]>
>
> This email may include confidential information. If you received it in error, 
> please delete it.
> _______________________________________________
> Mailing list: https://launchpad.net/~openstack
> Post to     : [email protected]
> Unsubscribe : https://launchpad.net/~openstack
> More help   : https://help.launchpad.net/ListHelp
>
> --
> Mailing list: https://launchpad.net/~netstack
> Post to     : [email protected]
> Unsubscribe : https://launchpad.net/~netstack
> More help   : https://help.launchpad.net/ListHelp
>

-- 
Mailing list: https://launchpad.net/~netstack
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~netstack
More help   : https://help.launchpad.net/ListHelp

Reply via email to