[openstack-dev] [nova][vmware] spawn() refactor: proposal to address branch complexity

Vui Chiap Lam vuichiap at vmware.com
Mon Mar 31 05:49:55 UTC 2014

Work has begun to convert a bunch of nested functions in VMwareVMOps::spawn() 
to improve its {read,test,review}-ability. 
(See https://blueprints.launchpad.net/nova/+spec/vmware-spawn-refactor) 
Much of it has already been hashed out in irc, so not much to add here. 

But this work in very unlikely to address the other main issue with the method, 
which is that it will continue to contain a large block of hard-to-follow code 
with a high level of branches unless something is done about it. 

Presented here is a proposal to address the above-mentioned issue: 

The TL;DR version: 

Through analyzing the current code as well several proposed functional changes 
that would affect it, it was found that the areas of variability in the method 
centers mostly around how the image is obtained, processed, and eventually 
employed by a newly created instance. So, the proposal is to refactor the 
method by building some structure around those three areas of responsibilities. 

The result should hopefully lead to shorter, more decoupled code, as well as 
facilitate future additions to those areas in a more isolated fashion. 

A draft implementation of the proposal is at: 

I am interested to hear opinions on whether this is a reasonable approach to 
take, as well as other suggestions/comments related to this topic. 


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

More information about the OpenStack-dev mailing list