Optimize hypervisor API calls
The nova CDM builder code and notification handling code had some inefficiencies when it came to looking up a hypevisor to get details. The general pattern used before was: 1. get the minimal hypervisor information by hypervisor_hostname 2. make another query to get the hypervisor details by id In the notifications case, it was actually three calls because the first is listing hyprvisors to filter client-side by service host. This change collapses 1 and 2 above into a single API call to get the hypervisor by hypervisor_hostname with details which will include the service (compute) host information which is what get_compute_node_by_id() was being used for. Now that nothing is using get_compute_node_by_id it is removed. There is more work we could do in get_compute_node_by_hostname if the compute API allowed filtering hypervisors by service host so a TODO is left for that. One final thing: the TODO in get_compute_node_by_hostname about there being more than one hypervisor per compute service host for vmware vcenter is not accurate - nova's vcenter driver hasn't supported a host:node 1:M topology like that since the Liberty release [1]. The only in-tree driver in nova that supports 1:M is the ironic baremetal driver, so the comment is updated. [1] Ifc17c5049e3ed29c8dd130339207907b00433960 Depends-On: https://review.opendev.org/661785/ Change-Id: I5e0e88d7b2dd1a69117ab03e0e66851c687606da
This commit is contained in:
@@ -117,7 +117,7 @@ python-keystoneclient==3.15.0
|
||||
python-mimeparse==1.6.0
|
||||
python-monascaclient==1.12.0
|
||||
python-neutronclient==6.7.0
|
||||
python-novaclient==10.1.0
|
||||
python-novaclient==14.1.0
|
||||
python-openstackclient==3.14.0
|
||||
python-subunit==1.2.0
|
||||
pytz==2018.3
|
||||
|
||||
Reference in New Issue
Block a user