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: openst...@lists.launchpad.net 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 <kevin.mitch...@rackspace.com> This email may include confidential information. If you received it in error, please delete it. _______________________________________________ Mailing list: https://launchpad.net/~openstack Post to : openst...@lists.launchpad.net Unsubscribe : https://launchpad.net/~openstack More help : https://help.launchpad.net/ListHelp -- Mailing list: https://launchpad.net/~netstack Post to : netstack@lists.launchpad.net Unsubscribe : https://launchpad.net/~netstack More help : https://help.launchpad.net/ListHelp