diff options
author | Balazs Gibizer <balazs.gibizer@est.tech> | 2020-01-29 10:45:00 +0100 |
---|---|---|
committer | Balazs Gibizer <balazs.gibizer@est.tech> | 2020-03-18 17:24:56 +0100 |
commit | 94c7e7ad4333286ac7730048cacf2a6837d1c6ec (patch) | |
tree | 47f00ef4acca86a4b63a4ce44d8b042efdb87758 /nova/objects | |
parent | ca4226cb87b4a271ee0ad72a6b93662feea3025e (diff) | |
download | nova-94c7e7ad4333286ac7730048cacf2a6837d1c6ec.tar.gz |
Support unshelve with qos ports
This patch adds support for unshelving an offloaded server with qos ports.
To do that this patch:
* collects the port resource requests from neutron before the scheduler
is called to select the target of the unshelve.
* calculate the request group - provider mapping after the scheduler
selected the target host
* update the InstancePCIRequest to drive the pci_claim to allocate VFs
from the same PF as the bandwidth is allocated from by the scheduler
* update the binding profile of the qos ports to so that the allocation
key of the binding profile points to the RPs the port is allocated
from.
As this was the last move operation to be supported the compute service
version is bumped to indicate such support. This will be used in a later
patches to implement a global service level check in the API.
Note that unshelve does not have a re-schedule loop and all the RPC
changes was committed in Queens.
Two error cases needs special care by rolling back allocations before
putting the instance back to SHELVED_OFFLOADED state:
* if the IntancePCIRequest cannot be updated according to the new target
host of unshelve
* if updating port binding fails in neutron during unshelve
Change-Id: I678722b3cf295c89110967d5ad8c0c964df4cb42
blueprint: support-move-ops-with-qos-ports-ussuri
Diffstat (limited to 'nova/objects')
-rw-r--r-- | nova/objects/service.py | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/nova/objects/service.py b/nova/objects/service.py index 0ec10acae0..c62b46c0f2 100644 --- a/nova/objects/service.py +++ b/nova/objects/service.py @@ -31,7 +31,7 @@ LOG = logging.getLogger(__name__) # NOTE(danms): This is the global service version counter -SERVICE_VERSION = 48 +SERVICE_VERSION = 49 # NOTE(danms): This is our SERVICE_VERSION history. The idea is that any @@ -178,6 +178,8 @@ SERVICE_VERSION_HISTORY = ( {'compute_rpc': '5.10'}, # Version 48: Drivers report COMPUTE_SAME_HOST_COLD_MIGRATE trait. {'compute_rpc': '5.10'}, + # Version 49: Compute now support server move operations with qos ports + {'compute_rpc': '5.10'}, ) |