[openstack-dev] [nova] Averting the Nova crisis by splitting out virt drivers

Christopher Yeoh cbkyeoh at gmail.com
Fri Sep 5 10:01:50 UTC 2014


On Thu, 4 Sep 2014 11:24:29 +0100
"Daniel P. Berrange" <berrange at redhat.com> wrote:
> 
>  - A fairly significant amount of nova code would need to be
>    considered semi-stable API. Certainly everything under nova/virt
>    and any object which is passed in/out of the virt driver API.
>    Changes to such APIs would have to be done in a backwards
>    compatible manner, since it is no longer possible to lock-step
>    change all the virt driver impls. In some ways I think this would
>    be a good thing as it will encourage people to put more thought
>    into the long term maintainability of nova internal code instead
>    of relying on being able to rip it apart later, at will.
> 
>  - The nova/virt/driver.py class would need to be much better
>    specified. All parameters / return values which are opaque dicts
>    must be replaced with objects + attributes. Completion of the
>    objectification work is mandatory, so there is cleaner separation
>    between virt driver impls & the rest of Nova.

I think for this to work well with multiple repositories and drivers
having different priorities over implementing changes in the API it
would not just need to be semi-stable, but stable with versioning built
in from the start to allow for backwards incompatible changes. And
the interface would have to be very well documented including things
such as what exceptions are allowed to be raised through the API.
Hopefully this would be enforced through code as well. But as long as
driver maintainers are willing to commit to this extra overhead I can
see it working. 

Chris



More information about the OpenStack-dev mailing list