[openstack-dev] [oslo] deprecating openstack.common.wsgi

John Dickinson me at not.mn
Thu May 30 17:05:22 UTC 2013


On May 30, 2013, at 9:57 AM, Kurt Griffiths <kurt.griffiths at rackspace.com> wrote:

> 	• The fact that the Swift team just built something from scratch tells me there are still some concerns and/or gaps in functionality that have yet to be adequately addressed in webob. What's the plan to reconcile swob and webob?

> 
> Also, I think there are at least two different kinds of ease-of-use. One is development and the other is operational. The latter is one of the reasons the Swift team abandoned webob, if I'm not mistaken; WebOb had too much magic that made it hard to diagnose errors in production. It would be great to see that addressed in a future WebOb version.

To specifically address the webob -> swob changes in Swift..

https://github.com/openstack/swift/blob/master/swift/common/swob.py#L23

The main reasons are in that link (ie in the docstrings of swob), but the "magic" in WebOb did/does make tracing issues somewhat difficult.


Also, thanks for pointing out the different challenges when doing "data" APIs as opposed to "management" APIs.


> 
> -Kurt (kgriffs)
> 
> 
> From: Doug Hellmann <doug.hellmann at dreamhost.com>
> Reply-To: OpenStack Dev <openstack-dev at lists.openstack.org>
> Date: Thursday, May 30, 2013 9:55 AM
> To: OpenStack Dev <openstack-dev at lists.openstack.org>
> Subject: Re: [openstack-dev] [oslo] deprecating openstack.common.wsgi
> 
> 
> 
> 
> On Thu, May 30, 2013 at 9:16 AM, Jarret Raim <jarret.raim at rackspace.com> wrote:
>> Both Logging (Meniscus) and Key Management (Barbican) are using Falcon (http://falconframework.org/) right now. I'm not adverse to a change if needed, but have we addressed the performance issues from the Falcon page? If Pecan serves 9ish times fewer requests, that seems like a rather large red flag.
> 
> If you look very carefully at the benchmark scripts, you'll see that the numbers for falcon are artificially enhanced by the fact that the falcon test app is only looking at one regular expression when routing requests. Using more realistic number of patterns in the routing list, in a random order, makes the difference in performance much smaller. This was discussed somewhat in the previous thread on the topic on this mailing list (http://lists.openstack.org/pipermail/openstack-dev/2013-April/007709.html). There have also been changes in Pecan to improve its performance significantly (30% based on the benchmark app in the falcon repo).
>  
>> 
>> One benchmark is not enough data to make any decisions, but I didn't see any discussion of the performance of Pecan / WSME in the etherpad from the design summit. Has anyone done any performance testing of the proposed set up? 
> 
> I am much more interested in the ease of use, since I don't see receiving and responding to the web request as the most expensive part of most API calls (especially not for anything that hits the database or makes RPC calls). We obviously don't want to ignore performance, but I would rather put effort into improving an existing project that is very easy to use than into building something new from scratch.
> 
> Doug
>  
>> 
>> 
>> Jarret 
>> 
>> 
>> From: Doug Hellmann <doug.hellmann at dreamhost.com>
>> Reply-To: OpenStack List <openstack-dev at lists.openstack.org>
>> Date: Wednesday, May 29, 2013 7:07 PM
>> To: OpenStack List <openstack-dev at lists.openstack.org>
>> Subject: [openstack-dev] [oslo] deprecating openstack.common.wsgi
>> 
>> I have -2ed several changes to the wsgi module in oslo-incubator in the last few weeks, and I wanted to bring it up on the list to explain the reasons more broadly.
>> 
>> At the last summit we agreed that the goal was to start deprecating our home-grown WSGI service implementation in favor of moving to a new set of tools called Pecan and WSME (https://etherpad.openstack.org/havana-common-wsgi). While I understand that we can't just drop everything and build new API servers, I do feel strongly that we should not continue developing new features for the module we are deprecating.
>> 
>> I don't see any other projects with "wsgi" in their openstack-common.conf, nor did I find any copies of openstack/common/wsgi.py in any other projects. I did find several wsgi.py files in different directories in the projects. I take that to mean that we are/were still in the process of unifying the various forked versions of the module, and I propose that we just not bother doing more work on that. Since no project is already using Oslo's wsgi module, I'm not sure it makes sense to bring bug fixes into Oslo, either. If I've missed something, and projects are in fact using the module, then we should continue to deal with bug fixes.
>> 
>> To officially indicate the module as deprecated, Mark suggested moving it to openstack/common/deprecated/wsgi.py. I have done that in changeset https://review.openstack.org/#/c/30972/. As the commit log message mentions, there is still some work to be done to remove the dependency between one or two of the middleware classes and the now deprecated module. I would appreciate any ideas about the best way to do that from folks who know about those modules.
>> 
>> As we move to the new tools, I am sure we will find new bits of code related to setting up those projects that we can share. For example, the code to configure the keystone middleware for an API service shouldn't need to be repeated across all of the projects. We should start a new module to hold those pieces, taken from the projects that are starting to use Pecan and WSME already. I volunteer to be the primary maintainer for that new module within Oslo.
>> 
>> Doug
>> 
>> 
>> _______________________________________________
>> OpenStack-dev mailing list
>> OpenStack-dev at lists.openstack.org
>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>> 
> 
> _______________________________________________
> OpenStack-dev mailing list
> OpenStack-dev at lists.openstack.org
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev




More information about the OpenStack-dev mailing list