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

Chris Friesen chris.friesen at windriver.com
Thu Aug 22 02:55:42 UTC 2013


Hi,

I'm pretty new to OpenStack, so maybe I'm still not grokking the overall 
design.  Feel free to tell me I'm totally full of it. :)

Anyways, I've been poking around in the code with an eye towards maybe 
extending the set of information exported by the compute nodes for use 
in scheduler filters.

I started putting together a list of areas that would need to be 
updated, and it seems like there are quite a few separate chunks of code 
all over the codebase that are aware of the details of what is exported:


LibvirtDriver class
Claim” class
ComputeNode class
compute_node_statistics() in sqlalchemy/api.py
ServiceCommands class (to show host resources)
ResourceTracker class (to track used/free resources)
Stats class
FakeDriver class
HostState class in libvirt/driver.py
json/xml stuff in nova/doc/api_samples
HostController class
make_hypervisor() in compute/plugins/v3/hypervisors.py
HypervisorStatisticsTemplate API class
HypervisorsController API class
HostController API class
SchedulerManager class


I've probably missed some, the above was generated looking for cases of 
"vcpus_used".

Maybe I'm dreaming, but it seems like there should be a way to do this 
more efficiently rather than manually copying knowledge into different 
parts of the code.

Thoughts?

Chris




More information about the Openstack mailing list