[openstack-dev] Nova extension oddness?

Kevin L. Mitchell kevin.mitchell at rackspace.com
Wed Sep 5 21:23:40 UTC 2012

On Wed, 2012-09-05 at 14:07 -0700, Joshua Harlow wrote:
> It seems like its almost like a extension here is a bundle of code that
> extends multiple parts no? 

That would be a good way of doing it.  However, it's not the way that's
currently implemented in nova.  Right now, the only thing that can be
extended by loading a plugin—in the context we're discussing—is the
osapi itself.

> So when someone loads the extension you are
> talking about they also have to load the extended compute manager... 

The problem with that approach is that it is not properly extensible.
Consider someone who wants to use two independent extensions which do
two different things, but both require changes to the compute manager;
if we simply extend the compute manager class, only one of the
extensions can be used at a time.

> Then when this extension that needs these extra calls is used, it has to
> basically be a bundle of code that hooks in to the X various points
> (instead of just 1 point at the extension webservice). Perhaps improving
> upon the extension mechanism is in order (or making it more widely
> distributed?), it seems like plugins are themselves extensions, so maybe a
> unified way of doing this would be applicable? 

At present, there is no way of extending the various managers except by
subclassing, which is not scalable.  Hooks would probably be a very good
first pass at improving extensibility.
Kevin L. Mitchell <kevin.mitchell at rackspace.com>

More information about the OpenStack-dev mailing list