[openstack-dev] [OpenStack-Dev] Cinder API Web Framework Change

thingee thingee at gmail.com
Tue Jun 25 04:45:25 UTC 2013


On Mon, Jun 24, 2013 at 11:53 PM, John Griffith <john.griffith at solidfire.com
> wrote:

> All,
>
> I wanted to loop the larger community in on some discussions that have
> been taking place on #openstack-cinder.
>
> During the Summit we talked about switching to Pecan for our API/Web
> framework.  Since then we've registered a BP [1] and some pretty good
> progress has been made.
>
> Since starting this effort however we've been debating the best way to
> implement this change:
>
> 1. Replace existing WSGI framework in the existing API versions
>
> In my opinion there's a bit of risk here with changing the entire
> framework tha the API is built on, and even though I'm confident this can
> be done I'm not sure of the return on the investment and really I don't see
> anything that compelling when you consider all of the changes in not only
> the API code but in the unit tests that would be affected.
>
> 2. Bump to a new API version and isolate the changes to that new version
>
> This is my preference and IMO the right way to go, however there's no
> driving need for another API version bump in Cinder currently.  I
> personally don't like the idea of bumping the API version for every
> release, even if we're keeping things stable and maintaining backward
> compatibility without issues.  For me there isn't an overly compelling
> reason to justify this change for the H release.
>
> My plan is to go with option #2, and to push this change out until the I
> release.  I'd like to know if anybody has strong feelings or justifications
> that we should consider on this before moving forward.
>
> Thanks,
> John
>

I've been involved with the discussions with John and was originally the
person that proposed the pecan switch back at the Havana summit for Cinder
in my session:

https://etherpad.openstack.org/havana-cinder-api2-a-new-hope

I've been writing compatibility for both v1 and v2 in pecan/wsme and while
I would absolutely love to see the wsgi implementation code go and xml
serializing/deserializing code go, as John mentioned, I don't think it's
worth it right now. It just took me writing around 5K lines of code to
realize it.

Sort of reiterating John's points, there's a few reasons why I think we
should wait for v3:

1) We'd likely drop v1 support in that release, so we don't have to worry
about it anymore.

2) Make reviewing a lot easier since it's not one big commit that changes
all controllers and tests. Instead have v3 be introduced using pecan with a
commit for each controller and tests. Eventually allow v3 to be served by
cinder-api in the ending commit.

3) v2 controller code and tests don't have to be updated to use pecan. v2
will continue to use paste and v3 will use pecan.

This is the same approach that Ceilometer has done from Flask to Pecan and
it's working out great.

With all that said, I don't want a version bump either for just a framework
switch, as we just did v2 last release. v3 will be needed soon and once
that happens, I'll already be ready with core API controllers I already
switched over to Pecan.


-Mike Perez
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20130625/b3430f60/attachment.html>


More information about the OpenStack-dev mailing list