Yes some extensions modify core code. We are trying to strike a middle ground 
between ease-of-implementation and stability.  Stability of the API is vital, 
so public facing features definitely need to be extensions until we create a 
new version of the api. Internal stability is less important, so modifying core 
components to implement important extensions seems ok.

Eventually we might have to develop db-extensions and manager and driver 
plugins so you could ship all levels of an extension separately.  This would be 
very valuable, but it also significantly complicates the code base, so we have 
been avoiding generalizing the code so far.

Something to think about at the design summit.  I'm going to propose a 
discussion regarding shipping external "drivers", and this seems like it fits 
right in with that.

Vish

On Feb 6, 2012, at 11:30 AM, Andrew Bogott wrote:

>    I've just finished re-reading 'OpenStack API Extensions -- an overview.'  
> I understand the distinction between a core API and an API extension, and the 
> value of that distinction is clear.
> 
>    What I don't understand is how that distinction plays out when it comes to 
> implementation.  Within our shared implementation, is there any actual coding 
> distinction between 'core' and 'extension'?  For example, when I implemented 
> the DNS extension I put most of the code in api/openstack/compute/contrib 
> (clearly the place for 'extensions'.)  But to support the actual 
> functionality I made changes in nova/network/manager.py and added a couple of 
> db tables.  Everyone seemed fine with that.
> 
>    Can I expect that any non-test-breaking code will be merged as long as it 
> doesn't alter the core API, even if it's for an unpopular or obscure 
> extension (e.g. puppet support)?  If not, how have other developers handled 
> cases where adding a private API extension requires modifications of shared 
> code?
> 
> Thanks!
> 
> -Andrew
> 
> 
> _______________________________________________
> 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