nova/nova/tests
Matt Riedemann b36c44c449 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
2019-09-24 14:36:01 -04:00
..
functional Handle legacy request spec dict in ComputeTaskManager._cold_migrate 2019-09-24 14:36:01 -04:00
unit Handle legacy request spec dict in ComputeTaskManager._cold_migrate 2019-09-24 14:36:01 -04:00
__init__.py
fixtures.py Func test for migrate server with ports having resource request 2019-09-06 16:43:11 +02:00
json_ref.py Transform instance.exists notification 2018-06-05 12:51:30 +00:00