On May 17, 2012, at 11:57 AM, Andy Edmonds wrote:

> Hey Vish,
> In the case of option 2, can such a isolated component remain under the 
> 'nova' module (e.g. the ec2 module under nova/api/) on the nova repository or 
> must it be on a separate repository and yet be, via some means, made easily 
> integrated to the master branch code?

Remaining under the nova module would be option 3 (doing it in a feature 
branch). Option 2 is putting it in a separate repository.

Vish

> 
> Cheers,
> 
> Andy
> andy.edmonds.be
> 
> 
> On Thu, May 17, 2012 at 8:18 PM, Vishvananda Ishaya <[email protected]> 
> wrote:
> Hello Everyone,
> 
> In the ppb meeting last week[1] we discussed third party apis and decided 
> that the policy is not to include them in core.  Specifically the motion that 
> passed is:
> 
> An OpenStack project will support an official API in it's core implementation 
> (the OpenStack API). other APIs will be implemented external to core. the 
> core project will expose stable, complete, performant interfaces so that 3rd 
> party APIs can be implemented in a complete and performant manner.
> 
> So now that we have settled on a long term goal for third party apis, we need 
> to deal with the short term. We do have a stable interface in Nova in the 
> form of the OpenStack API but it remains to be seen whether it is complete 
> and performant enough to allow other apis to be layered on top of it.
> 
> Ultimately, I would like to see a stable internal python api that the other 
> apis could speak through (including the OpenStack api layer), but it will 
> probably take a while to get there. In the short term I see three 
> possibilities for third party apis.
> 
> 1 Proxy Layer
> 
> This is the approach being taken by AWSOME, and it is definitely the easiest 
> to maintain. It has some big advantages, like allowing new apis deployed in a 
> completely decoupled manner. The main potential drawbacks are performance and 
> an incomplete mapping of concepts from one api to another. This will most 
> likely require adding OpenStack api extensions to support some of the extra 
> features in other apis
> 
> 2 Separate Project that talks to internal apis
> 
> It is possible to write a separate component that imports the compute.api in 
> nova and uses it directly.  This will deal with the performance issues of the 
> above approach, but it runs the risk of being broken if the compute.api 
> changes over the course of the release. The advantage of this approach is it 
> will drive requirements for having a stable/versioned internal api. In this 
> model, automated testing would be necessary to alert any breakages.
> 
> 3 Feature Branch in Core
> 
> We are doing some work to support Feature and Subsystem branches in our CI 
> system. 3rd party apis could live in a feature branch so that they can be 
> tested using our CI infrastructure. This is very similar to the above 
> solution, and gives us a temporary place to do development until the internal 
> apis are more stable. Changes to internal apis and 3rd party apis could be 
> done concurrently in the branch and tested. Once the branch has stabilized, 
> the updates could be pushed into the internal apis in nova, and the 3rd party 
> api could grow up into its own project like option 2
> 
> 
> It may be that there are other options that I haven't thought of, but 
> regardless of the approach taken by the various 3rd party apis, I think it is 
> valuable for us all to work together on stabilizing the internal apis.  I'd 
> like the ec2 api to be able to live separately as well.
> 
> Vish
> 
> [1] 
> http://eavesdrop.openstack.org/meetings/openstack-meeting/2012/openstack-meeting.2012-05-08-20.00.log.txt
> 
> _______________________________________________
> 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/~openstack
Post to     : [email protected]
Unsubscribe : https://launchpad.net/~openstack
More help   : https://help.launchpad.net/ListHelp

Reply via email to