[Openstack] object-oriented design in nova--room for improvement?

Chris Friesen chris.friesen at windriver.com
Thu Aug 22 16:39:23 UTC 2013

On 08/21/2013 09:04 PM, Joshua Harlow wrote:
> There is always room for improvement I hope ;)
> +openstack-dev (I think where u wanted this to go).
> A question, are u thinking about organizing the 'metadata' associated with
> resources?
> If so it might be interesting to see if there could be a grand unification
> around something like 'ResourceTracker' & 'Stats' that exposes 'metadata'
> (different types) via an API that all the other classes could use? Is that
> inline of what u are thinking?? Sort of like a resource + metadata
> 'database' that everyone uses (and accesses and updates via a single set
> of APIs).

In my experience it's often a good thing to try and minimize the number 
of places that know about the details of something since it reduces the 
chances of cut/paste errors or someone changing one area of code but 
missing another area.  Right now there are a lot of places that know 
exactly what resources are exported by the compute node.

It seems like it should be possible to have a base class for "resource 
exported by the compute node" that could be subclassed for each separate 
resource.  Most places in the code that care about that sort of thing 
could iterate over the set of resources and call appropriate member 
functions on them.  That way they would no longer need hardcoded 
knowledge of the exported resources.

Adding a new resource would likely be simpler too, since most of the 
stuff required would be in one place.


More information about the Openstack mailing list