summaryrefslogtreecommitdiff
path: root/nova/objects
diff options
context:
space:
mode:
authorBalazs Gibizer <balazs.gibizer@est.tech>2020-01-29 10:45:00 +0100
committerBalazs Gibizer <balazs.gibizer@est.tech>2020-03-18 17:24:56 +0100
commit94c7e7ad4333286ac7730048cacf2a6837d1c6ec (patch)
tree47f00ef4acca86a4b63a4ce44d8b042efdb87758 /nova/objects
parentca4226cb87b4a271ee0ad72a6b93662feea3025e (diff)
downloadnova-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.py4
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'},
)