Reviewed: https://review.opendev.org/680762 Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=b36c44c449533edfbcfd970ccef9d794ac3b4171 Submitter: Zuul Branch: master
commit b36c44c449533edfbcfd970ccef9d794ac3b4171 Author: Matt Riedemann <mriedem...@gmail.com> Date: Fri Sep 6 15:13:00 2019 -0400 Handle legacy request spec dict in ComputeTaskManager._cold_migrate Prior to change I4244f7dd8fe74565180f73684678027067b4506e in Stein, conductor would pass a legacy dict request spec to compute during cold migrate / resize and if compute rescheduled it would not pass the request spec back to conductor, so the _cold_migrate method in conductor would have to create a new RequestSpec from components it had available. As of that change, compute will send the request spec it got back to conductor and _cold_migrate avoids the RequestSpec.from_components call. There are two issues here: 1. Technically if conductor RPC API is pinned to less than 1.13 the ComputeTaskAPI.migrate_server method will remove the request spec from the call to conductor. So conductor (server-side) can still not get a RequestSpec and need to use from_components. As a result the TODO in the _cold_migrate method needs to be updated since we require an RPC API major version bump to make request spec required. 2. Just because conductor is passing compute a RequestSpec object, if compute RPC API versions are pinned to less than 5.1, conductor will pass a legacy request spec dict to compute and compute will send that back to conductor, so the _cold_migrate method needs to handle getting a request spec that is a dict and convert it to an object. A new test is added for that case. Change-Id: I188b7aa9cb220f93e69a68f0c3592b28d41ba5b6 Closes-Bug: #1843090 ** Changed in: nova Status: In Progress => Fix Released -- You received this bug notification because you are a member of Yahoo! Engineering Team, which is subscribed to OpenStack Compute (nova). https://bugs.launchpad.net/bugs/1843090 Title: ComputeTaskManager._cold_migrate could get a legacy request spec dict from stein computes if rpc pinned and not convert it properly Status in OpenStack Compute (nova): Fix Released Status in OpenStack Compute (nova) stein series: In Progress Bug description: As of this change in Stein https://review.opendev.org/#/c/582417/ the compute service will pass a request spec back to conductor when rescheduling during a resize or cold migration. If the compute RPC API version is pinned below 5.1, however, that request spec will be a legacy dict rather than a full RequestSpec object so the code here: https://github.com/openstack/nova/blob/19.0.0/nova/conductor/manager.py#L302-L321 Needs to account for the legacy dict case. To manage notifications about this bug go to: https://bugs.launchpad.net/nova/+bug/1843090/+subscriptions -- Mailing list: https://launchpad.net/~yahoo-eng-team Post to : yahoo-eng-team@lists.launchpad.net Unsubscribe : https://launchpad.net/~yahoo-eng-team More help : https://help.launchpad.net/ListHelp