[openstack-dev] [Nova] New API requirements, review of GCE

Christopher Yeoh cbkyeoh at gmail.com
Mon Nov 18 02:32:40 UTC 2013

On Sat, Nov 16, 2013 at 6:01 AM, Joe Gordon <joe.gordon0 at gmail.com> wrote:

> On Fri, Nov 15, 2013 at 9:01 AM, Mark McLoughlin <markmc at redhat.com>wrote:
>> On Fri, 2013-11-15 at 11:28 -0500, Russell Bryant wrote:
>> > Greetings,
>> >
>> > We've talked a lot about requirements for new compute drivers [1].  I
>> > think the same sort of standards shold be applied for a new third-party
>> > API, such as the GCE API [2].
>> >
>> > Before we can consider taking on a new API, it should have full test
>> > suite coverage.  Ideally this would be extensions to tempest.  It should
>> > also be set up to run on every Nova patch via CI.
>> >
>> > Beyond that point, now is a good time to re-consider how we want to
>> > support new third-party APIs.  Just because EC2 is in the tree doesn't
>> > mean that has to be how we support them going forward.  Should new APIs
>> > go into their own repositories?
>> >
>> > I used to be against this idea.  However, as Nova's has grown, the
>> > importance of finding the right spots to split is even higher.  My
>> > objection was primarily based on assuming we'd have to make the Python
>> > APIs stable.  I still do not think we should make them stable, but I
>> > don't think that's a huge issue, since it should be mitigated by running
>> > CI so the API maintainers quickly get notified when updates are
>> necessary.
>> >
>> > Taking on a whole new API seems like an even bigger deal than accepting
>> > a new compute driver, so it's an important question.
>> >
>> > If we went this route, I would encourage new third-party APIs to build
>> > themselves up in a stackforge repo.  Once it's far enough along, we
>> > could then evaluate officially bringing it in as an official sub-project
>> > of the OpenStack Compute program.
>> I do think there should be a high bar for new APIs. More than just CI,
>> but that there is a viable group of contributors around the API who are
>> involved in OpenStack more generally than just maintaining the API in
>> question.
>> I don't at all like the idea of drivers or APIs living in separate repos
>> and building on unstable Nova APIs. Anything which we accept is a part
>> of OpenStack should not get randomly made unusable by one contributor
>> while other contributors constantly have to scramble to catch up. Either
>> stuff winds up being broken too often or we stifle progress in Nova
>> because we're afraid to make breaking changes.
> the ceilometer plugin for nova hit this, and had to be scrapped.  It
> hooked into nova-compute and at one point made nova-compute hang there for
> minutes at a time.
> I agree, that hooking into our underlying python APIs is a bad idea and a
> recipe for disaster. But at the same time I do like having things live in a
> separate repo, at the very least until they are mature enough to be pulled
> into mainline.
> But if we do go with the separate repo solution, what are the issues with
> proxying third party APIs on top of OpenStack REST APIs?  Using the REST
> APIs would mean we have a stable contract for these third party APIs to
> consume, and we also get more feedback about fixing our own API at the same
> time.
I'd love to hear what the barriers are to doing this. As you say it would
have a lot of advantages if its feasible.

One other issue with the proposed GCE changes is that it uses the custom
wsgi which we are trying to phase out eventually.  Should we be suggesting
that new APIs use Pecan/WSME?

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20131118/e8c085da/attachment.html>

More information about the OpenStack-dev mailing list