nova/nova/conductor
Balazs Gibizer 03bc8b6a6b Transfer port.resource_request to the scheduler
This patch collects the resource requests from each neutron port
involved in a server create request. Converts each request to
a RequestGroup object and includes them in the RequestSpec.
This way the requests are reaching the scheduler and there
they are included in the generation of the allocation_candidates
query.

This patch only handles the happy path of a server create request. But
it adds couple of TODOs to places where the server move operations
related code paths need to be implemented. That implementation will be
part of subsequent patches.

Note that this patch technically makes it possible to boot server with
one neutron port that has resource request. But it does not handle
multiple such ports or SRIOV ports where two PFs are supporting the
same physnet as well as many server lifecycle operations like resize,
migrate, live-migrate, unshelve. To avoid possible resource allocation
inconsistencies due to the partial support nova rejects any requests
that involves such ports. See the previous patches in this patch
series for details.

Also note that the simple boot cases are verified with functional tests
and in those tests we need to mock out the above described logic that
reject such requests. See a more background about this approach on the
ML [1].

[1] http://lists.openstack.org/pipermail/openstack-discuss/2018-December/001129.html

blueprint bandwidth-resource-provider
Change-Id: Ica6152ccb97dce805969d964d6ed032bfe22a33f
2019-02-07 20:06:49 -05:00
..
tasks Transfer port.resource_request to the scheduler 2019-02-07 20:06:49 -05:00
__init__.py Remove conductor local api:s and 'use_local' config option 2016-10-18 14:26:06 +02:00
api.py In Python3.7 async is a keyword [1] 2018-07-20 12:21:34 -04:00
manager.py Transfer port.resource_request to the scheduler 2019-02-07 20:06:49 -05:00
rpcapi.py Merge "conf: Remove '[conductor] topic' opt" 2018-03-13 08:00:43 +00:00