commit ce3af5e33ae6843411e611e81c6ca1c21e0f1e09
Author: Matt Riedemann <email address hidden>
Date: Fri Oct 12 12:03:41 2018 -0400
Don't persist RequestSpec.requested_destination
The RequestSpec.requested_destination, similar to the
retry field, is per-request/operation, and persisting
it can caues issues when subsequent move requests.
For example, if you cold migrate a server to a specific
host and then live migrate that server without specifying
a host, the requested target host from the cold migrate
is sent to the scheduler for the live migration, but since
that is where the instance is already running, it's
rejected with NoValidHost.
This is a similar issue to the need to call
RequestSpec.reset_forced_destinations() in all move operations
in conductor. However, rather than try to whack this mole in
every place the request spec is sent to the scheduler, like
reset_forced_destinations() is used, we simply don't need to
persist the requested_destination field since it's just a
vehicle to tell the scheduler which host we want.
The related functional regression test is updated to show
the bug is now fixed.
Reviewed: https:/ /review. openstack. org/610098 /git.openstack. org/cgit/ openstack/ nova/commit/ ?id=ce3af5e33ae 6843411e611e81c 6ca1c21e0f1e09
Committed: https:/
Submitter: Zuul
Branch: master
commit ce3af5e33ae6843 411e611e81c6ca1 c21e0f1e09
Author: Matt Riedemann <email address hidden>
Date: Fri Oct 12 12:03:41 2018 -0400
Don't persist RequestSpec. requested_ destination
The RequestSpec. requested_ destination, similar to the operation, and persisting
retry field, is per-request/
it can caues issues when subsequent move requests.
For example, if you cold migrate a server to a specific
host and then live migrate that server without specifying
a host, the requested target host from the cold migrate
is sent to the scheduler for the live migration, but since
that is where the instance is already running, it's
rejected with NoValidHost.
This is a similar issue to the need to call .reset_ forced_ destinations( ) in all move operations forced_ destinations( ) is used, we simply don't need to destination field since it's just a
RequestSpec
in conductor. However, rather than try to whack this mole in
every place the request spec is sent to the scheduler, like
reset_
persist the requested_
vehicle to tell the scheduler which host we want.
The related functional regression test is updated to show
the bug is now fixed.
Change-Id: I2a78f0754c6338 1c57e7e1c610d09 38b6df0f537
Closes-Bug: #1797580